Какие таймеры МК ардуина занимает?
- Войдите на сайт для отправки комментариев
Пт, 28/11/2014 - 04:25
мне нужно организовать обработку по таймеру, какой могу настроить под себя чтобы не повредить функции самой ардуины?
мне нужно организовать обработку по таймеру, какой могу настроить под себя чтобы не повредить функции самой ардуины?
Навскидку, поиск по исходникам (v1.0.5) слова ISR (с учетом регистра) подсказывает, что:
Timer0 - нельзя использовать (можно, но будет некий гемор), есть обработчик (wiring.c), а остальные таймеры можно, если не использовать PWM, Tone. Кстати, может быть гемор с Tone (Tone.cpp), поскольку там тоже есть обработчик и могут быть грабли при компиляции (обработчик уже существует, но можно обойти, если хочется).
Ну и, разумеется, кол-во таймеров и их разрядность - зависит от камня, это Вы знаете.
Спасибо! Значит сиогу довольно легко использовать 1 и 2 таймеры
Ну да, главное PWM не трогать, а то таймеры перепрограммируются и кирдык :) Ну и еще помнить, что любые сторонние либы могут задействовать таймеры, любые.
Мысли вслух: такие вещи, конечно, для макетирования и отладки можно делать, а потом слезать с этой среды на голый компилятор, без wiring, чтобы всё было тупо и надежно, без случайных ошибок, а то фиг найдешь :) И шить через ISP, выкинув загрузчик. Эк меня понесло то :)
Ну да, главное PWM не трогать, а то таймеры перепрограммируются и кирдык :) Ну и еще помнить, что любые сторонние либы могут задействовать таймеры, любые.
PWM фигня, совместить его с обработчиком прерываний не сложно
Мысли вслух: такие вещи, конечно, для макетирования и отладки можно делать, а потом слезать с этой среды на голый компилятор, без wiring, чтобы всё было тупо и надежно, без случайных ошибок, а то фиг найдешь :) И шить через ISP, выкинув загрузчик. Эк меня понесло то :
дык у меня таже идея. Но переносить некоторые либы под голый компилятор мне в лом. Вот сейчас сделал несколько устройств с применением RCSwitch. Еще нужна будет IRemote. Пробовал переписывать другие либы, муторно это. Сейчас все в принципе написал в логике ардуино с delay(), но как то коробит)) привык уже в основном цикле только флаги проверять, а все задержки определять по ISR
кстати ADC не удержался - сделал по прерываниям, вот так у меня идет поочередный непрерывный замер трех величин:
кстати прошивку заливаю именно через ISP, использую visulmicro с atmel avr isp mkII
Ну да, главное PWM не трогать, а то таймеры перепрограммируются и кирдык :) Ну и еще помнить, что любые сторонние либы могут задействовать таймеры, любые.
PWM фигня, совместить его с обработчиком прерываний не сложно
В PWM, благо, нет обработчиков, но таймер они перепрограммируют. Скрытый глюк можно словить.
Мысли вслух: такие вещи, конечно, для макетирования и отладки можно делать, а потом слезать с этой среды на голый компилятор, без wiring, чтобы всё было тупо и надежно, без случайных ошибок, а то фиг найдешь :) И шить через ISP, выкинув загрузчик. Эк меня понесло то :
дык у меня таже идея. Но переносить некоторые либы под голый компилятор мне в лом. Вот сейчас сделал несколько устройств с применением RCSwitch. Еще нужна будет IRemote. Пробовал переписывать другие либы, муторно это. Сейчас все в принципе написал в логике ардуино с delay(), но как то коробит)) привык уже в основном цикле только флаги проверять, а все задержки определять по ISR
стати ADC не удержался - сделал по прерываниям, вот так у меня идет поочередный непрерывный замер трех величин:
Я USBASP китайский по 90 рублей (1 шт.), не так давно парочку прикупил, лепота! Сначала всё хотел себе AVRDoper сделать (у него 12В есть, ШИМом делают), да только щас ЛЛТ попробовал, а то может и спаял бы, все детальки есть. Благо с ARM совсем другие проблемы, теперь пара-тройка платок есть, там программаторы есть. Надо, пожалуй, заказать себе STM32 да спаять что-нибудь, там шаг вроде нормальный (я не про корпуса на 208 ног ;)
нет случаем чего то попроще на простом С для IR?
примеры мне попались, но чтобы из них либу сделать нужно еще больше чем с ардуиной извратиться
мне универсальонсть не нужна, нужно медленное общение не большими объемами информации между рядом расположенными устройствами
STM это вещь. Запаять легко можно. Но мне уже влом переползать. Столько усилий на AVR потрачено, тем более что все что мне нужно AVR умеет
Мне понравилась простая идея decoder http://we.easyelectronics.ru/dcoder/pruf-of-koncept---priem-i-peredacha-ik-signala-odnim-svetodiodom.html на одном светодиоде. Там, правда только концепт и STM8, плюс в МК совпадают вход компаратора и выход таймера. Да и писать придется, готового ничего нет.
Вот еще, нашел в закладках http://we.easyelectronics.ru/Soft/prostoy-universalnyy-dekoder-ik-du.html но это только приемник на ATTiny26. Правда он юзает 0 таймер.
А для обмена придется протокол выдумывать, с контролем правильности передачи данных. Зато чуть легче, можно выбрать IR протокол полегче в реализации.
А так, к сожалению ничего нет готового, время от времени копаюсь, но пока время не пришло что то реализовать.
В том то и ерунда)
я еще активно участвовал в проекте mysensors, но переводить кажду версию на Си нереально. Нужен компромисс. Мне бы вот еще железная отладка заработала совсембыло бы хорошо
Насколько помню JTAG есть в ATMEGA, но только он криво работает. Для PinBoard DI HALT делает платку для прошивки Happy JTAG ICE 2 http://easyelectronics.ru/files/PinBoard/AVR_base.pdf (в конце файла небольшое описание), которую можно допаять до JTAG ICE I. Но, говорят, работает криво. Автор сам где про это говорил. Плюс нужно с бубном танцевать, чтобы завести.
Есть и видео http://www.youtube.com/watch?v=gpulC_OjGBA&feature=youtu.be с 10 минуты показывает откладку в студии 4 версии (увы, только 4.19 или типа того).
Схема и прошивка у него где то явно есть в паблик доступе. Хотя лучше сначала почитать в форуме, может и не стоит это делать.
Jtag шикарно работает с нормальным програматором, а с отладчиком еще и самая полноценная отладка. Причем jtag единственный внутрисхемный вариант с которым не возможно испортить фьюзы. Ну ...почти не возможно. Главное сам jtag не отключить) а вот ошибиться с настройкой кварца не страшно
с atmega328 нормально debugWire работает
но дело не в этом. Дело в том, что среда ардуино не поддерживает отладку в железе
А вспомнил, visual micro отладку в триале не держит. Засада. Про фирменные программаторы читал на ЕЕ :) Тихий ужас, а не цены. Я с армовским JTAGом наигрался на курсах по TI, клево отлаживаться, графики, регистры - песня. Ладно не буду на мозги капать ;) Я не нарошно :)
Дык с атмелом таже сказка - регистры, точки останова, прямоц доступ к переферии
у visual micro за деньги своя надстройка типа отладка по USB. С нормальной железной отладкой и близко не стояла, не то это