|
|
  |
Изучаю архитектуру процессора AVR, Вопросы чайника о принципах работы процессора. |
|
|
|
Mar 22 2010, 08:08
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Разбираюсь с ШИМ у Меги88. Настроил режим "Fast PWM" на таймере 0, по аналогии сделал и на таймере 2, но на выводе "ОС2B" частота выше в два раза, чем на "ОС0B" и "ОС0A"  На "ОС2A" совсем нет ШИМ, уж не знаю с чем это связано, возможно с тем что этот вывод (PB3) имеет альтернативную функцию "MOSI"? Код void Timer0_Init(void) { TCCR0A |= (1<<COM0B0)|(1<<COM0B1)|(1<<COM0A0)|(1<<COM0A1)|(1<<WGM01)|(1<<WGM00); /*Инициализация таймера "0" в режим Fast PWM (non-inverting)*/ TCCR0B &= (1<<WGM02); TCCR0B |= (1<<CS02); TCCR2B &= ~((1<<CS00)|(1<<CS01)); TCNT0 = 0x00; OCR0A = 0x20; OCR0B = 0x20; }
void Timer2_Init(void) { TCCR2A |= (1<<COM2B0)|(1<<COM2B1)|(1<<COM2A0)|(1<<COM2A1)|(1<<WGM21)|(1<<WGM20); /*Инициализация таймера "2" в режим Fast PWM (non-inverting)*/ TCCR2B &= (1<<WGM22);
TCCR2B |= (1<<CS22); TCCR2B &= ~((1<<CS20)|(1<<CS21));
TCNT2 = 0x00; OCR2A = 0x20; OCR2B = 0x20; } Посмотрите всевидящим оком, в чем может быть причина? Еще я подметил что на 157й страничке даташита "ATmega48/88/168" ошибки в таблице 17-8 "Waveform Generation Mode Bit Description". Там, в шапке, биты странно названы, не так как в том месте где указывается их расположение в байте конфигурации. Ну или я что-то не так понял? Спасибо!
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
Mar 22 2010, 09:01
|
Участник
  
Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695

|
Цитата(Буратино @ Mar 22 2010, 16:08)  Код ... TCCR0B |= (1<<CS02); TCCR[color="#FF0000"]2[/color]B &= ~((1<<CS00)|(1<<CS01)); ... TCCR2B |= (1<<CS22); TCCR2B &= ~((1<<CS20)|(1<<CS21)); ...
|
|
|
|
|
Mar 28 2010, 07:58
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Цитата(smk @ Mar 28 2010, 10:40)  Скажите, а Вам удалось скачать и почитать книжки Евстифеева "Микроконтроллеры Mega..." ? Если нет, то почитайте, очень рекомендую. Да, удалось. Даже распечатал. Вопрос в другом, как теперь всем тем, что там написано воспользоваться!?  Вот у меня сл. ситуация. Я хочу сделать частотный привод для шпинделя на Меге88. Там есть особенности в схемотехнике ну если не вдаваться в подробности то необходимо получить три синусоиды сдвинутые по фаза на 120гр. и один медленный сигнал (герцы) но с высокой разрядностью. В книге Евстифеева решений таких проблем нет, именно поэтому я и советуюсь с знающими людьми. --- Вот немного подумал и пришла в голову мысль о том, чтобы сделать 4й сигнал программным ШИМом (ен же медленный) ,а таймер 1 приспособить для формирования первых трех сигналов (в смысле загружать в регистры PWM новые значения) Остается только вопрос с формированием временных задержек для "Делеев", вот думаю можно аль нет использовать для этого прерывания переполнения 0,2 таймеров в ШИМ режиме?
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|