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

#define tas2_PB PC4<br />

#define tas3_DDR DDRC<br />

#define tas3_PORT PORTC<br />

#define tas3_PIN PINC<br />

#define tas3_PB PC3<br />

#define tas4_DDR DDRC<br />

#define tas4_PORT PORTC<br />

#define tas4_PIN PINC<br />

#define tas4_PB PC2<br />

#define taster_init() cbi (tas2_DDR,tas2_PB);\<br />

sbi (tas2_PORT,tas2_PB);\<br />

cbi (tas3_DDR,tas3_PB);\<br />

sbi (tas3_PORT,tas3_PB);\<br />

cbi (tas4_DDR,tas4_PB);\<br />

sbi (tas4_PORT,tas4_PB);<br />

void taster ()<br />

{<br />

if ( bit_is_clear(tas4_PIN, tas4_PB) ) uhr.second = uhr.nanosec = 0;;<br />

if ( bit_is_clear(tas3_PIN, tas3_PB) && ! uhr.nanosec ) uhr.minute++;<br />

if ( bit_is_clear(tas2_PIN, tas2_PB) && ! uhr.nanosec ) uhr.hour++;<br />

}<br />

#define Displen 16<br />

char Disp0[Displen+3] = { "\f** Clock **\n" };<br />

char Disp [Displen+2] = { "\r HH:MM:SS " };<br />

// 01234567890123456 78<br />

void displa (unsigned char i1, unsigned char i2)<br />

{Disp[i1++]=i2/10+’0’; Disp[i1]=i2%10+’0’;}<br />

void display()<br />

{<br />

static unsigned char lastval;<br />

if (uhr.nanosec < lastval ) // saves 1 mA<br />

{<br />

displa (5,uhr.hour);<br />

displa (8,uhr.minute);<br />

displa (11,uhr.second);<br />

putstring (Disp);<br />

}<br />

lastval = uhr.nanosec;<br />

}<br />

ISR ( SIG_OVERFLOW0 ) // timer0<br />

{<br />

sei();<br />

TCNT0=CLOCKCNT0;<br />

quarzuhr ();<br />

taster ();<br />

display ();<br />

}

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!