| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Таймеры/счётчики в AVR https://radiokot.ru/forum/viewtopic.php?f=57&t=93883 |
Страница 1 из 70 |
| Автор: | Dr. Alex [ Пт авг 30, 2013 19:55:55 ] |
| Заголовок сообщения: | Таймеры/счётчики в AVR |
Объясните мне, никак не могу взять в толк, TCCR1A и TCCR1B в чём прикол? |
|
| Автор: | blackx [ Пт авг 30, 2013 20:14:29 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Все приколы расписаны со стр. 96 http://www.atmel.com/images/atmel-2486- ... asheet.pdf еще приколы тут http://easyelectronics.ru/avr-uchebnyj- ... jmery.html и тут http://easyelectronics.ru/avr-uchebnyj- ... -shim.html |
|
| Автор: | Dr. Alex [ Пт авг 30, 2013 20:19:09 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
А в двух словах не можете объяснить? Что-то не вкуриваю...... |
|
| Автор: | blackx [ Пт авг 30, 2013 21:02:21 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Два слова: не могу. Читайте, разбирайтесь и задавайте конкретные вопросы. |
|
| Автор: | COKPOWEHEU [ Пт авг 30, 2013 21:20:30 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
два слова: настройки таймера |
|
| Автор: | Dr. Alex [ Пт авг 30, 2013 21:24:02 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Я просто не могу понять разницы между TCCR1A и TCCR1B..... Просто во многих примерах TCCR1A=0х00; НО, в некоторых какому-то числу..... |
|
| Автор: | blackx [ Пт авг 30, 2013 21:32:14 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
это просто два разных регистра. Ну не влезли в один - взяли и второй инженегры Атмела запилилиНу так вот, есть два регистра, в каждом по восемь битов. У каждого бита может быть своя задача, некоторые могут быть объединены. Открываем датащит, смотрим регистр TCCR1A: COM1A1 COM1A0 COM1B1 COM1B0 FOC1A FOC1B WGM11 WGM10 1) COM1A1 COM1A0 COM1B1 COM1B0: для выводов OC1A and OC1B выбран Normal port operation, OC1A/OC1B disconnected. 2) FOC1A FOC1B: просто выключены, можно не заморачиваться пытаясь понять что такое Force Output Compare (я и сам не знаю 3) WGM11 WGM10 - тут уже половина битов в другом регистре определена (который B). Смотрим таблицу 39 меги8 - там каждый режим описан. Точно так же с TCCR1B. |
|
| Автор: | Dr. Alex [ Пт авг 30, 2013 21:34:21 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Теперь стало яснее, но, получается они под одним таймером? |
|
| Автор: | blackx [ Пт авг 30, 2013 21:34:59 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Ага, это все к таймеру 1 относится, который 16-битный |
|
| Автор: | COKPOWEHEU [ Пт авг 30, 2013 21:41:12 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
TCCR1A, TCCR1B. Думаете что значит цифра? |
|
| Автор: | Dr. Alex [ Пт авг 30, 2013 21:44:34 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Да я догадывался, но решил спросить у старших братьев.... А меня сразу в штыки |
|
| Автор: | blackx [ Пт авг 30, 2013 21:47:32 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Так спросили. Старайтесь задавать вопросы более ясно
|
|
| Автор: | Gudd-Head [ Пн сен 02, 2013 13:26:11 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
На самом деле, тема с таймерами и ШИМ не такая уж простая, без поллитра не разберёшся. Тему прилепил. |
|
| Автор: | COKPOWEHEU [ Пн сен 02, 2013 21:08:43 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Да? В даташите же все расписано. Или может это я не выглядывал в какие-то особые дебри? Хотя в чем-то вы правы. |
|
| Автор: | blackx [ Пн сен 02, 2013 21:22:54 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Да, действительно, по таймерам в АВР больше всего новых тем. Это, пожалуй, самое нужное устройство МК и самое сложное в освоении. |
|
| Автор: | Eugene.Negrobov [ Вт сен 03, 2013 19:22:18 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Вот как не ругайте, а вот именно с таймерами разобраться, имея в руках генератор кода- проще простого. |
|
| Автор: | blackx [ Вт сен 03, 2013 19:42:32 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Eugene.Negrobov, нечего тут приучать людей "писать" код с помощью мышки |
|
| Автор: | COKPOWEHEU [ Вт сен 03, 2013 23:11:17 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Самое нужное может быть, самое сложное - едва ли. ИМХО с интерфейсами гораздо больше возни, особенно если все делать как положено а не как всегда. То есть проверять ошибки приема-передачи, например |
|
| Автор: | Gudd-Head [ Ср сен 04, 2013 11:15:59 ] |
| Заголовок сообщения: | Re: Таймеры в AVR |
Ну что ж... Может, получится сделать что-то вроде FAQ по таймерам/счётчикам AVR в режиме диалога, поправьте меня если я где не прав. Для начала возьмём простой как резистор 8-битный таймер/счётчик0 8-й Меги: Считает только вперёд, флаг и прерывание выставляется когда переваливается через 255 ($FF) на 0 ($00). Соответственно, в режиме таймера чтобы отмерить определённый временной интервал Т, надо заслать соответсвующее число в TCNT0, заранее вычислив его по формуле TCNT0 = (256 - T/clkТ0), где clkТ0 — частота тактирования таймера/счётчика0. Источник тактовых импульсов может быть как внешним (через пин Т0), так и внутренним — тот что тактирует МК clkI/O, с предделителем или без: Предделитель (прескалер) считает постоянно, поэтому используя в качестве тактов СК/8, СК/64, СК/256 или СК/1024 перед запуском таймера хорошо бы его сбрасывать (ресетить) для получения точных временных интервалов. Однако, таймер/счётчик0 и таймер/счётчик1 используют один и тот же предделитель, так что сбрасывать надо осторожно чтобы не сбить работу другого таймера. Таким образом, лучше использовать максимально возможную частоту счёта clkТ0. Например, отсчитать 256 мкс при тактовой clkI/O = 1 МГц (встроенный RC-генератор, заводские фьюзы для 8-й Меги). Возможные комбинации (без сброса предделителя): 1. clkТ0 = clkI/O, TCNT0 = 0. Итог: 256 мкс; 2. clkТ0 = СК/8, TCNT0 = 224. Итог: 248...256 мкс; 3. clkТ0 = СК/64, TCNT0 = 252. Итог: 192...256 мкс; 4. clkТ0 = СК/256, TCNT0 = 255. Итог: 1...256 мкс. Управляется сие чудо, по сути, всего тремя значащими (младшими) битами регистра TCCR0, которые указывают источник тактового сигнала. Его отсутствие (комбинация "000") стопорит таймер/счётчик. Ну, плюс ещё по биту флаг, маска прерывания и сброс прескалера. |
|
| Автор: | Dr. Alex [ Ср сен 04, 2013 12:20:27 ] |
| Заголовок сообщения: | Re: Таймеры/счётчики в AVR |
Хм... Теперь стало более-менее яснее... Спасибо, но есть ещё некоторые ньюансы, спрошу попозже. |
|
| Страница 1 из 70 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|



это просто два разных регистра. Ну не влезли в один - взяли и второй инженегры Атмела запилили