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 193<br />

#include <br />

// parameter for Timer0<br />

unsigned short prescaler[6]={ 0,1,8,64,256,1024 };<br />

unsigned char psindex = 5;<br />

unsigned char tim0cnt = 144; // => 25 Hz<br />

#include "mainboard.h"<br />

#include "putbyte_disp.c"<br />

void displa (unsigned long i2)<br />

{<br />

if (i2>=10) displa (i2/10);<br />

putbyte (i2%10+’0’);<br />

}<br />

void display()<br />

{<br />

putbyte (’\f’);<br />

displa (Clock);<br />

putbyte (’H’); putbyte (’z’);<br />

putbyte (’/’); putbyte (’2’); putbyte (’/’);<br />

putbyte (’\r’); putbyte (’\n’);<br />

displa (prescaler[psindex]);<br />

putbyte (’/’);<br />

displa (tim0cnt);<br />

putbyte (’=’);<br />

displa (Clock/2/prescaler[psindex]/tim0cnt);<br />

putbyte (’H’); putbyte (’z’);<br />

}<br />

unsigned char taster (unsigned char n)<br />

{<br />

static unsigned char state [4];<br />

switch (n) {<br />

case 1: if(!state[0] && bit_is_clear(tas1_PIN,tas1_PB)) return state[0]=1;<br />

else if (bit_is_set(tas1_PIN,tas1_PB)) state[0]=0; return 0;<br />

case 2: if(!state[1] && bit_is_clear(tas2_PIN,tas2_PB)) return state[1]=1;<br />

else if (bit_is_set(tas2_PIN,tas2_PB)) state[1]=0; return 0;<br />

case 3: if(!state[2] && bit_is_clear(tas3_PIN,tas3_PB)) return state[2]=1;<br />

else if (bit_is_set(tas3_PIN,tas3_PB)) state[2]=0; return 0;<br />

case 4: if(!state[3] && bit_is_clear(tas4_PIN,tas4_PB)) return state[3]=1;<br />

else if (bit_is_set(tas4_PIN,tas4_PB)) state[3]=0; return 0;<br />

}<br />

}<br />

ISR ( SIG_OVERFLOW0 ) // timer0<br />

{<br />

static unsigned char buzzer;<br />

sei();<br />

TCNT0 = ~tim0cnt;<br />

if (buzzer) {sbi(buzzer_PORT,buzzer_PB);buzzer=0;}<br />

else {cbi(buzzer_PORT,buzzer_PB);buzzer=1;}<br />

}<br />

main ()<br />

{<br />

TCCR0B = psindex;<br />

TCNT0 = ~tim0cnt;<br />

sbi (TIMSK0,TOIE0);

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!