Зачем 16-разрядному Таймеру1 целых два 16-разрядных OCR'a???
- Сообщения: 27
- Зарегистрирован: Чт июл 01, 2010 19:48:52
Здравствуйте!Подскажите, зачем в AVR'ках типа Atmega8535 в TIMER1 два 16-разрядных регистра OCR(OCR1A и OCR1B,к которым даже можно обратиться как к OCR1AН,OCR1AL и соответственно OCR1BН,OCR1BL)?Одновременно они по моему разумению не работают ни в СТС (счетчик сбросится по достижении одного из порогов, до второго не досчитает), ни в PWM'ах. Канал А у меня правильно работает и в CTC и в PWM, а вот канал B никуда пока приспособить не удалось) Может кто-то уже сталкивался с такой проблемой и решил ее?
- Реклама
они работают независимо в режимах ШИМ, например, откуда вы взяли, что не работают - не понятно...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
kotbimigot, попробуйте воспользоваться даташитом )
Это два разных "условия срабатывания", как уже сказали, в шим используется или для других целей...
Да и прерывание можно сделать по обоим условиям.
Так и не надо CTC, в обычном режиме не будет он сбрасывать ничего.
Это два разных "условия срабатывания", как уже сказали, в шим используется или для других целей...
Да и прерывание можно сделать по обоим условиям.
Так и не надо CTC, в обычном режиме не будет он сбрасывать ничего.
- Сообщения: 27
- Зарегистрирован: Чт июл 01, 2010 19:48:52
В обычном - Normal - понятно,что не будет работать,там OCR не используется. А в ШИМе при OCR1A<OCR1B таймер начинает считать,потом присходит прерывание по сравнению например с OCR1A,таймер сбрасывается,начинает считать снова,происходит прерывание по сравнению с OCR1B? такая логика?
- Сообщения: 27
- Зарегистрирован: Чт июл 01, 2010 19:48:52
это у меня пока не работают. но я так понимаю,что раз есть они у таймера, то не зря,потому и спрашиваю, просто до меня пока не дошлоARV писал(а):они работают независимо в режимах ШИМ, например, откуда вы взяли, что не работают - не понятно...
- Реклама
kotbimigot писал(а):В обычном - Normal - понятно,что не будет работать,там OCR не используется.
А конкретно - страничку прерываний...
А потом про PWM...
Не путайте тёплое с мягким.А в ШИМе при OCR1A<OCR1B таймер начинает считать,потом присходит прерывание по сравнению например с OCR1A
В ШИМе нет вообще никаких прерываний, в режиме ШИМа таймер управляет ножками OC1A и OC1B используя значения регистров OCR1A и OCR1B соответственно. В этом случае таймер конфигурируется именно в режим работы ШИМ.
В случае с прерываниями, таймер устанавливается в режим "Normal", а потом выставляет регистр TIMSK, который "говорит" при каких событиях будут прерывания, при переполнении, при совпадении с OCR1x ит.д.
Нет. Таймер не сбрасывается, прерывание само не происходит (можно вызвать, но не нужно). Состояние выводов OC1A/OC1B меняется, имеем два PWM сигнала.kotbimigot писал(а):в ШИМе при OCR1A<OCR1B таймер начинает считать,потом присходит прерывание по сравнению например с OCR1A,таймер сбрасывается,начинает считать снова,происходит прерывание по сравнению с OCR1B? такая логика?
Можно использовать для обмена с устройствами 1-wire
ОСR1А в режиме CTC задает период бита, в ОСR1В пишется длительность импульса для "0" или "1" при записи, либо OCR1A/2 при чтении. Дальше все строится на обработке прерыаний.
ОСR1А в режиме CTC задает период бита, в ОСR1В пишется длительность импульса для "0" или "1" при записи, либо OCR1A/2 при чтении. Дальше все строится на обработке прерыаний.


