Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прерывания в МК.
Шарага > Soft - НЕ железо > Программирование МК
Страницы: 1, 2
Прохожий
Собственно все.
Прошу высказываться.
Особенно хотелось бы заслушать уважаемого Harbinger-а.
Про автоматы, работающие по прерываниям.
ПМСМ, это наиболее правильная методика.
Прохожий
Цитата(Огурцов @ 18.6.2010, 22:12) *
Нет. Но _вместо_ прерываний предпочел бы иметь несколько ядер(алу) и работать по опросу.

А более развернуто?
С примерами?
Прохожий
Цитата(Огурцов @ 19.6.2010, 0:45) *
Которое слово ? Есть общее ОЗУ и флеш, и несколько наборов регистров, в т.ч. (столько же) PC и SP. Все заморочки с параллельной работой (такие, как одновременный доступ к одной ячейке) решаются легко, в виду того, что все ОЗУ на том же кристалле и размер его измеряется в килобайтах, в лучшем случае, а не в гигабайтах. В конце концов для этого можно ограниченный блок выделить, а не использовать все ОЗУ.

В общем, идея ясна. К каждому порту свой интеллект. И мэйл бокс в придачу.
Но мир-то идет по иному пути...
Всякие там контроллеры прерываний. В Вашем любимом AVR - даже векторный.
Уже и DMA поставили.
Считаю важным обсудить параллельную работу различных алгоритмов на принципиально последовательном девайсе.
Harbinger
Цитата(Прохожий @ 18.6.2010, 20:59) *
Про автоматы, работающие по прерываниям.
ПМСМ, это наиболее правильная методика.
А она вынужденная.
Просто на практике имею дело не с МК самими по себе, а обвешанными всевозможной периферией. Приёмопередатчики, модемы и т.п. Они живут своей жизнью, сообщая о своём состоянии изредка. wink.gif
orthodox
Цитата(Огурцов @ 18.6.2010, 21:12) *
Нет. Но _вместо_ прерываний предпочел бы иметь несколько ядер(алу) и работать по опросу.

Как насчет иметь неколько камней отдельно?
И каждый обслуживает свою критичную область, если она критична, конечно.
То есть уже можно не ждать, а доставить пару мелочей 50-центовых по потребности...
MrYuran
Цитата(Огурцов @ 19.6.2010, 0:45) *
Которое слово ? Есть общее ОЗУ и флеш, и несколько наборов регистров, в т.ч. (столько же) PC и SP. Все заморочки с параллельной работой (такие, как одновременный доступ к одной ячейке) решаются легко, в виду того, что все ОЗУ на том же кристалле и размер его измеряется в килобайтах, в лучшем случае, а не в гигабайтах. В конце концов для этого можно ограниченный блок выделить, а не использовать все ОЗУ.

Дык, есть же - Proreller
Чудо о восьми головах
7.99 в розницу, 7.59 - от 20шт.
фришиппинг от 100$
Цитата
Features:

* Model Number: P8X32A-Q44
* Processors (cogs): Eight
* Architecture: 32-bits
* System Clock Speed: DC to 80 MHz
* Global RAM/ROM: 64 K bytes; 32 K RAM / 32 K ROM - маловато будет :(
* Cog RAM: 512 x 32 bits each - а вот это куул
* I/O Pins: 32 (simultaneously addressable by all eight cogs)
* Current Source/Sink per I/O: 40 mA
* Clock Modes: (a) External crystal 4 -8 MHz (16 x PLL) (b) Internal oscillator ~12 MHz or ~20 kHz © Direct drive
* Package Type: 44-pin QFP

На замену атмеловским мегам - вполне. Вот если бы расширяли в сторону увеличения всего, кроме цены, было бы очень ничего.

Я вот что-то не понимаю сути темы.
Совсем отказаться от прерываний нельзя. Да и зачем?
Чем они так помешали?
Прохожий
Цитата(Огурцов @ 20.6.2010, 14:31) *
Прерывания, как и организация многозадачности на одном ядре жрет очень много времени (и вычислительного ресурса, если часто) на переключение контекстов. В режиме опроса задержки минимальны, а так же можно орагнизовать точные временные процессы.

Вы тут не совсем правы.
Если подходить традиционно, ОС, семафоры и прочая, то таки да.
Но есть и иные подходы...
Без всех этих не нужных никому затрат.
orthodox
Цитата(Огурцов @ 20.6.2010, 13:31) *
Прерывания, как и организация многозадачности на одном ядре жрет очень много времени (и вычислительного ресурса, если часто) на переключение контекстов. В режиме опроса задержки минимальны, а так же можно орагнизовать точные временные процессы.

Смотря по задаче, у кого какая.
Харбиндеру вон потребление надо минимизировать, и это понятно.
А пожарники хоть тоже события ждут иногда больше, чем срок службы прибора -
но на опросах все же работают...Из соображений надежности, что ли - там еще постоянно
самотестирование, нормально ли опрашивается оно все...
Прохожий
Цитата(orthodox @ 21.6.2010, 1:23) *
Смотря по задаче, у кого какая.
Харбиндеру вон потребление надо минимизировать, и это понятно.
А пожарники хоть тоже события ждут иногда больше, чем срок службы прибора -
но на опросах все же работают...Из соображений надежности, что ли - там еще постоянно
самотестирование, нормально ли опрашивается оно все...

Прерывания, в основном, используются, когда надо минимизировать скорость реакции на событие.
К примеру.
Прием телеграммы от управляющей машины.
Пропустить нельзя. Ни одного бита.
А в то же время, управление процессами, возложенными на МК никто не отменяет.
Здесь без прерываний от приемника USART практически никак...
orthodox
Цитата(Прохожий @ 21.6.2010, 0:47) *
Прерывания, в основном, используются, когда надо минимизировать скорость реакции на событие.
К примеру.
Прием телеграммы от управляющей машины.
Пропустить нельзя. Ни одного бита.
А в то же время, управление процессами, возложенными на МК никто не отменяет.
Здесь без прерываний от приемника USART практически никак...

Примерно так. Копия из очень старого журнала smile.gif
Извините за оффтоп...
MrYuran
Цитата(orthodox @ 21.6.2010, 14:44) *
Примерно так. Копия из очень старого журнала smile.gif
Извините за оффтоп...

Не знаю, какие там проблемы с ресурсами и издержками, у меня среднестатистическая программа большую часть времени мается бездельем в основном цикле. При том что задач много, разнообразных, некоторые реалтайм, даже несколько раз в секунду надо сосчитать логарифм. smile.gif
И вот как раз распараллеливание алгоритма с помощью прерываний вместо тупого ожидания, когда же там зарядится ёмкость или пройдёт импульс, существенно освободило процессор и уменьшило задержки и время отклика.
Ибо по прерываниям выполняются неотложные действия, а между ними неторопливо разгребается рутина.

Или я вообще суть темы не понял?

Вообще, чтобы рассуждать об издержках, допустимых, излишних или малых, надо иметь хотя бы условия задачи.
Без этого все рассуждения просто ни о чём.
Какая мне разница, сколько времени уйдёт на сохранение контекста, если процессор успевает отработать событие?
И опять же, вопрос: где издержки больше - на прерывание раз в секунду от УАРТа или на опрос его флагов с частотой 100кГц?
MrYuran
Цитата(Огурцов @ 21.6.2010, 16:11) *
На все про все - 256 тактов. Если разрешить прерывания, то моментально наступает зверек. И даже без логарифма.

Ну так, я ж и говорю - сначала задача, потом обсуждение.
orthodox
Цитата(MrYuran @ 21.6.2010, 15:26) *
Ну так, я ж и говорю - сначала задача, потом обсуждение.

Согласен.
на этой оптимистичной ноте можно и...
Прохожий
Цитата(orthodox @ 21.6.2010, 18:28) *
Согласен.
на этой оптимистичной ноте можно и...

Хорошо, давайте задачу.
Вот типовая, поэтому несколько искусственная.
Имеется источник питания, управляемый ШИМ каналом.
ЖКИ индикатор в две строки, где пользователь может задать выходное напряжение, ток защиты, тип защиты и еще ряд параметров.
Так же он может посмотреть выходное напряжение, ток нагрузки и может чего еще.
Для этого есть кнопки. Их количество каждый определяет для себя сам.
Тут же имеется связь с PC или PLC по RS485 полудуплекс.
Прохожий
Цитата(Огурцов @ 21.6.2010, 20:57) *
Элементарно. Берем первую попашуюся картинку http://sharaga.org/index.php?act=attach&am...ost&id=1179 и видим...процессоров, минимум, два. В данном конкретном случае я бы осмелился воткнуть три (или даже четыре). Ибо. 1 - пфц, 2 - мост, (3 - выпрямитель), 4 - юзерский интерфейс, в т.ч. с PC + бизнес-логика (ака характеристика источника, типо наклон U vs I, как для сварочника). Первые три - рубят жестко, без каких-либо прерываний, увязаны через кан и мэйл-боксы путем опроса, четвертый - весь на прерываниях, ибо мало за что отвечает и никуда не спешит.

А вот в этой конструкции все с точностью до наоборот.
Прерывания там, где надо спешить. Причем, где надо особо спешить, программы обслуживания написаны на ASM с применением DSP ядра.
В остальном Вы правы - два процессора.
Хотя в простейших случаях можно обойтись и одним...
orthodox
Цитата(Огурцов @ 21.6.2010, 19:57) *
Элементарно. Берем первую попашуюся картинку http://sharaga.org/index.php?act=attach&am...ost&id=1179 и видим...процессоров, минимум, два. В данном конкретном случае я бы осмелился воткнуть три (или даже четыре). Ибо. 1 - пфц, 2 - мост, (3 - выпрямитель), 4 - юзерский интерфейс, в т.ч. с PC + бизнес-логика (ака характеристика источника, типо наклон U vs I, как для сварочника). Первые три - рубят жестко, без каких-либо прерываний, увязаны через кан и мэйл-боксы путем опроса, четвертый - весь на прерываниях, ибо мало за что отвечает и никуда не спешит.


Во! А я говорил, а Вы - многоядерный да многоядерный...

Цитата(Прохожий @ 21.6.2010, 19:06) *
Хорошо, давайте задачу.
Вот типовая, поэтому несколько искусственная.
Имеется источник питания, управляемый ШИМ каналом.
ЖКИ индикатор в две строки, где пользователь может задать выходное напряжение, ток защиты, тип защиты и еще ряд параметров.
Так же он может посмотреть выходное напряжение, ток нагрузки и может чего еще.
Для этого есть кнопки. Их количество каждый определяет для себя сам.
Тут же имеется связь с PC или PLC по RS485 полудуплекс.


На шим развес, на защиты - развес, остальное - процессором.
разве что параметры задать , лишь бы не путался в ногах при работе на полной скорости...
Не, то есть статью я сохранил, буду изучать и разбираться конечно...
Прохожий
Цитата(orthodox @ 21.6.2010, 23:08) *
Не, то есть статью я сохранил, буду изучать и разбираться конечно...

Это только завлекаловка.
Там еще исходники имеются, схемы и плата, а так же два аппноута.
Если хотите - сброшу отдельно.

Цитата(orthodox @ 21.6.2010, 23:08) *
На шим развес, на защиты - развес, остальное - процессором.
разве что параметры задать , лишь бы не путался в ногах при работе на полной скорости...

В настоящий момент так и поступлено для многофазной системы.
Но при таком подходе полная скорость не нужна...
МК в данном случае - регистратор.
Мы же решаем гипотетическую задачу, где МК или их группа - это все.
orthodox
Цитата(Прохожий @ 21.6.2010, 22:19) *
Это только завлекаловка.
Там еще исходники имеются, схемы и плата, а так же два аппноута.
Если хотите - сброшу отдельно.

Да
Цитата
МК в данном случае - регистратор.
Мы же решаем гипотетическую задачу, где МК или их группа - это все.

Да, пока что упирается в то, что и так все работает.
Сделать на одной микросхеме весь блок - не более чем забавно.
При хорошей трассировке на 2 слоя и так маломощной части не видать за радиаторами...
orthodox
Цитата(Огурцов @ 21.6.2010, 22:51) *
Не совсем два. Число процессоров - по числу модулей. Хотя бы для исключения длинных соплей до МК от модулей, ибо надежности совсем не добавят.

Во.
Так же думаю.
люблю аккуратный монтаж к тому же.
Прохожий
Цитата(orthodox @ 21.6.2010, 23:48) *
Да

Нажмите для просмотра прикрепленного файла

Цитата(orthodox @ 21.6.2010, 23:48) *
Да, пока что упирается в то, что и так все работает.
Сделать на одной микросхеме весь блок - не более чем забавно.
При хорошей трассировке на 2 слоя и так маломощной части не видать за радиаторами...

Я с этим согласен. Более того, пока использую МК только в режиме регистратора.
Но это только пример, как надо использовать прерывания.
И поскольку нам всем ближе SMPS, то и пример оттуда.

Цитата(Огурцов @ 21.6.2010, 23:51) *
Ну да, ну да. Только если есть десятикратный запас по производительности.

Я Вам говорю. Бросайте Вы эти ATMEG-и. И все будет...
orthodox
Цитата(Прохожий @ 21.6.2010, 23:29) *

Спасибо, забрал...
Прохожий
Цитата(Огурцов @ 28.6.2010, 14:59) *
Я долго думал там (с) На что конкретно менять ? Так чтобы тридцатидвухбитник, с CAN, UART, тремя (четырмя) каналами PWM (PLL64MHz), одним-двумя DAC от 1 MHz, не говоря уж об ADC с дифференциальными в т.ч. входами, и входом/выходом опорника. Пинов поменьше, напряжение повыше, частоту побольше, встроенные флэш и озу конечно.

Все, что могу.
Есть все вышеперечисленное за исключением DAC.
Вот цена.
Правда, кроме этого - USB OTG и Ethernet и CAN-ов с аппаратной поддержкой DeviceNet 2шт.
А так же часы/календарь.
Ну и ядро MIPS32 M4K с MIPS16e и сопроцессором 0-го уровня.
Если хотите, у меня есть все материалы по ним.
orthodox
Цитата(Прохожий @ 28.6.2010, 21:37) *
Все, что могу.
Есть все вышеперечисленное за исключением DAC.
Вот цена.
Правда, кроме этого - USB OTG и Ethernet и CAN-ов с аппаратной поддержкой DeviceNet 2шт.
А так же часы/календарь.
Ну и ядро MIPS32 M4K с MIPS16e и сопроцессором 0-го уровня.
Если хотите, у меня есть все материалы по ним.

а мне чего-то приглянулись для моих скромных потребностей 16F и даже 12F ...
вроде ничего особо страшного и нету на самом деле, ну чуть внимательнее придется быть, да ведь и по любому надо...
Так что вскорости, наверное, открою еще одну тему - когда включать первый раз буду. Чтобы за спиной постояли профи.
пока страшновато, разбираюсь с хедерами или как там называется этот файл настроек контроллера...
И опять же, куда там подключать какие ноги от PICKIT3 (оказывается, от второго не сильно отличается...)
orthodox
Вот насчет небоязни прерываний: (это, кстати, одна из причин, что не раз читал про МК, но только сейчас собрался применить все таки...)
http://electronix.ru/forum/index.php?showt...15&start=15
Цитата
Ну, я рад за вас. Выбросы происходят из-за того самого "нюанса", который теперь стоит обсудить. Дело в том, что между считыванием ICR1 и считыванием nover есть временной зазор, если прерывание TOV1 попадёт на него, то nover изменится на 1, хотя не должно. Вот такой нюанс. Подумайте сами, как его можно разрешить, завтра обсудим. Кстати, нельзя ли взглянуть на схему генератора струны?
Прохожий
Цитата(orthodox @ 29.6.2010, 17:44) *
Вот насчет небоязни прерываний: (это, кстати, одна из причин, что не раз читал про МК, но только сейчас собрался применить все таки...)
http://electronix.ru/forum/index.php?showt...15&start=15

Это проблема только для AVR.
У PIC-ов есть аппаратные измерители как временных интервалов (CTMU), так и числа импульсов в единицу времени.
Прохожий
Цитата(Огурцов @ 29.6.2010, 22:35) *
Это не проблема avr, это его преимущество - на avr пишут даже полные чайники. То, что у них не сразу все получается - не беда, научатся.

Тогда и CAN можно вручную...
UART же раньше делали.
Зачем заниматься противоестественным сексом, если можно без него?
Прохожий
Цитата(Огурцов @ 29.6.2010, 22:54) *
Согласен, не зачем. Ибо причин нет.

А то, что в ссылке уважаемого ortodox-а как называется?
Прохожий
Цитата(Огурцов @ 30.6.2010, 0:36) *
На первый взгляд так и называется. Но лениво вчитываться. В общем, если и сравнивать мегу с пиком, то в пике помнится есть прескалер, а в меге нет. Что не/позволяет иметь на входе частоту повыше. С другой стороны, кажется он есть в каких-то тиньках.

Я имел в виду модуль ССР или ЕССР для PIC-ов.
Там уже все аппаратно.
А в 24-х PIC-ах там еще и свой таймер. И таких модулей на борту до 9-ти штук.
Есть так же CTMU - измеритель временных интервалов либо на внутренней калиброванной емкости, либо на внешней, либо на той и другой.
Harbinger
Цитата(Огурцов @ 29.6.2010, 21:35) *
Это не проблема avr, это его преимущество - на avr пишут даже полные чайники.
51 в этом плане ничуть не хуже! wink.gif drinks.gif
Harbinger
Что да, то да.
В яхугруппе по LPC900 всего 4 сотни народу, со всего шарика. wink.gif Большей частью студиозусы. Скучно там.
MrYuran
Цитата(Огурцов @ 30.6.2010, 8:08) *
Поспорю - такого количества чайников, как у avr, нет ни у чего.

Это результат ценовой политики атмела в прошлом тысячелетии.
Которая, по слухам, нынче сошла на нет.
Дешевле были только отечественные 18ххВЕхх[х], но они совсем дубовые
Harbinger
Аналогичная политика в отношении 8-битников сейчас у Freescale, но что-то ажиотажу не наблюдается (Китай исключение, но они там всеядны smile.gif ).
MrYuran
Цитата(Harbinger @ 30.6.2010, 13:49) *
Аналогичная политика в отношении 8-битников сейчас у Freescale, но что-то ажиотажу не наблюдается (Китай исключение, но они там всеядны smile.gif ).

А накой они нынче нужны?
Старые, ещё понятно, по инерции. А в новые проекты я бы не стал 8-битники закладывать.
Ну разве что разную интересную ыгзотику типа СиЛабс (жутко разогнатое 51 ядро плюс интересная аналоговая периферия, плюс полная кросс-матрица на все ноги)
Тем более что начальные кортексы от 50р стоят.
Даже МСП у нас уже чисто по инерции, скорее из нежелания плодить номенклатуру (в портативных батареечных приборах альтернативы нет)
И то переходим на более новое поколение (2хх), старые уже не достать, а цена одинаковая
MrYuran
Цитата(Огурцов @ 30.6.2010, 14:29) *
STM32F107R

И стоит поди баксов 5-7
Harbinger
Так чтоб сразу взять - 15.
_pasha
Цитата(Прохожий @ 21.6.2010, 19:06) *
Хорошо, давайте задачу.
Вот типовая, поэтому несколько искусственная.
Имеется источник питания, управляемый ШИМ каналом.
ЖКИ индикатор в две строки, где пользователь может задать выходное напряжение, ток защиты, тип защиты и еще ряд параметров.
Так же он может посмотреть выходное напряжение, ток нагрузки и может чего еще.
Для этого есть кнопки. Их количество каждый определяет для себя сам.
Тут же имеется связь с PC или PLC по RS485 полудуплекс.

Для данной задачи подходов просто масса. В частности - сопрограммы а-ля Protothreads могут вообще поднять систему безо всяких прерываний. Главные проблемы наступают, когда надо делать точные временные интервалы.
_pasha
Цитата(Огурцов @ 30.6.2010, 23:38) *
STM напрашивается сам собой, единственный минус - я не вижу у него компаратор.
В общем, кто знает, в чем под него писать ?

При мегасемпловом и быстреньком ядре АЦП среднепаршивый компаратор уже не нужен.
В чем писать: Гнусь все-таки рулит аж бегом. Для любителей ИДЕ.
Прохожий
Цитата(_pasha @ 1.7.2010, 2:11) *
При мегасемпловом и быстреньком ядре АЦП среднепаршивый компаратор уже не нужен.
В чем писать: Гнусь все-таки рулит аж бегом. Для любителей ИДЕ.

А можно поподробнее про этот СооСох?
Отзывы, комментарии, примеры использования...
А так же личные наблюдения.
Если, конечно, возможно.
Если там все так радужно, как описано, то это представляет несомненный интерес.
Поскольку писать Make файлы можно, но лень...
И, к стати, не нашел СооСох симулятора.
Его нет, что ли?
Вот еще одна среда программирования.
Кто что скажет?
Stanislav_GS
Цитата(Прохожий @ 18.6.2010, 20:59) *
Прерывания в МК., Нужно ли их бояться?
Не нужно.
Более того - нельзя.
Без прерываний невозможно збацать реал-тайм систему. Ну, кроме самой примитивной.
Собственно, система прерываний процессора предназначена для того, чтобы вовремя реагировать на происходящие вовне события.
Правда, история знает весьма успешные проЭкты, где прерывания не использовались. Но об этом лучче умолчим, потому как они были, в основном, - от бедности, и требовали "высшего пилотажа" при написании ПО.


Цитата(Прохожий @ 18.6.2010, 20:59) *
Про автоматы, работающие по прерываниям.
ПМСМ, это наиболее правильная методика.
Верно.
Прерывания позволяют экономить кучу ресурса (как аппаратно-программного, так и умственного).
В качестве примера, можно привести несложную ОС реального времени, написанную нашим общим хорошим знакомым. smile.gif Имя ей - scmRTOS.
Поддержка множества интерфейсов, коими оброс ныне любой уважающий себя микроконтроллер, крайне затруднительна без прерываний.
В задачах обработки сигнала без них жизни ващще нет.

Цитата(Огурцов @ 18.6.2010, 21:12) *
Нет. Но _вместо_ прерываний предпочел бы иметь несколько ядер(алу) и работать по опросу.
Мысль не правильная.
Имея только одно ядро, по мере поступления запросов (прерываний), я имею возможность обслуживать всех, кто этого требует. Не затрачивая времени на пустое ожидание.

Цитата(Огурцов @ 20.6.2010, 13:31) *
Прерывания, как и организация многозадачности на одном ядре жрет очень много времени (и вычислительного ресурса, если часто) на переключение контекстов. В режиме опроса задержки минимальны, а так же можно орагнизовать точные временные процессы.
Чушь.
Всё с точностью до наоборот.
Научитесь сперва ощипывать цыплят перед пожиранием. А потом поговорим о вкусах.
Stanislav_GS
Цитата(Огурцов @ 2.7.2010, 0:35) *
Вообще, фраза была про несколько ядер, так что не понятно, с чем вы спорите.
А зачем нужны несколько ядер, которые будут только и делать, что ждать, ежли можно поиметь одно, которое будет обслуживать запросы из внешнего мира по мере поступления и приоритета?

Цитата(Огурцов @ 2.7.2010, 0:35) *
...Во-вторых, даже на одном ядре можно обслужить всех, не затрачивая времени на пустое ожидание (с). Но это, конечно, требует "высшего пилотажа" при написании ПО (с)
Поверьте, это не так.
Современные микроконтроллеры имеют развитую аппаратную систему поддержки внешних событий.
Более того, в ЯВУ интегрированы макросы и примитивы для удобного рулежа системой прерываний любого МК.
Хотя, я предпочитаю писать такие весчи на АСМе. Получается компактно и красяво. smile.gif
Stanislav_GS
Цитата(Огурцов @ 2.7.2010, 0:52) *
Ок. Дано: atmega о шестнадцати мегагерцах. Требуется: в цикле 62.5кГц произвести некоторые расчеты (для управления ШД вычислить текущее значение счетчиков двух таймеров - зависимость sin/cos с учетом предыдущего значения и экспоненциального изменения тока в обмотках с известной индуктивностью, сопротивлением и напряжением), получать команды и отправлять статус на 500 кбод, обрабатывать два концевика и индекс с защитой от дребезга. Хотя бы. Поучите ?
Поясните, зачем здесь ващще чего-нибудь опрашивать (или прерывать)?  pardon.gif
Считайте себе на здоровье и отправляйте. wink.gif

Если серьёзно - поставьте задачу как-нибудь так, чтобы её можно было понять по-человечески.Она относится, как я понял, к классу реал-тайи задач.
Прохожий
Цитата(Огурцов @ 2.7.2010, 1:52) *
Ок. Дано: atmega о шестнадцати мегагерцах. Требуется: в цикле 62.5кГц произвести некоторые расчеты (для управления ШД вычислить текущее значение счетчиков двух таймеров - зависимость sin/cos с учетом предыдущего значения и экспоненциального изменения тока в обмотках с известной индуктивностью, сопротивлением и напряжением), получать команды и отправлять статус на 500 кбод, обрабатывать два концевика и индекс с защитой от дребезга. Хотя бы. Поучите ?

Во всем этом деле мне не нравится ATMega.
И задачу необходимо переформулировать.
Так, как она исходила от заказчика.
Потому, как цикл с частотой 62.5 кГц лично мне кажется излишним.
Учить никого не собираюсь, люди здесь все, в основном, взрослые...
Stanislav_GS
Цитата(Прохожий @ 2.7.2010, 1:01) *
Во всем этом деле мне не нравится ATMega.
И задачу необходимо переформулировать.
Нуда.
256 тактов на цикл обслуживания - чересчур крутой запрос.
Впору подумать о DSP, или, на худой конец, об относительно шустром АРМе.
Прохожий
Цитата(Огурцов @ 2.7.2010, 1:58) *
Давайте-ка для начала растактовочку на обработку прерываний, их в нашей задачке три четыре - таймер, отправка, прием и "нефиг больше отправлять".

В принципе, обойтись без прерываний здесь можно.
Я сам занимался подобным в свое время.
У старых PIC-ов прерываний не было вообще.
В настоящий момент все это лучше делать на более мощном и дешевом МК, снабженным всем необходимым.
Stanislav_GS
Цитата(Огурцов @ 2.7.2010, 0:58) *
Давайте-ка для начала растактовочку на обработку прерываний, их в нашей задачке три четыре - таймер, отправка, прием и "нефиг больше отправлять".
Что есть "растактовочка"?
Может, даташит сперва освоить?
Stanislav_GS
Цитата(Прохожий @ 2.7.2010, 1:06) *
В настоящий момент все это лучше делать на более мощном и дешевом МК, снабженным всем необходимым.
smile.gif
Щаз АРМы, вроде, подешевле ПИКов и АВРок толкают. smile.gif
Stanislav_GS
Цитата(Огурцов @ 2.7.2010, 1:08) *
Опрашивать нужно хотя бы для того, чтобы со всей дури не въехать фрезером в станину. Прерывать (это какбэ по-вашему подходу) будут события UARTа и таймера. Таймер молотит с частотой 62.5кГц, меньше нельзя, ибо микрошаг, в виду большого их количества в единицу времени, требует короткого цикла управления током обмоток.
Все равно ничего не понятно. :(
Давайте попробуем определиться сперва, что есть причина, и что должно быть её следствием?
Stanislav_GS
Цитата(Огурцов @ 2.7.2010, 1:11) *
Вот давайте не будем увиливать. Обосрав мое решение тут же требуете себе шустрого АРМа. В газенваген (с)
Думаю, что у Вас пока что нет решения.
А есть только представления о нём.
В противном случае, поясните, как Вы определяете период цикла 62,5мкс? Ждёте флажка таймера? wink.gif
Stanislav_GS
Цитата(Огурцов @ 2.7.2010, 1:16) *
Количество тактов на вход/выход в/из прерывание и сохранение/восстановление контекста, в данном случае.
Какого контекста, в данном случае?

Вы вообще понимаете, что есть "контекст", и зачем его непременно нужно сохранять?

Цитата(Огурцов @ 2.7.2010, 1:16) *
...Даташит чего ? AVR ? А может вам сначала его освоить ? Ибо я и без даташита скажу, (ни)сколько прерываний вы успеете обработать за 256 тактов.
Ну, так скажите, зачем выпендриваться.
Даташиты на атмеги я позабыл уже - давно с ними не работал.
Прохожий
Цитата(Stanislav_GS @ 2.7.2010, 2:09) *
smile.gif
Щаз АРМы, вроде, подешевле ПИКов и АВРок толкают. smile.gif

PIC-ов так просто не протолкнешь.
Я было решил сделать проект на STM32F103, но быстро одумался.
В результате PIC24FJ128GA108.
Несмотря на все свои 72 МГц, STM32F103 находится на одном уровне с 16 МГц PIC-ом с 16 "разрядным" мотором.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.