Привет ! ну вообще-то ЛЮБОЕ начинание с программированием надо начинать с "профайлинга", т.е. "а что мы хотим получить в итоге и как это должно рабоать", а уже потом под "это" подбирается железо-микроконтроллер. А уже потом составляется блок-схемы и общая философия "как ЭТО тут будет работать". А уже потом - начинается кодинг :) А если вот так как индус - то это видно что он "слезал" с чего-то совсем простого типа Атмела или PICа, где нет такой красивой архитектуры и поддержки в железе. Но ПОНЯТЬ новую философию не пытался - тупо решил вопрос так как уже решал на простом железе :-(( Я сознательно переползаю на MSP430 а не на "модные нынче" STM, именно из-за красивости архитектуры при хорошей цене и возможностях "на вырост". И не понимаю "модных писателей кода" которые лезут на STM микроконтроллеры, при этом выбирают 8-и битные модели а пишут на С++ с разными заковыками - когда после них видишь ассемблерный код - то рука-лицо и хочется такого писателя убить, чтобы не портил своим генофоном население Земли. Обычно народ не парится: как начал на Атмега8 так потом просто более мощные чипы подсовывает - не понимая что смена философии в мозгах это и смена философии в железе. Но все равно грустно... Friday, April 13, 2018, 10:04:12 AM, Vladimir Sharun vladimir.sharun@ukr.net you wrote: VS> Сильно депендс от отрасли. У нас был эксперимент и так и так. VS> Оказалось, что корректное програмирование VS> в среднесрочной уже перспективе - экономически выгоднее. Провели VS> эксперимент "давайте задавим железом", VS> а когда под конец операции "задавим железом" посмотрели на VS> сколько было потрачено - тут же поменяли вектор VS> на давайте писать по концепции: написали "как есть", профайлинг, "как надо". VS> В людей инвестировать правильнее. В творческих - в квадрате правильнее. VS> PS: с первого раза правильно написать код весьма сложно, т.к. у VS> нас профайлера нет в голове, только общие VS> базисы "правильно это написать так". VS> 13 квітня 2018, 09:42:28, від "Volodymyr Litovka" <doka.ua@gmail.com>: VS> Саша, по нынешним временам писать код быстро экономически более выгодно, VS> чем писать хорошо. Не всегда, но во многих случаях. VS> Ведь когда закончится чип 7х7мм, можно поставить второй такой, а не ещё VS> два стола :) А пока "красавцы" вылизывают свой код, "дятлы" уже продают VS> решение. VS> On 4/13/18 9:29 AM, Alexander V Soroka wrote: >> Привет ! >> >> Преамбула. >> Я занимаюсь программированием микроконтроллеров, вот уже лет 20 как. >> и давно присматривался к MSP430FRxxxx, от Техас Инструментс. >> По сути это PDP-11 в размере 7 на 7мм ! >> то что у меня в 1986 году занимало два стола - сейчас занимает один >> чип 7 на 7мм!!! Это волшебство :) >> Изучаю MSP430 - уже перерыл многое и понимать стал какая КРАСИВАЯ(!!!) >> архитектура построения! Техасцы просто гении :) >> Это песня просто для мультизадачных вещей !!! >> >> Пока рыл примеры - нарвался на индуса, он задавал вопрос на саппорт: >> https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/602194 >> >> Суть кратко: индусу надо запустить АЦП так чтобы оно сделало три >> измерения с разных каналов, и прервалось по факту когда АЦП будет >> записывать третье(с третьего канала) значение в память. >> >> АЦП там умное! ему можно сказать: "замеряй с канала номер Х до канала >> номер У и записывай само в память, МИНУЯ ПРОЦЕССОР! " >> Причем ! какие каналы после каких мерять - ЗАПИСЫВАЕМ(!) в >> регистры, т.е. нет тупого 1-2-3... а можно сделать любое: 2-1-5-8... >> >> А что сделал Индус? >> он сделал так что АЦП меряет по кругу три канала, но он вписал что >> после каждого записи в память(!) готового значения АЦП будет >> вызываться прерывание! >> НАХУЯ ??? А для того - всего-то - чтобы переписать , прикинь >> ПЕРЕПИСАТЬ !!! значение из МЕМ-ячейки АЦП в "глобальную переменную"! >> бля мудак... >> вот потому и глючит всё вокруг ! бо такие пидарасы пишут проги! :(((( >> >> из его текста: >> ADCValue1 = ADC12MEM1 ; >> >> ADCValue1 - это его "глобальная переменная". >> ADC12MEM1 - это ГЛОБАЛЬНОЕ(!) расположение ячейки 16 бит куда пишется >> с АЦП значение че намеряло АЦП на том канале который ему сказали в эту >> ячейку ложить. повторяю: ГОЛОБАЛЬНОЕ! т.е. доступное из проги на С в >> любом месте и в любое время! >> >> Ну не мудак? >> Ведь зачем прерываться по готовности данных АЦП если его спецом >> сделали чтобы оно само по себе работало! БЕЗ проца и прерываний! >> тупо сам модуль по кругу(как настроишь) идет в канал, меряет, >> записывает в память, потом идет на новый канал и т.п. >> >> а ячейка ADC12MEM1 - это и так ГЛОБАЛЬНОЕ место - оно отовсюду из >> твоей проги доступное! Это прибитое гвоздями место в микросхеме! >> >> и еще мудак сделал в майн процедуре >> __delay_cycles(5000); // Delay between conversions >> верх маразма ! >> теперь мы еще процессором ждем АЦП ! >> >> Нахуя тогда инженеры ТехасИнструментс старались и строили такую >> архитектуру??? чтобы индус вот так разом помножил на ноль >> ПРОИЗВОДИТЕЛЬНОСТЬ чипа??? >> >> Мозгов его не хватило сделать философию проще: >> 1) пусть АЦП там само по кругу, и пишет само в память - МИНУЯ проц! >> никаких прерываний работы проца вообще! >> >> 2) когда нам потребуется результат из этого канала АЦП - мы просто >> делаем в любом месте нашей проги, НЕ В ПРЕРЫВАНИИ: >> ADCValue1 = ADC12MEM1 ; >> >> и ВСЁ!!!!!!!!!!!!!!!!! >> и далее бегаем уже со своим ADCValue1 и везде с ним считаем, то что >> нам надо - не отрывая проц на постоянные(!) прерывания и укладывание в >> память 14 циклов всего в стек, чтобы потом поднимать 14 циклов из >> стека, и так с частотой считывания АЦП умножить на три канала! >> >> Ну не мудаки-же такие программеры??? >> >> Бля......... я теперь понимаю почему всё глючит и лагает... >> >> -- Best regards, Alexander V Soroka http://www.svr.ua/ AS106-RIPE mailto:alex@euro.net.ua _______________________________________________ uanog mailing list uanog@uanog.kiev.ua https://mailman.uanog.kiev.ua/mailman/listinfo/uanog