Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите с ШИМ на ATmega48
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
sergeus
Мужики, делаю вывод wav звука, бьюсь несколько часов, не могу найти баг в исходнике. Почему-то не работает ШИМ на ATmega48. Частота тактирования - внутр. осциллятор 8МГц. Может есть какая новая фича, до этого без проблем работал с ШИМ на 8й меге. Прерывание Таймер2 работает с частотой - 8кГц, - такова частота дискретизации WAV файла. ШИМ, за него отвечает таймер1, работает на частоте СК/1 - частота выходного шим сигнала - 31кГц. На выходе ножки OC1A стоит НЧ цепочка-фильтр. На ножке ничего нет - ни малейшего дрыганья. При симуляции в AVR Studio - есть сигнал на ножке PB1, а в реалии на железе нет, в чем дело?


Вот сам код на WinAVR:

CODE
...

ISR(TIMER2_OVF_vect){

OCR1A = music[num_byte];
num_byte++;

if (num_byte>959) num_byte=1; // stop timer1

TCNT2 = 224; // bitrate - 8 kHz

}

...

int main(void)
{

DDRD |=(1<<4)|(1<<3)|(1<<1)|(1<<6)|(1<<7); // LED OUT
PORTD |=(1<<6)|(1<<3); // LOW SEGMENT

DDRC = 0xFF; // all outputs
PORTC = 0xFF;

DDRB |=(1<<1); //OC1A - output


TCCR2B |=(0<<CS22)|(1<<CS21)|(1<<CS20); // CK/32 - 8kHz
TIMSK2 |=(1<<TOIE2); // interrrupt OVF 8kHz
TCNT2 = 224; // bitrate - 8 kHz


TCCR1A |=(1<<COM1A1)|(0<<COM1A0)|(1<<WGM10); //---___, 8 bit fast PWM
TCCR1B |=(1<<WGM12)|(0<<CS12)|(0<<CS11)|(1<<CS10); //CK/1 - PWM - 31kHz

OCR1A=0x66;

sei();

while(1);
}
Палыч
Цитата(sergeus @ Mar 19 2009, 23:21) *
... в чем дело?
Наверное, нужно проверить правильность установки Fuses.
777777
Цитата(sergeus @ Mar 19 2009, 23:21) *
Мужики, делаю вывод wav звука,

С помощю ШИМ? Ни фига себе, а какой диапазон звука? При 8 Мгц частота ШИМ будет около 8 кГц, хреновенькое подавление его можно беспечить при частоте среза на порядок меньше, т.е. 800 Гц. Это что ж за звук можно передать на такой частоте?
_Pasha
Цитата(777777 @ Mar 20 2009, 10:07) *
Это что ж за звук можно передать на такой частоте?


Нижний ряд DTMF smile.gif
777777
Цитата(_Pasha @ Mar 20 2009, 10:18) *
Нижний ряд DTMF smile.gif

??? Это меня послали или как?
_Pasha
Цитата(777777 @ Mar 20 2009, 10:34) *
??? Это меня послали или как?

Почему сразу послали? Наоборот, +1!!! smile.gif
sergeus
Народ, ШИМ на 8кГц я выбрал для отладки, как заработает установлю тактирование МК на 16MHz и сделаю частоту дискретизации 16кГц или еще больше.
ogurets
вот скапчуренный образчик звука Roman Black'овского PICSound'а (www.romanblack.com) с тиньки если вдруг.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.