???
Математика на уровне МГУ

Показано с 1 по 25 из 78

Тема: Скан-код POWER

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Зашедший
    Регистрация
    29.10.2010
    Возраст
    63
    Сообщений
    8

    Re: Скан-код POWER

    Цитата Сообщение от Zorge Посмотреть сообщение
    А вот вложенные прерывания - на архитектуре AVR 8-bit лучше не делать - полностью согласен с LeonT.
    Внутри прерываний - только циклы задержки и ничего больше - все равно никто не прервет. Но делать нужно все быстро и коротенько - чтобы ни на кого другого сильно не влиять.
    Вот это очень спорное высказывание.
    Вызов прерываний из другого прерывания допускается в случае крайней необходимости, например в одном прерывании вы выводите значение на индикатор и в это же время приходит импульс формирующий измерительный интервал... Что важнее вывести все цифири до последней или запустить/остановить процесс значение которого потом будем выводить на дисплей?
    А вот делать задержки внутри обработчика прерывания есть наипервейшее зло, само название - "прерывание" говорит о том что прерывается основной (читай самый важный) процесс, а вы в нем задержку...
    для Змея
    1. если буржуйские мануалы плохо курятся купи/скачай книжку А.В.Евстифеева "Микроконтроллеры AVR семейства mega/tiny/classik Руководсво пользователя" это выжатые мануала по разным семействам только на русском
    читаешь-уточняешь(на конкретный камень, в буржуйском мануале)-применяешь
    2. есть такая прога VMLab 3.15 заточена как раз под АВРки, проста как 7 коп. и позволяет моделировать вх.сигналы.
    ИМХО протеус слишком перегружен для любителей.
    3. если желаешь и дальше программировать - тогда меняй стиль, использование абсолютных значений и имен регистров по умолчанию прямой путь к запутыванию себя и тех кто потом будет пытаться помогать запустить софтину.

    in r17,timsk
    sbr r17,1<<TOIE0 ;сразу видно что разрешаем прерывание от Т0 по переполнению
    out timsk,r17

    ну и R17 заменить на, скажем, temp
    ну и т.д. не будем углубляться - это все-таки сайт не про мк

  2. #2
    Старший инструктор Аватар для ZMIY
    Регистрация
    28.07.2007
    Адрес
    Магнитогорск
    Возраст
    48
    Сообщений
    3,142

    Re: Скан-код POWER

    Цитата Сообщение от jamper Посмотреть сообщение
    Вот это очень спорное высказывание.
    Вызов прерываний из другого прерывания допускается в случае крайней необходимости, например в одном прерывании вы выводите значение на индикатор и в это же время приходит импульс формирующий измерительный интервал... Что важнее вывести все цифири до последней или запустить/остановить процесс значение которого потом будем выводить на дисплей?
    А вот делать задержки внутри обработчика прерывания есть наипервейшее зло, само название - "прерывание" говорит о том что прерывается основной (читай самый важный) процесс, а вы в нем задержку...
    Ага, тоже подобные мысли вчера в голове крутились. Поэтому в более в более критичном процессе запретил таки прерывания, вообще все. А в менее критичном разрешил.
    Цитата Сообщение от jamper Посмотреть сообщение
    для Змея
    Для ЗмИя
    Цитата Сообщение от jamper Посмотреть сообщение
    1. если буржуйские мануалы плохо курятся купи/скачай книжку А.В.Евстифеева "Микроконтроллеры AVR семейства mega/tiny/classik Руководсво пользователя" это выжатые мануала по разным семействам только на русском
    читаешь-уточняешь(на конкретный камень, в буржуйском мануале)-применяешь
    Эх. Да сколько ж я уже этих книжек скачал, сколько сайтов перерыл...
    Где-то одно понятно (для моего разума) написано, где-то другое...
    А один фиг уточнять и сверяться приходится с родным буржуйским даташитом (ладно, может хоть на этом поприще английский выучу, давно мечтал в принципе)
    Цитата Сообщение от jamper Посмотреть сообщение
    есть такая прога...
    Есть. И ещё миллион других прог есть. Все не изучишь, мне бы для начала все мнемоники ассемблера назубок запомнить а то постоянно со справочниками сверяться приходится. Я так решил, что пока эту прогу не допишу, никаких Визуал Бейсиков , т.е. программ автоматизирующих работу и т.д. Цель - именно мозг раскачать. А уже потом с просветлённым разумом можно подбирать более удобную программу.
    Цитата Сообщение от jamper Посмотреть сообщение
    3. если желаешь и дальше программировать - тогда меняй стиль, использование абсолютных значений и имен регистров по умолчанию прямой путь к запутыванию себя и тех кто потом будет пытаться помогать запустить софтину.

    in r17,timsk
    sbr r17,1<<TOIE0 ;сразу видно что разрешаем прерывание от Т0 по переполнению
    out timsk,r17

    ну и R17 заменить на, скажем, temp
    ну и т.д.
    Да я и сам уже это понял. Вчера добрых несколько часов убил, всё переименовывал, упорядочивал, заворачивал в макросы...
    Цитата Сообщение от jamper Посмотреть сообщение
    не будем углубляться - это все-таки сайт не про мк
    Сайт не про МК, а тема про МК, так что по правилам сайта, это не оффтоп, поэтому можно и углубиться

    PS Это Ваше первое сообщение на данном форуме, причём в такой специфической теме... Нет, это не упрёк или что-то ещё, просто необычно как-то
    "У пилота есть работа - он летает самолёт" (с) М/Ф Смешарики
    Ник в WoT: Rulevoy

  3. #3
    Зашедший
    Регистрация
    29.10.2010
    Возраст
    63
    Сообщений
    8

    Re: Скан-код POWER

    Все очень просто
    AVR это мое основное хобби, причем пишу исключительно на АСМе , поэтому не смог промолчать про прерывания.
    а дополнительное, но не менее любимое ИЛ-2 ЗС , и вот после смерти очередного джоя решил забодяжить что-нибудь этакое, поиск привел меня на этот сайт, а тут "столько вкусного" , уже собрал контроллеры HJFree, MJ16, сейчас мастрячу механику под рус/руд, а дальше видно будет...

  4. #4
    Офицер Форума Аватар для Zorge
    Регистрация
    06.03.2004
    Адрес
    Байконур
    Возраст
    43
    Сообщений
    2,893
    Images
    10

    Re: Скан-код POWER

    Цитата Сообщение от jamper Посмотреть сообщение
    Вот это очень спорное высказывание.
    Вызов прерываний из другого прерывания допускается в случае крайней необходимости, например в одном прерывании вы выводите значение на индикатор и в это же время приходит импульс формирующий измерительный интервал...
    За индикацию по прерыванию нас в институте цитирую:
    "Увижу - буду бить. Сильно, но аккуратно" (с) один хороший майор.

    Пользователь с временем реакции 0.2 секунды не помрет, если получит индикацию на 10-50 миллисекунд позже. А чтобы символ не потерялся - нужно программировать так, чтобы после возврата из прерывания все сохранилось. Например хранить индекс сканируемого символа и выводимое значение индикатора целиком в памяти.

    Прерывание, в отличие от основной программы, строится в расчете на непрерываемость - потому что памяти у нас мало, процессор слабенький - не до жиру.

    Задержка без использования стека (тоже, кстати, надо по-минимуму в прерывании применять, как и любое другое обращение в ОЗУ - считал данные в начале работы, записал данные по окончании и хватит) и дополнительных извращений - это 255 тактов максимум. От нее сильно никому не поплохеет. Обычно, я задержки вставляю в прерываниях, чтобы внешний регистр успел перещелкнуться, или чтобы выдать синхронизацию строго после того, как данные на шине устаканились.

    Конечно, если "по фен-шую", то в прерываниях должны только флаги выставляться, а по этим флагам основной цикл подпрограммы вызвать, разбираясь - кому времени побольше дать, а кому не очень. С флагами "меня после входа дольше чем на столько-то не прерывать" (чтобы протокол соблюсти например). Отправлять контроллер "спать", если ничего не делается. Чтобы истинная многозадачность была.
    "Когда надо дать всем поровну, часто и помногу" (с) тот же самый майор.
    Но это в больших проектах и/или на ЯВУ с поддержкой этой самой многозадачности компилятором.

    А когда контроллер занимается неторопливым измерением одного параметра и не менее неторопливой выдачей его в интерфейсную шину или на индикацию - задержки - это самое простое, что можно использовать, чтобы не плодить сущности.

    Цитата Сообщение от jamper Посмотреть сообщение
    А вот делать задержки внутри обработчика прерывания есть наипервейшее зло, само название - "прерывание" говорит о том что прерывается основной (читай самый важный) процесс, а вы в нем задержку...
    У меня совершенно противоположный подход. Все самое важное и требующее непрерывности, непременно полной обработки - по прерываниям, callback ам от прерываний, дополнительным процессам (когда надо - и с повышенным приоритетом).
    А основной процесс занимается обработкой ввода пользователя, индикацией. Поэтому, если получит управление чуть попозже - ничего страшного не случится.
    Да и сделать только основной процесс безопасно прерываемым гораздо проще, чем городить эту самую "реентрабельность" везде и всюду. Экономит и время написания и отладки, и код и оперативную память.

    Цитата Сообщение от jamper Посмотреть сообщение
    2. есть такая прога VMLab 3.15 заточена как раз под АВРки, проста как 7 коп. и позволяет моделировать вх.сигналы.
    ИМХО протеус слишком перегружен для любителей.
    Перегружен - это P-CAD PC logs 1988-го года выпуска и Multisim начала 2000-х.
    А Протеус прост как тапок. Главное накидать цифровых элементов, а не аналоговых - и вперед.
    VMLab, при всей его навороченности и сложности всего-лишь отладчик.
    Proteus отличается от Microcap или там EWB только тем, что контроллеры моделировать умеет. Поэтому после его освоения получится не потеряться и в них и хотя бы понимать "куда копать" в других программах подобного класса.

    Хотя, может у меня такое мнение, потому что мой любимый AvrCo сам себе VMLab - есть в нем и индикатор ЖК, и семисегментные индикаторы, и эмулятор терминала для UART, и на АЦП можно подавать всякие загогулины, да много чего еще.

    Цитата Сообщение от jamper Посмотреть сообщение
    3. если желаешь и дальше программировать - тогда меняй стиль, использование абсолютных значений и имен регистров по умолчанию прямой путь к запутыванию себя и тех кто потом будет пытаться помогать запустить софтину.
    Согласен. Однако просто так самому дисциплинировать себя сложно.
    Лучше написать что-нибудь зубодробительное без комментариев.
    А потом при попытке разобраться в написанном в целях дополнения или модификации - плюнуть и переписать "как надо" уже заново, с правильными именами и структурой данных.
    Когда наступишь на грабли сам, да еще несколько раз - набитая шишка не даст лениться.

    Цитата Сообщение от ZMIY
    Я так решил, что пока эту прогу не допишу, никаких Визуал Бейсиков , т.е. программ автоматизирующих работу и т.д. Цель - именно мозг раскачать. А уже потом с просветлённым разумом можно подбирать более удобную программу.
    Пожелаю удачи. Наверное так и надо.
    А я так и не добил свой крупный проект на астме.
    Может я и ленивый. Но когда написал его же за полторы недели на Паскале, и еще за месяц отладил до состояния "комар носа не подточит", после того как полгода мурыжил его на ассемблере - был счастлив.

    Я наверное нестандартные велосипеды изобретаю.
    Нормальные люди "ресетят" контроллер переходом по нулевому адресу. А я, если есть watchdog - вешаю контроллер, точно зная, что watchdog все сделает сам.
    // 地辟于丑 - Земля рождена в час Быка

  5. #5
    Ломаю джойстики Аватар для Alex Oz
    Регистрация
    03.03.2007
    Адрес
    Minsk
    Возраст
    59
    Сообщений
    1,092
    Images
    4

    Re: Скан-код POWER

    Эх, счастливые вы люди, есть время копаться в регистрах
    Тут с прикладной физикой успеть бы разбираться...

    Цитата Сообщение от Zorge Посмотреть сообщение
    ...
    Нормальные люди "ресетят" контроллер переходом по нулевому адресу. А я, если есть watchdog - вешаю контроллер[/url], точно зная, что watchdog все сделает сам.
    While(1) ; - и я так грешным делом люблю

  6. #6
    Зашедший
    Регистрация
    29.10.2010
    Возраст
    63
    Сообщений
    8

    Re: Скан-код POWER

    Цитата Сообщение от Zorge Посмотреть сообщение
    У меня совершенно противоположный подход
    какие ваши годы
    "я тоже был молодым и горячим" (с) "Люди и манекены" А.Райкин
    Цитата Сообщение от Zorge Посмотреть сообщение
    "Увижу - буду бить. Сильно, но аккуратно" (с) один хороший майор.
    только подвергая сомнению, даже самые мудрые высказывания, можно добраться до истины.

    PS я тоже мойор, и вроде тоже не плохой

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •