реклама на сайте
подробности

 
 
> timer1 в AVR. Что я делаю не так?
-=Женек=-
сообщение Oct 18 2011, 18:03
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 559
Регистрация: 6-09-06
Пользователь №: 20 131



Господа, мне необходимо получить импульсф с фиксированным периодом - 20 мс и меняющейся скважностью - длительность от 0.8 до 2 мс.

Вот как я настраиваю таймер1
Код
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 16000,000 kHz
// Mode: Fast PWM top=OCR1A
// OC1A output: Toggle
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x43;
TCCR1B=0x19;
TCNT1H=0xFF;
TCNT1L=0xFF;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x3F;
OCR1AL=0xFF;
OCR1BH=0x00;
OCR1BL=0x00;


Что я только не делаю с OCR1A - меняется только частота, скважность всегда 50%.... Что я делаю не так? С TImer0 кстати все получается...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
Палыч
сообщение Oct 18 2011, 19:25
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(-=Женек=- @ Oct 18 2011, 22:03) *
Что я только не делаю с OCR1A - меняется только частота, скважность всегда 50%.... Что я делаю не так?


Ну, вот - очередная жертва "автоматической генерации кода"....
Режим изменения выходного сигнала с "Toggle" измените на "Clear OC1A on compare match, set ОC1A at BOTTOM".

Кстати, задавая вопрос, хорошо бы конкретный тип МК указывать...
Go to the top of the page
 
+Quote Post
-=Женек=-
сообщение Oct 18 2011, 19:43
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 559
Регистрация: 6-09-06
Пользователь №: 20 131



контроллер atmega32.
Генератор - CodeVision

Код
Clear OC1A on compare match, set ОC1A at BOTTOM

Нет там такого. Есть non-inverted и inverted
Режим самого таймера какой установить?

Вот оно чё:
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 18 2011, 19:46
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(-=Женек=- @ Oct 18 2011, 23:31) *
Генератор - CodeVision

"Большое зло" этот CodeVision... Приучает пользователей к тому, что в DS смотреть не нужно...

Цитата(-=Женек=- @ Oct 18 2011, 23:31) *
Нет там такого. Есть non-inverted и inverted
non-inverted

Цитата(-=Женек=- @ Oct 18 2011, 23:31) *
Режим самого таймера какой установить?
Fast PWM. Mode = 8, 10 или 14 (уж не знаю: как они в CodeVision называются)
Go to the top of the page
 
+Quote Post
-=Женек=-
сообщение Oct 18 2011, 20:02
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 559
Регистрация: 6-09-06
Пользователь №: 20 131



В CodeVision это называется Fast PWM top=0xFF Fast PWM top=0x1FF Fast PWM top=0x3FF соответственно.

Как в этом случае регулировать период? Он все время равен 0x3FF.

Интуитивно чувствую, что нужно "Phase & Freq corr. PWM top=OCRA1", но что-то как ни настраиваю - нет импульсов... Non-inverted включил..
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 18 2011, 20:09
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(-=Женек=- @ Oct 19 2011, 00:02) *
В CodeVision это называется Fast PWM top=0xFF Fast PWM top=0x1FF Fast PWM top=0x3FF соответственно.
Не-а... Это mode = 5, 6 и 7 соответственно... Вы бы, все-таки, в DS заглянули бы...


Цитата(-=Женек=- @ Oct 19 2011, 00:02) *
Интуитивно чувствую, что нужно "Phase & Freq corr. PWM top=OCRA1", но что-то как ни настраиваю - нет импульсов...
Интуюция Вас подводит. Наверное, в CodeVision это звучит как-то так: "...PWM... top=ICR..."
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 12:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01409 секунд с 7
ELECTRONIX ©2004-2016