Форум РадиоКот https://radiokot.ru/forum/ |
|
Внешние прерывания и работа таймеров AVR https://radiokot.ru/forum/viewtopic.php?f=57&t=79222 |
Страница 1 из 1 |
Автор: | КАШАК [ Пн окт 15, 2012 01:05:15 ] |
Заголовок сообщения: | Внешние прерывания и работа таймеров AVR |
Понадобилось использовать в программе внешние прерывания INT0 (раньше как то не нужно было, а теперь решил научить МК общаться с компом по USB). И в связи с этим возник вопрос, как правильно использовать при этом таймеры? Пока удалось запустить только TIM2 в режиме прерывания по совпадению. От прерываний TIM1 уходит в перезагрузку. OVF режим вообще не удалось включить. МК Mega16. |
Автор: | igor-x [ Пн окт 15, 2012 07:15:53 ] |
Заголовок сообщения: | Re: Внешние прерывания и работа таймеров AVR |
http://www.obdev.at/products/vusb/index.html |
Автор: | КАШАК [ Пн окт 15, 2012 10:57:50 ] |
Заголовок сообщения: | Re: Внешние прерывания и работа таймеров AVR |
Вот именно эту штуку я и использую. С подключением по USB почти никаких проблем не было, сейчас МК определяется как HID устройство и успешно обменивается данными с ПК. Но, если включить любой таймер (кроме TIM2 в режиме OVF) МК либо сбрасывается, либо перестает определяться компом. |
Автор: | igor-x [ Пн окт 15, 2012 11:39:03 ] |
Заголовок сообщения: | Re: Внешние прерывания и работа таймеров AVR |
скорее всего прерывания искажают диаграмму работы с УСБ . не лучше ли взять ft232 ? |
Автор: | КАШАК [ Пн окт 15, 2012 11:53:52 ] |
Заголовок сообщения: | Re: Внешние прерывания и работа таймеров AVR |
Нет. Во первых она дороже чем та же Mega8 в 3 раза. Во вторых она создает виртуальный COM порт, а это не так интересно, хочется работать с USB напрямую ![]() ![]() ![]() |
Автор: | Goodefine [ Пн окт 15, 2012 13:21:26 ] |
Заголовок сообщения: | Re: Внешние прерывания и работа таймеров AVR |
С прерываниями можно работать как обычно. Если что то не включается, значит неправильно инициализируете. Другой вопрос что девайс может периодически отваливаться. В этом случае можно сами прерывания запретить и анализировать только флаги прерываний и сбрасывать их вручную. Немного потеряете в скорости, но транзакциям по USB ничего мешать не будет. |
Автор: | КАШАК [ Пн окт 15, 2012 14:05:36 ] |
Заголовок сообщения: | Re: Внешние прерывания и работа таймеров AVR |
Ладно, вечером приду, поэкспериментирую. Еще такой вопрос, как правильно инициализировать внешние прерывания, по фронту, по уровню или все сразу? |
Автор: | Kavka [ Пн окт 15, 2012 18:39:38 ] |
Заголовок сообщения: | Re: Внешние прерывания и работа таймеров AVR |
Эх... И опять, и снова гадаем на кофейной гуще вместо того чтобы сделать наверняка. Т.е. почитать где надо. ![]() Последняя версия V-USB. Для 12 МГц задержка допускается максимум в 25 тактов с момента запрещения прерываний до их разрешения. Для 16.5 МГц соответственно 52 такта. Т.е. если сделать вложенные прерывания (с помощью "sei" или "ISR_NOBLOCK"), то V-USB вполне может работать. Только учтите ещё и работу обработчика V-USB - обработка пакета может занимать до 1200 тактов при 12 МГц ( 100 микро сек.). |
Автор: | КАШАК [ Пн окт 15, 2012 23:21:42 ] |
Заголовок сообщения: | Re: Внешние прерывания и работа таймеров AVR |
А у меня кварц на 16 МГц. ![]() |
Автор: | Kavka [ Вт окт 16, 2012 07:03:00 ] |
Заголовок сообщения: | Re: Внешние прерывания и работа таймеров AVR |
Можно пересчитать. Примерно - легко. А если точно, то надо "закапываться" в исходники v-usb. Для 16 МГц тактов 40-45, наверно. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |