02.05.2013 Aufrufe

beginner_de

beginner_de

beginner_de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Avr-Asm-Tutorial S. 60<br />

Jetzt braucht je<strong>de</strong>r Schleifendurchlauf (bis auf <strong>de</strong>n letzten) acht Takte und es gelten folgen<strong>de</strong> Formeln:<br />

nc = 1 + 8*(c1 - 1) + 7 o<strong>de</strong>r nc = 8 * c1 Das verlängert die 8-Bit-Registerschleife immerhin<br />

auf 256 * 8 = 2048 Takte o<strong>de</strong>r - bei 1,2 MHz - auf ganze 1,7 ms.<br />

10.2 Das Summprogramm<br />

.inclu<strong>de</strong> "tn13<strong>de</strong>f.inc" ; für einen ATtiny13<br />

.equ c1 = 0 ; Bestimmt die Tonhöhe<br />

sbi DDRB,0 ; Portbit ist Ausgang<br />

Loop:<br />

sbi PORTB,0 ; Portbit auf high<br />

ldi R16,c1<br />

Loop1:<br />

nop<br />

nop<br />

nop<br />

nop<br />

nop<br />

<strong>de</strong>c R16<br />

brne Loop1<br />

cbi PORTB,0 ; Portbit auf low<br />

ldi R16,c1<br />

Loop2:<br />

nop<br />

nop<br />

nop<br />

nop<br />

nop<br />

<strong>de</strong>c R16<br />

brne Loop2<br />

rjmp Loop<br />

Gut brumm!<br />

10.3 16-Bit-Schleife<br />

Immer noch nicht für die Blink-LED geeignet, aber immerhin für ein<br />

angenehmes Brummen mit 586 Hz im Lautsprecher. Schließen Sie<br />

einen Lautsprecher an Port B, Bit 0, an, fairerweise über einen Elko<br />

von einigen µF, und lassen Sie das folgen<strong>de</strong> Programm auf <strong>de</strong>n ATtiny13<br />

los:<br />

Hier wird eine 16-Bit-Zeitschleife mit einem Doppelregister erklärt. Mit dieser können Verzögerungen<br />

um ca. eine halbe Sekun<strong>de</strong> realisiert wer<strong>de</strong>n. Damit wird eine Blinkschaltung mit einer LED<br />

realisiert.<br />

Co<strong>de</strong> einer 16-Bit-Schleife<br />

Eine Zeitschleife mit einem 16-Bit-Doppelregister sieht in Assembler folgen<strong>de</strong>rmaßen aus:<br />

.equ c1 = 50000 ; Anzahl Durchläufe <strong>de</strong>r Schleife<br />

ldi R25,HIGH(c1) ; La<strong>de</strong> MSB-Register mit Schleifenwert<br />

ldi R24,LOW(c1) ; La<strong>de</strong> LSB-Register mit Schleifenwert

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!