|
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 13 2007, 11:53
|

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

|
Цитата(=GM= @ Jul 13 2007, 19:31)  Это как? оччччччь просто ШИМ (широтно-импульсная модуляция) aka WGM = 0x01: Меняется длительность импульса при неизменной частоте - производится при помощи изменения содержимого регистра OCRnx ЧИМ (частотно-импульсная модуляция) aka WGM = 0x05: Меняется длительность импульса пропорционально частоте - так же при помощи OCRnx
--------------------
|
|
|
|
|
Jul 13 2007, 15:23
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(prottoss @ Jul 13 2007, 10:53)  ШИМ (широтно-импульсная модуляция) aka WGM = 0x01: Меняется длительность импульса при неизменной частоте - производится при помощи изменения содержимого регистра OCRnx Здесь вроде бы ясно. А вот здесь непонятно. Цитата(prottoss @ Jul 13 2007, 10:53)  ЧИМ (частотно-импульсная модуляция) aka WGM = 0x05: Меняется длительность импульса пропорционально частоте - так же при помощи OCRnx Мне казалось, что будут генерироваться короткие импульсы неизменной ширины в два такта (может в один), а период будет меняться с помощью OCR0А. Т.е. длительность импульсов неизменна, а частота импульсов меняется. Легко убедиться в этом, если постепенно приближать значение OCR0А к 0xFF, скажем, при OCR0А=0xFЕ импульсы будут шириной 4 такта, а при OCR0А=0xFF импульсы будут шириной 2 такта.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Jul 13 2007, 15:38
|

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

|
Цитата(=GM= @ Jul 13 2007, 23:23)  Мне казалось... Я поражаюсь  Парень убедил всех и меня... В итоге он сам не знает того, в чем он всех победил... Еще раз: PWM = 0x005: 1. Цикл счета есть количество импульсов TCn от OCRnx ...0 + 0 ... OCRnx 2. Фаза сигнала меняется при переходе значения счетчика через 0 3. Меняя значение OCRnx мы, соответсвенно меняем частоту изменения фазы, при этом длительность импульса тоже меняется...
--------------------
|
|
|
|
|
Jul 13 2007, 16:33
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(prottoss @ Jul 13 2007, 14:38)  Я поражаюсь  Парень убедил всех и меня... В итоге он сам не знает того, в чем он всех победил...  Чудак, вы рrottoss. не собирался я никого ни побеждать, ни злить. Истина, как говорится, мне дороже. По тому делу, которое мы обсуждали раньше. Вы так ничего и не поняли(:-). Говорю последний раз. Представьте себе, при WGM=5 счётчик считает вверх. 0, 1, 2, 249. Следующее значение счетчика будет 250, и оно совпадёт с содержимым OCR0А, которое равно 250 (на самом деле 249, ну да ладно, оставим так). Что произойдёт? А вот что. Направление счёта счетчика сменится на обратное, затем произойдёт обновление регистра OCR0А, в него перепишется ТО ЖЕ САМОЕ ЗНАЧЕНИЕ 250. Со следующего такта счетчик начнёт считать вниз. Когда счётчик дойдёт до 0, возникнет прерывание таймера по переполнению TOV0. Далее весь цикл повторится, надеюсь, теперь вы это поняли? Ну а прерывания (125 штук в секунду) можно использовать для организации текущего времени. Теперь по вашему сегодняшнему заявлению. Цитата(prottoss @ Jul 13 2007, 14:38)  Еще раз: PWM = 0x005: prottoss, это уже не смешно, ну не PWM=5, а WGM=5. Цитата(prottoss @ Jul 13 2007, 14:38)  1. Цикл счета есть количество импульсов TCn от OCRnx ...0 + 0 ... OCRnx 2. Фаза сигнала меняется при переходе значения счетчика через 0 3. Меняя значение OCRnx мы, соответственно меняем частоту изменения фазы, при этом длительность импульса тоже меняется... 1) Ну хорошо, согласен. 2) О, боги! Ну откуда вы взяли, что фаза OCR0 будет меняться при переходе значения счетчика через 0? Ну хотя бы взгляните на график на рис.32. Где там меняется фаза выходного сигнала? 3) Где по-вашему будет происходить сравнение содержимого счётчика и OCR0? Если в нуле, тогда у вас всегда будет меандр переменной частоты.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Jul 13 2007, 21:38
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(prottoss @ Jul 13 2007, 15:45)  Это про FAST PWM MODE...  Стоит ли дальше продолжать диалог? RE: Мы сдеся про ФАЗЕ КОРРЕКТ ПВМ МОДЕЕЕ... Аууу... Поправлю, график на рис.33. Хорошо бы вы "здеся" ответили на 2 вопроса по существу. 1) Откуда вы взяли, что фаза OCR0 будет меняться при переходе значения счетчика через ноль? Ну хотя бы взгляните на график на рис.33. Где там меняется фаза выходного сигнала? 2) Где по-вашему будет происходить сравнение содержимого счётчика и OCR0? Если в нуле, тогда у вас всегда будет меандр переменной частоты, зависящей от содержимого OCR0.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
Сообщений в этой теме
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 Elegorod ЦитатаПосмотрите же даташит на t2313 наконец.
Всем... Jul 10 2007, 14:17 prottoss Цитата(Elegorod @ Jul 10 2007, 22:17) Все... Jul 10 2007, 14:22 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 Цитата(=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
|
|
|