Александр Васильевич,
У меня на военке был такой смешной кейс, когда то ли генератор, то ли усилитель, же не помню в ПЗУ БУКа сделан
в геометрии огромного ящика (все ржали над линией задержки в С-60 - бухта кабеля ?). Мы задали
вопрос тарищ-пдполковнику, а чо так, почему не ЛБВ-О или пролётный клистрон, размером с палку колбасы
варёной. Ну и все поржали, какие вояки тупые, а мы такие вот продинутые, как раз готовились к сдаче по приборам СВЧ
"на гражданке".
Он пришел через два часа со схемами и распедалил, что ЛБВ и клистрон в пролёте по ТЗ - сразу сдохнут
от поражающего действия при использовании Я.О., а набор какашек в этом ящике - спокойно протянет.
Это было уроком.
Это я к тому, что его (индуса) солюшн вполне может быть воркараундом на какой-то Вам неизвестный
баг в таком же или похожем контроллере. А может и не быть.
13 квітня 2018, 12:00:12, від "Alexander V Soroka"
Привет !
Преамбула. Я занимаюсь программированием микроконтроллеров, вот уже лет 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 _______________________________________________ uanog mailing list uanog@uanog.kiev.ua https://mailman.uanog.kiev.ua/mailman/listinfo/uanog