Следующий музыкальный автомат генерирует звук выполняя в цикле декремент счетного регистра (общего назначения) программно. Длительностью нот в этом автомате управляет сторожевой таймер watchdog.

В одном из режимов работы сторожевого таймера (Watchdog) ATtiny13 по истечении времени ожидания возникает прерывание 8 "Тайм-аут сторожевого таймера". Это прерывание можно использовать, например, для ограничения времени выполнения циклического участка программы.

Таймер/счетчик ATtiny13 может быть подключен к выводу PB0/OC0A микросхемы и работать в режиме генератора прямоугольных импульсов. При этом, смена уровня сигнала на выводе PB0/OC0A происходит по совпадению значений в регистре OCR0A и счетном регистре таймера/счетчика.

В этой статье мы приводим листинг программы для ATtiny13 на ассемблере. В этой программе таймер счетчик ATtiny13 используется для отсчета длительности полупериода звукового сигнала. Уровень сигнала на выводе PB3 микроконтроллера инвертируется по прерыванию таймера/счетчика.

В этой статье мы приводим пример прошивки для музыкального автомата на микроконтроллере AVR ATtiny13, схему подключения и таблицу частот музыкальных нот.

В подпрограмме генератор прямоугольных импульсов (меандра) вычислим частоту звукового сигнала на выводе микроконтроллера.

Консольная утилита simulavr - эмулятор микроконтроллеров Atmel AVR поддерживает программную эмуляцию микроконтроллеров серий at90s, atmega8, atmega16, atmega103, atmega128, at43usb.