[uanog] об индусах и программировании, или о том почему всё глючит...
Vladimir Sharun
vladimir.sharun at ukr.net
Fri Apr 13 12:44:47 EEST 2018
Александр Васильевич,
У меня на военке был такой смешной кейс, когда то ли генератор, то ли усилитель, же не помню в ПЗУ БУКа сделан
в геометрии огромного ящика (все ржали над линией задержки в С-60 - бухта кабеля ?). Мы задали
вопрос тарищ-пдполковнику, а чо так, почему не ЛБВ-О или пролётный клистрон, размером с палку колбасы
варёной. Ну и все поржали, какие вояки тупые, а мы такие вот продинутые, как раз готовились к сдаче по приборам СВЧ
"на гражданке".
Он пришел через два часа со схемами и распедалил, что ЛБВ и клистрон в пролёте по ТЗ - сразу сдохнут
от поражающего действия при использовании Я.О., а набор какашек в этом ящике - спокойно протянет.
Это было уроком.
Это я к тому, что его (индуса) солюшн вполне может быть воркараундом на какой-то Вам неизвестный
баг в таком же или похожем контроллере. А может и не быть.
13 квітня 2018, 12:00:12, від "Alexander V Soroka" <alex at euro.net.ua>:
Привет !
ну вообще-то ЛЮБОЕ начинание с программированием надо начинать с
"профайлинга", т.е. "а что мы хотим получить в итоге и как это должно
рабоать", а уже потом под "это" подбирается железо-микроконтроллер.
А уже потом составляется блок-схемы и общая философия "как ЭТО тут
будет работать". А уже потом - начинается кодинг :)
А если вот так как индус - то это видно что он "слезал" с чего-то
совсем простого типа Атмела или PICа, где нет такой красивой
архитектуры и поддержки в железе. Но ПОНЯТЬ новую философию не пытался
- тупо решил вопрос так как уже решал на простом железе :-((
Я сознательно переползаю на MSP430 а не на "модные нынче" STM,
именно из-за красивости архитектуры при хорошей цене и возможностях
"на вырост". И не понимаю "модных писателей кода" которые лезут на STM
микроконтроллеры, при этом выбирают 8-и битные модели а пишут на С++ с
разными заковыками - когда после них видишь ассемблерный код - то
рука-лицо и хочется такого писателя убить, чтобы не портил своим
генофоном население Земли.
Обычно народ не парится: как начал на Атмега8 так потом просто более
мощные чипы подсовывает - не понимая что смена философии в мозгах это
и смена философии в железе.
Но все равно грустно...
Friday, April 13, 2018, 10:04:12 AM, Vladimir Sharun vladimir.sharun at 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 at 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 at euro.net.ua
_______________________________________________
uanog mailing list
uanog at uanog.kiev.ua
https://mailman.uanog.kiev.ua/mailman/listinfo/uanog
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.uanog.kiev.ua/pipermail/uanog/attachments/20180413/a206bc17/attachment-0001.html>
More information about the uanog
mailing list