Спасибо за внимание и информацию! Подключить пищалку на две ноги МК и попищать на разной высоте получилось!
Теперь хочется не заниматься генерацией частоты нот и воспроизведением мелодии в основной программе. Почитал тему про "Рюшечки", решил сделать через ШИМ, как у
yak-40, но столкнулся с рядом проблем:
Решил повесить всё на третий, двухбайтовый, счётчик-таймер (у меня mega128), сделал 10-битный быстрый ШИМ, вот так инициализирую:
- Код: Выделить всё • Развернуть
//Вывод PE3 переключается в режим OC3A и
//сбрасывается при совпадении таймера со счетчиком,
//WGM3: 0111 = 10-разр. быстрая ШИМ
//Таймер остановлен
TCCR3A = 0b10000011;
TCCR3B = 0b00001000;
//Сброс счетчика таймера
TCNT1H = 0x00;
TCNT1L = 0x00;
//Запуск таймера с предделителем 8
TCCR3B |= 0b10;
//Установка регистра сравнения (число от 0 до 1023)
OCR3AH = (char)(nPWM>>8);
OCR3AL = (char)nPWM;
На ноге PE3 висит пищалка, в зависимости от величины
nPWM получается звук разной интенсивности, но одинаковой частоты.
В общем, почему так происходит мне теперь понятно:
- HearPWM1.jpg (11.24 КиБ) Просмотров: 11759
Подскажите, плиз, какой режим работы счетчика-таймера мне нужен, чтобы генерировать разные частоты?
СТС? - а как тогда добиться, чтобы сигнал половину периода шел, а половину нет?
P.S. Proteus в своём осциллографе рисует удивительную динамику: как будто сигнал сначала колеблется от 0 до 5в. а потом плавно сползает вниз. Это глюки осциллографа Proteus'a или я чего-то накрутил и получаю отрицательное напряжение? о_О