Саша, по нынешним временам писать код быстро экономически более выгодно, чем писать хорошо. Не всегда, но во многих случаях. Ведь когда закончится чип 7х7мм, можно поставить второй такой, а не ещё два стола :) А пока "красавцы" вылизывают свой код, "дятлы" уже продают решение. 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 циклов из > стека, и так с частотой считывания АЦП умножить на три канала! > > Ну не мудаки-же такие программеры??? > > Бля......... я теперь понимаю почему всё глючит и лагает... > > -- Volodymyr Litovka "Vision without Execution is Hallucination." -- Thomas Edison _______________________________________________ uanog mailing list uanog@uanog.kiev.ua https://mailman.uanog.kiev.ua/mailman/listinfo/uanog