; **************************************************************
; * Ein Lautprecher macht Toene                                *
; * (C)2005 by avr-asm-tutorial.net                            *
; **************************************************************
;
.INCLUDE "tn13def.inc"
;
; Schaltbild:
;                   ATMEL ATtiny13
;                     ___   ____
;            ___    1/   |_|    |8
;+5 Volt O--|___|----|Res    Vcc|----O + 5 Volt
;                    |          |
;                    |PB3    PB2|  ___
;                    |          |6 \_/ 
;                    |PB4    PB1|--|_|--O + 5 Volt
;                   4|          |  LSP
;        0 Volt O----|Gnd    PB0|
;                    |__________|
;
; Register definitions
;
.DEF rmp = R16 ; Multipurpose register
;
; Programmbeginn
;
;
; PB1=OC0B als Ausgang setzen
;
	sbi DDRB,1
	sbi DDRB,0
;
; 8-Bit-Timer mit 1,2 MHz Prozessortakt mit Vorteiler durch 8
; 1,2 MHz / 8 = 150 kHz, / 75 = 2000 Hz, /2 = 1000 Hz
;
	ldi rmp,75 ; Setze Compare A auf 147 (Ende Zaehler)
	out OCR0A,rmp
	ldi rmp,38 ; Setze Compare B auf halben Timer-Wert
	out OCR0B,rmp
	ldi rmp,0b00010010 ; CTC, toggle Ausgang B bei Compare Match
	out TCCR0A,rmp
	ldi rmp,0b00000010 ; Vorteiler durch 8, Timer starten
	out TCCR0B,rmp
	ldi rmp,0b00100000 ; SLEEP Modus ermoeglichen
	out MCUCR,rmp
	sleep ; Prozessor schlafen legen
; 
; End of source code
;
