|
|
  |
Tiny2313 нужна 1 сек. на таймер 0, "Уходит" время :( |
|
|
|
Jul 14 2007, 21:03
|

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

|
Цитата(defunct @ Jul 13 2007, 22:27)  Регистра OCR0 вообще-то 2. OCR0A - задает частоту, OCR0B - "ширину" импульса Ерунду говорите, в атмеге2313 два независимых Output Compare Units А и В ассоциированных с таймером0. Регистр OCR0A используется одним блоком, регистр OCR0A - другим. Вот ссылка: Timer/Counter0 is a general purpose 8-bit Timer/Counter module, with two independent Output Compare Units, с.66, документ 2543i. Отличие двух блоков в том, что для блока А может использоваться фиксированное значение TOP=0xFF в режиме Phase Correct PWM, а для блока В - не может. Естественно, мы говорим о блоке А.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Jul 14 2007, 22:39
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(=GM= @ Jul 15 2007, 00:03)  Ерунду говорите, в атмеге2313 два независимых Output Compare Units А и В ассоциированных с таймером0. Регистр OCR0A используется одним блоком, регистр OCR0A - другим. Вот ссылка: Timer/Counter0 is a general purpose 8-bit Timer/Counter module, with two independent Output Compare Units, с.66, документ 2543i.
Отличие двух блоков в том, что для блока А может использоваться фиксированное значение TOP=0xFF в режиме Phase Correct PWM, а для блока В - не может. Естественно, мы говорим о блоке А. Сами вы ерунду говорите. Если счетчик (TCNT) начнет считать в обратную сторону при достижении OCR0A, то - во-первых значения OCR0B >= OCR0A дадут константу на выходе OC0B, - а во-вторых вывод OC0A нет смысла применять (кроме случая когда нужен строго ЧИМ). ЧИМ + ШИМ можно получить естесственно только на выводе OC0B. Если же я действительно говорю ерунду, и если TCNT не начинает считать в обратную сторону при достижении OCR0A, тогда то что вы раньше говорили - насчет TOVF - чушь, т.к. частота следования TOVF будет неизменной. Так что определитесь уж.
|
|
|
|
|
Jul 15 2007, 10:45
|

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

|
To defunct. Кажется понял наконец корень всех затруднений, как всегда, это недоговоренность. Я говорил про блок А (пост #54) и его выход OCR0A, который в режиме WGM=5 даёт строгий ЧИМ - короткие импульсы постоянной длительности с переменным периодом. А вы начали говорить об использовании блока В, непонятно кстати по какой причине и не указывая этого. Ну здесь я согласен, с выхода блока В можно получить ИЛИ ЧИМ, с заданной длительностью импульса (регистр OCR0B=const) и переменным периодом (регистр OCR0A=var) ИЛИ ШИМ, с переменной скважностью (регистр OCR0B=var) и постоянным периодом (регистр OCR0A=const). Что касается вот этого, Цитата(defunct @ Jul 14 2007, 22:39)  Если же я действительно говорю ерунду, и если TCNT не начинает считать в обратную сторону при достижении OCR0A, тогда то что вы раньше говорили - насчет TOVF - чушь, т.к. частота следования TOVF будет неизменной. Так что определитесь уж. то не врубаюсь. Могу только подтвердить, что при WGM=5 таймер0 считает в двух направлениях, при достижении нуля устанавливается флаг TOV0. Если не менять содержимое OCR0A, то частота прерываний будет неизменна.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Jul 15 2007, 12:33
|

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

|
Цитата(=GM= @ Jul 15 2007, 18:45)  то не врубаюсь. Могу только подтвердить, что при WGM=5 таймер0 считает в двух направлениях, при достижении нуля устанавливается флаг TOV0. Если не менять содержимое OCR0A, то частота прерываний будет неизменна. Так врубитесь же наконец  При WGM = 1, если менять содержимое OCRnx - частота выходных импульсов OCnx НЕ МЕНЯЕТСЯ и равна частоте входных импульсов TC, деленной на 510 (для 8-и битных счетчиков, два прохода, с инкрементом и декрементом, от 0 и до максимума, т.e. 255), меняется длительность импульсов При WGM = 5, практически тоже самое, НО, максимум равен НЕ 255, а числу в OCRnA, при этом не зависит, какое число сидит в OCRnB. НО, с помощью OCRnA мы можем менять частоту выходных импульсов, а спомощью OCRnB их ширину Частота прерываний от TOVF будет в первом случае равна частоте входных импульсов ТС, деленной на 510, во втором, как Вы уже говорили зависит от значения OCRnA, подробнее можете посмотреть в любимом  даташите
--------------------
|
|
|
|
|
Jul 15 2007, 13:34
|

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

|
Цитата(prottoss @ Jul 15 2007, 12:33)  При WGM = 1, если менять содержимое OCRnx - частота выходных импульсов OCnx НЕ МЕНЯЕТСЯ и равна частоте входных импульсов TC, деленной на 510 (для 8-и битных счетчиков, два прохода, с инкрементом и декрементом, от 0 и до максимума, т.e. 255), меняется длительность импульсов При WGM = 5, практически тоже самое, НО, максимум равен НЕ 255, а числу в OCRnA, при этом не зависит, какое число сидит в OCRnB. НО, с помощью OCRnA мы можем менять частоту выходных импульсов, а спомощью OCRnB их ширину Частота прерываний от TOVF будет в первом случае равна частоте входных импульсов ТС, деленной на 510, во втором, как Вы уже говорили зависит от значения OCRnA, подробнее можете посмотреть в любимом  даташите Всё это я вам уже раз десять говорил разными словами, а ВЫ мне говорили, что так не бывает. Теперь вы повторяете мне мои слова. Зачем? Я вам вопросы по существу задал, а вы их замотали. Вопросы-то простые. 1) Откуда вы взяли, что фаза OCR0А будет меняться при переходе значения счетчика через ноль? Взгляните на график на рис.33. Где там меняется фаза выходного сигнала? 2) Где на временной шкале, по-вашему, будет происходить сравнение содержимого счётчика и OCR0А? 3) какова форма выходного сигнала на выходе ОС0А в режиме WGM=5? Не врубаюсь я вот в эти фразы defunct...если TCNT не начинает считать в обратную сторону при достижении OCR0A, тогда то что вы раньше говорили - насчет TOVF - чушь, т.к. частота следования TOVF будет неизменной. Так что определитесь ужСлова все знакомые, но ничегошеньки не понимаю, смысл какой-то мутный - ...если TCNT не начинает считать в обратную сторону при достижении OCR0AПочему не начинает? Начинает, читайте все мои посты. Зачем вы об этом вообще говорите? - тогда то что вы раньше говорили - насчет TOVF - чушьКакую чушь я раньше говорил о TOVF? Что вы тут плетёте? - т.к. частота следования TOVF будет неизменнойБудет неизменной, 125 Гц для оговоренных выше условий, подтверждаю. Ну и что? Что вы всем этим хотите сказать? - Так что определитесь ужС чем определиться? Постарайтесь яснее выразить свои мысли.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Jul 15 2007, 22:04
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(=GM= @ Jul 15 2007, 19:43)  Перечитал два раза. Смысл вашего поста всё равно мутный, ничего личного. Ок, не мутно не я уже говорил ЧИМ+ШИМ получается на выводе OC0B WGM2..0 = 5: OCR0A - задает частоту OCR0B - ширину импульса. OCR0B должен быть строго меньше OCR0A. и вы тоже: Цитата с выхода блока В можно получить ИЛИ ЧИМ, с заданной длительностью импульса (регистр OCR0B=const) и переменным периодом (регистр OCR0A=var) ИЛИ ШИМ, с переменной скважностью (регистр OCR0B=var) и постоянным периодом (регистр OCR0A=const). но Цитата А вы начали говорить об использовании блока В, непонятно кстати по какой причине и не указывая этого. Дело в том, что WGM2..0 = 5 в отрыве от блока B нет смысла рассматривать.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|