[uanog] об индусах и программировании, или о том почему всё глючит...
Vladimir Sharun
vladimir.sharun at ukr.net
Fri Apr 13 10:04:12 EEST 2018
Привет,
Сильно депендс от отрасли. У нас был эксперимент и так и так. Оказалось, что корректное програмирование
в среднесрочной уже перспективе - экономически выгоднее. Провели эксперимент "давайте задавим железом",
а когда под конец операции "задавим железом" посмотрели на сколько было потрачено - тут же поменяли вектор
на давайте писать по концепции: написали "как есть", профайлинг, "как надо".
В людей инвестировать правильнее. В творческих - в квадрате правильнее.
PS: с первого раза правильно написать код весьма сложно, т.к. у нас профайлера нет в голове, только общие
базисы "правильно это написать так".
13 квітня 2018, 09:42:28, від "Volodymyr Litovka" <doka.ua at gmail.com>:
Саша, по нынешним временам писать код быстро экономически более выгодно,
чем писать хорошо. Не всегда, но во многих случаях.
Ведь когда закончится чип 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 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/97048198/attachment-0001.html>
More information about the uanog
mailing list