21.08.2012 Aufrufe

Computertechnik mit Mikrocontrollern

Computertechnik mit Mikrocontrollern

Computertechnik mit Mikrocontrollern

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.

KAPITEL 13. AUFBAU DES SYSTEMS 194<br />

buzzer_init();<br />

putbyte_init();<br />

tas1_init(); tas2_init(); tas3_init(); tas4_init();<br />

display();<br />

sei();<br />

sbi (MCUCR,SE); // enable sleep, sleepmode is default idle<br />

for (;;) {<br />

asm ("sleep");<br />

if (taster(1)) {psindex=psindex>=5?1:psindex+1;<br />

TCCR0B = psindex; display();}<br />

if (taster(2)) {tim0cnt=tim0cnt>156?tim0cnt%100:tim0cnt+100;<br />

display();}<br />

if (taster(3)) {tim0cnt=tim0cnt%100>=90?tim0cnt-90:tim0cnt+10;<br />

display();}<br />

if (taster(4)) {tim0cnt=tim0cnt%10>=9?tim0cnt-9:tim0cnt+1;<br />

display();}<br />

}<br />

}<br />

Das Programm gibt auf der Ausgabe die aktuelle Einstellung<br />

des timer0 aus:<br />

7372800Hz/2/<br />

1024/144=25Hz<br />

Der erste Wert ist die Frequenz des Systemtakts. Die Division<br />

durch 2 ist notwendig, da das Programm bei jedem Ablauf des<br />

Timers den Ausgabeport umschaltet. Für eine ganze Schwingung<br />

sind also zwei Timer-Interrupts notwendig. Die Division<br />

durch 1024 vertritt die Einstellung des Vorteilers, im Datenblatt<br />

wird dieser Prescaler genannt. Der letzte Teiler ist der<br />

Wert des Counters. Prescaler und Counter können <strong>mit</strong> den<br />

Tasten verändert werden. So können alle Einstellungen des<br />

timer0 gehört, gesehen und berechnet werden.<br />

Wird die Einstellung so gewählt, dass das Produkt von Prescaler<br />

und Counter kleiner als 22 wird, stürzt das Programm<br />

ab. Warum?

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!