Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Изучаю архитектуру процессора AVR
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Буратино
Разбираюсь с ШИМ у Меги88. Настроил режим "Fast PWM" на таймере 0, по аналогии сделал и на таймере 2, но

на выводе "ОС2B" частота выше в два раза, чем на "ОС0B" и "ОС0A" sad.gif
На "ОС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". Там, в шапке, биты странно названы, не так как в том месте где указывается их расположение в байте конфигурации. Ну или я что-то не так понял?

Спасибо!
ae_
Цитата(Буратино @ 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));
...
Буратино
ВСЕ, спасибо!
Вот я дуб..и правда по разному прескалеры конфигурируются, и у меня SPI аппаратный задействован ,поэтому и нет ШИМа на MOSI rolleyes.gif
Буратино
Рисую схему устройства на базе микроконтроллера AVR ATMega88. На борту имеется три таймера:
два восьмибитных и один 16ти битный. Необходимо сформировать 4 аналоговых сигнала. Для этого я буду использовать канал А и В таймера 0, и канал А таймера 2 (0 и 2 восьмибитные). Четвертый сигнал сформирую на таймере 1. (тоже хочу использовать его аппаратный PWM, для 4го сигнала нужна высокая разрядность)
Вопрос: как можно использовать канал В таймера 2? Что он "умеет", если его прескалер (а он я так понял один на два канала в таймере) будет занят шимом для А канала?
Получается, что мне не хватает одного таймера для формирования временных "тиков" чтобы я мог управлять всем этим богатством.
smk
Скажите, а Вам удалось скачать и почитать книжки Евстифеева "Микроконтроллеры Mega..." ? Если нет, то почитайте, очень рекомендую.
Буратино
Цитата(smk @ Mar 28 2010, 10:40) *
Скажите, а Вам удалось скачать и почитать книжки Евстифеева "Микроконтроллеры Mega..." ? Если нет, то почитайте, очень рекомендую.


Да, удалось. Даже распечатал.
Вопрос в другом, как теперь всем тем, что там написано воспользоваться!? smile.gif

Вот у меня сл. ситуация. Я хочу сделать частотный привод для шпинделя на Меге88. Там есть особенности в схемотехнике ну если не вдаваться в подробности то необходимо получить три синусоиды сдвинутые по фаза на 120гр. и один медленный сигнал (герцы) но с высокой разрядностью.
В книге Евстифеева решений таких проблем нет, именно поэтому я и советуюсь с знающими людьми.

---
Вот немного подумал и пришла в голову мысль о том, чтобы сделать 4й сигнал программным ШИМом (ен же медленный) ,а таймер 1 приспособить для формирования первых трех сигналов (в смысле загружать в регистры PWM новые значения) Остается только вопрос с формированием временных задержек для "Делеев", вот думаю можно аль нет использовать для этого прерывания переполнения 0,2 таймеров в ШИМ режиме?
smk
Вшу звдвчу решать не приходилось, но есть примеры от Атмела, в которых управление двигателем точно есть. Посмотрите "Тамперт В. Измерение, управление и регулирование...". Возможно поможет.
Буратино
Цитата(smk @ Mar 28 2010, 11:21) *
Вшу звдвчу решать не приходилось, но есть примеры от Атмела, в которых управление двигателем точно есть. Посмотрите "Тамперт В. Измерение, управление и регулирование...". Возможно поможет.


Да, спасибо! smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.