|
Tiny2313 нужна 1 сек. на таймер 0, "Уходит" время :( |
|
|
|
Jul 8 2007, 19:46
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 23-05-05
Из: UA
Пользователь №: 5 317

|
Доброго времени суток. Контроллер - Tiny2313 Частота - 8МГц Компилятор - CVAVR 1.25.2b1 Одна из функций устройства - подсчет текущего времени. Используется таймер 0 (второй уже недоступен). Прерывание по совпадению и автоматическая очистка счетчика при условии сравнения. С предделителем 256 получаю частоту прерыания ровно 125Гц (64000 тактов) И в прерывании делитель ставлю на 125. Вроде всё верно, но за 8,5 часов часики удрали на 4 секунды  Устройство активно работает с внутренней EEPROM. Вот тут и начинаются вопросы ... - если прерывание таймера возникает при их глобальном запрещении, или выполнении "длинных" команд, то прерывание вызовется с задержкой ... сбивается ли при этом счетчик циклов в таймере? - кто что может посоветовать? _____ P.S. Запскал HEX в Студии ... ставлю точку останова на вектор прерывания ... прерывание вызывается каждые 64000 такта ... почти всегда, иногда выскакивает 64001 или 64002 - видать из-за длительных команд ... но потом всё выравнимается. Правда симуляцию я запускал максимум на секунду - на моем компе на это около 30 минут :-) А может это такая точность кварца? Слабо верится. Да! фузы верно настроены - проверял уже.
|
|
|
|
|
 |
Ответов
|
Jul 10 2007, 14:17
|
Участник

Группа: Новичок
Сообщений: 17
Регистрация: 2-02-07
Пользователь №: 24 993

|
Цитата Посмотрите же даташит на t2313 наконец. Всем еще раз нужно заглянуть в datasheet на ATtiny2313. На рисунке "Figure 31. CTC Mode, Timing Diagram" видно, когда "OCnx Interrupt Flag Set." Надписи "TOVn Interrupt Flag Set" вообще нет, так как прерывание по переполнению никогда не срабатывает. В конце секции читаем: Цитата As for the Normal mode of operation, the TOV0 Flag is set in the same timer clock cycle that the counter counts from MAX to 0x00. MAX = 255 Если OCR0A < 255, счетчик никогда не досчитывает до 255. Непонятно, каким образом прерывание вообще вызывается. Может, компилятор оптимизирует
|
|
|
|
|
Jul 10 2007, 14:22
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(Elegorod @ Jul 10 2007, 22:17)  Всем еще раз нужно заглянуть в datasheet на ATtiny2313. На рисунке "Figure 31. CTC Mode, Timing Diagram" видно, когда "OCnx Interrupt Flag Set." Надписи "TOVn Interrupt Flag Set" вообще нет, так как прерывание по переполнению никогда не срабатывает. В конце секции читаем:
MAX = 255 Если OCR0A < 255, счетчик никогда не досчитывает до 255. Вот вот, и я о том же. В PWM mode, такое будет, так как счетик в любом случае достигнет MAX, то бишь 0xFF (как и указано в даташите). В СТС режиме только если OCR0A = 0xFF.
--------------------
|
|
|
|
Сообщений в этой теме
AndryG Tiny2313 нужна 1 сек. на таймер 0 Jul 8 2007, 19:46 AndreyKeil Цитата(AndryG @ Jul 9 2007, 01:46)
Реж... Jul 8 2007, 20:09 defunct Цитата(AndreyKeil @ Jul 8 2007, 23:09) Кв... Jul 8 2007, 21:18  singlskv Цитата(defunct @ Jul 9 2007, 01:18) Это т... Jul 8 2007, 22:12 GetSmart Тоже думаю, что виновата не программа, а точность ... Jul 8 2007, 22:18 singlskv Цитата(GetSmart @ Jul 9 2007, 02:18) Прич... Jul 8 2007, 22:27 prottoss Мдя... И никто не сказал, что уход то из-за того, ... Jul 9 2007, 00:09 singlskv Цитата(prottoss @ Jul 9 2007, 04:09) Мдя.... Jul 9 2007, 00:39 ae_ Цитата(prottoss @ Jul 9 2007, 09:09) Мдя.... Jul 9 2007, 00:47  prottoss Цитата(ae_ @ Jul 9 2007, 08:47) Начал отв... Jul 9 2007, 10:42 AndryG Спасибо всем за ответы. Вчера весь день был на объ... Jul 10 2007, 05:28 prottoss Цитата(AndryG @ Jul 10 2007, 13:28) Спаси... Jul 10 2007, 10:27  defunct Цитата(prottoss @ Jul 10 2007, 13:27) Как... Jul 10 2007, 10:44   prottoss Цитата(defunct @ Jul 10 2007, 18:44) OCR0... Jul 10 2007, 10:49  =GM= Цитата(prottoss @ Jul 10 2007, 09:27) Че ... Jul 10 2007, 11:21   prottoss Цитата(=GM= @ Jul 10 2007, 19:21) Вы сами... Jul 10 2007, 11:31    =GM= Цитата(prottoss @ Jul 10 2007, 10:31) ...... Jul 10 2007, 12:07     prottoss Цитата(=GM= @ Jul 10 2007, 20:07) Вы хоти... Jul 10 2007, 12:29      =GM= Цитата(prottoss @ Jul 10 2007, 11:29) Я х... Jul 10 2007, 12:40       prottoss Цитата(=GM= @ Jul 10 2007, 20:40) Да отку... Jul 10 2007, 13:14        defunct Цитата(prottoss @ Jul 10 2007, 16:14) Я н... Jul 10 2007, 13:19         prottoss Цитата(defunct @ Jul 10 2007, 21:19) Это ... Jul 10 2007, 13:31          defunct Цитата(prottoss @ Jul 10 2007, 16:31) Да ... Jul 10 2007, 14:20           prottoss Цитата(defunct @ Jul 10 2007, 22:20) В те... Jul 10 2007, 15:05            defunct Цитата(prottoss @ Jul 10 2007, 18:05) Из... Jul 10 2007, 16:09            =GM= Цитата(prottoss @ Jul 10 2007, 14:05) ДА ... Jul 10 2007, 16:13             prottoss Цитата(=GM= @ Jul 11 2007, 00:13) А як же... Jul 10 2007, 16:15             defunct Цитата(=GM= @ Jul 10 2007, 19:13) Не сбра... Jul 10 2007, 16:21             prottoss Цитата(=GM= @ Jul 11 2007, 00:13) Не сбра... Jul 10 2007, 16:38              =GM= Цитата(prottoss @ Jul 10 2007, 16:38) Бли... Jul 10 2007, 22:35               prottoss Цитата(=GM= @ Jul 11 2007, 06:35) Здравст... Jul 11 2007, 11:06               SasaVitebsk Цитата(=GM= @ Jul 11 2007, 01:35) Ну тепе... Jul 12 2007, 22:30                defunct Цитата(SasaVitebsk @ Jul 13 2007, 01:30) ... Jul 12 2007, 22:40                 =GM= Цитата(SasaVitebsk @ Jul 12 2007, 21:30) ... Jul 13 2007, 10:31                  SasaVitebsk Цитата(=GM= @ Jul 13 2007, 13:31) Саша, у... Jul 13 2007, 16:18        =GM= Цитата(prottoss @ Jul 10 2007, 12:14) Ну ... Jul 10 2007, 14:55        =GM= Цитата(prottoss @ Jul 10 2007, 12:14) Ну ... Jul 10 2007, 15:10         prottoss Цитата(=GM= @ Jul 10 2007, 23:10) Про изв... Jul 10 2007, 15:15 defunct Цитата(AndryG @ Jul 10 2007, 08:28) Вот с... Jul 10 2007, 09:59 defunct ЦитатаНо у парня прерывание не по совпадению с OCR... Jul 10 2007, 12:54 defunct Цитата(Elegorod @ Jul 10 2007, 17:17) В к... Jul 10 2007, 14:28  prottoss Цитата(defunct @ Jul 10 2007, 22:28) Это ... Jul 10 2007, 14:33   defunct Цитата(prottoss @ Jul 10 2007, 17:33) Oxo... Jul 10 2007, 14:38 Elegorod Тогда и в тексте описания ошибки, и во всем раздел... Jul 10 2007, 14:34 kada Вполне возможно, что дело в кварце.
Столкнулись с ... Jul 10 2007, 14:39 AndryG Почитал я ветку ... и понял, что сейчас мне на оре... Jul 11 2007, 05:25 олесь Все верно,если на кварце 8.000, то частотомер, нап... Jul 12 2007, 19:31 singlskv Цитата(олесь @ Jul 12 2007, 23:31) Все ве... Jul 12 2007, 20:59 defunct ЦитатаА вот всем вам вопрос на засыпку: зачем введ... Jul 13 2007, 10:44 =GM= Цитата(defunct @ Jul 13 2007, 09:44) ЧИМ ... Jul 13 2007, 11:31  prottoss Цитата(=GM= @ Jul 13 2007, 19:31) Это как... Jul 13 2007, 11:53   =GM= Цитата(prottoss @ Jul 13 2007, 10:53) ШИМ... Jul 13 2007, 15:23    prottoss Цитата(=GM= @ Jul 13 2007, 23:23) Мне каз... Jul 13 2007, 15:38     =GM= Цитата(prottoss @ Jul 13 2007, 14:38) Я п... Jul 13 2007, 16:33      prottoss Цитата(=GM= @ Jul 14 2007, 00:33) Ну хотя... Jul 13 2007, 16:45       =GM= Цитата(prottoss @ Jul 13 2007, 15:45) Это... Jul 13 2007, 21:38        defunct Цитата(=GM= @ Jul 14 2007, 00:38) 2) Где ... Jul 13 2007, 22:27         =GM= Цитата(defunct @ Jul 13 2007, 22:27) Реги... Jul 14 2007, 21:03          defunct Цитата(=GM= @ Jul 15 2007, 00:03) Ерунду ... Jul 14 2007, 22:39           =GM= To defunct. Кажется понял наконец корень всех затр... Jul 15 2007, 10:45            prottoss Цитата(=GM= @ Jul 15 2007, 18:45) то не в... Jul 15 2007, 12:33             =GM= Цитата(prottoss @ Jul 15 2007, 12:33) При... Jul 15 2007, 13:34              defunct Цитата(=GM= @ Jul 15 2007, 16:34) Слова в... Jul 15 2007, 15:53               =GM= Цитата(defunct @ Jul 15 2007, 15:53) Пере... Jul 15 2007, 16:43                defunct Цитата(=GM= @ Jul 15 2007, 19:43) Перечит... Jul 15 2007, 22:04 GetSmart Цитата(=GM=)Саша, у меня пара вопросов к вам, не з... Jul 13 2007, 13:53
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|