Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Таймер с прерыванием 1 раз в сек от кварца 32768 на Atme |
Цитата |
|
Выходит выглядеть ято будет примерно так: 1 -> assr.3 настраиваем TIMSK настраиваем Timer2 проверяем флаги TCN2UB, OCR2UB, TCR2UB 1 -> I Всё, можем пользоваться прерыванием В общем то это всё мне нужно в моём проекте, который я сюда выкладывал. Хочется научиться работать с таймерами.
Выходит выглядеть ято будет примерно так: 1 -> assr.3 настраиваем TIMSK настраиваем Timer2 проверяем флаги TCN2UB, OCR2UB, TCR2UB 1 -> I Всё, можем пользоваться прерыванием В общем то это всё мне нужно в моём проекте, который я сюда выкладывал. Хочется научиться работать с таймерами.
|
|
|
 |
Добавлено: 24 мар 2014, 18:49 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Таймер с прерыванием 1 раз в сек от кварца 32768 на Atme |
Цитата |
|
ага, я так и подумал что ручками в ASSR придётся 3 бит ставить. А можно вместо проверки флагов просто сделать паузу? Я так понял что там всё строго тактировано, и у действий есть определённое количество тактов?
ага, я так и подумал что ручками в ASSR придётся 3 бит ставить. А можно вместо проверки флагов просто сделать паузу? Я так понял что там всё строго тактировано, и у действий есть определённое количество тактов?
|
|
|
 |
Добавлено: 24 мар 2014, 18:43 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Таймер с прерыванием 1 раз в сек от кварца 32768 на Atme |
Цитата |
|
Лучше курить даташит :) Действительно, в проге какое-то упущение по этой настройке.
С англ. проблем нет ?
[quote]Asynchronous оperation of Timer/Counter2. When Timer/Counter2 operates asynchronously, some considerations must be taken. 1. Disable the Timer/Counter2 interrupts by clearing OCIE2 and TOIE2. [i]т.е. сначала настраиваем:[/i] 2. Select clock source by setting AS2 as appropriate. [i]ASSR, бит 3, ставим туда 1.[/i] 3. Write new values to TCNT2, OCR2, and TCCR2. [i]пофиг, пропускаем[/i] 4. To switch to asynchronous operation:Wait for TCN2UB, OCR2UB, and TCR2UB. [i]Ждем на 2,1,0 битах нулей[/i] 5. Clear the Timer/Counter2 Interrupt Flags. 6. Enable interrupts, if needed. [i]перезапускаем прерывания[/i][/quote] [code]Bit 3 2 1 0 AS2 TCN2UB OCR2UB TCR2UB ASSR[/code]
[url]http://www.atmel.com/Images/doc2466.pdf[/url]
А по частоте - асинхронный таймер на часовой кварц и рассчитан. Поэтому отдельно задавать нигде не надо
|
|
|
 |
Добавлено: 24 мар 2014, 18:39 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Таймер с прерыванием 1 раз в сек от кварца 32768 на Atme |
Цитата |
|
[quote="ivdor"]2. Timer2 настраивается на TOSC,[/quote] Вот тут и загвоздка у меня. Не нашёл я этой настройки. И ещё. Если частота работы процессора = 8 Мгц, а кварца 32768 гц, и в настройках выставляется частота 8 Мгц, тут как быть? Нет, это не часы, просто нужен секундный интервал.
|
|
|
 |
Добавлено: 24 мар 2014, 13:51 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Таймер с прерыванием 1 раз в сек от кварца 32768 на Atme |
Цитата |
|
1. Кварц подключается к TOSC1 TOSC2 2. Timer2 настраивается на TOSC, на максимальный делитель - 1024. Включаем прерывание с настройках таймера. 3. В обработке прерывания - считаем каждое 32е срабатывание. Оно и будет 1 сек. (32*1024)
Если задача сделать часы - лучше использовать часовые м/с - они без питания считают время за счет батарейки.
1. Кварц подключается к TOSC1 TOSC2 2. Timer2 настраивается на TOSC, на максимальный делитель - 1024. Включаем прерывание с настройках таймера. 3. В обработке прерывания - считаем каждое 32е срабатывание. Оно и будет 1 сек. (32*1024)
Если задача сделать часы - лучше использовать часовые м/с - они без питания считают время за счет батарейки.
|
|
|
 |
Добавлено: 24 мар 2014, 12:13 |
|
|
 |
|
|
Заголовок сообщения: |
Таймер с прерыванием 1 раз в сек от кварца 32768 на Atmega16 |
Цитата |
|
Всем привет. Не нашёл информации по обозначенному вопросу. А именно: как реализовать, чтоб раз в секунду по прерыванию выполнялось некое действие? Встречал схемы, где используется "часовой" кварц, вот только не понял как настроить таймер на прерывание 1 раз в секунду.
Всем привет. Не нашёл информации по обозначенному вопросу. А именно: как реализовать, чтоб раз в секунду по прерыванию выполнялось некое действие? Встречал схемы, где используется "часовой" кварц, вот только не понял как настроить таймер на прерывание 1 раз в секунду.
|
|
|
 |
Добавлено: 24 мар 2014, 10:21 |
|
|
 |
|