Gast
#33007
Hi,
ich beschäftige mich erst seit kurzem mit Mikrocontrollern. Ich habe mir
das Experementierboard von microkontroller.com gebaut. Ich habe ein
wenig mit den PIN A & B rumgespielt.
Nun wollte ich mir eine Uhr basteln, habe meine Vorhaben jetzt erst
einmal auf eine Stopuhr beschränkt.Ich arbeite mit dem AT80S8535.
Kann sich jemand vielleicht hier einmal einen Blick über den Code werfen
und mir grob sagen ob meine Denkweise richtig ist?
// 8BIT Timer, als Zähler für eine Stopuhr.
// CPU 8.000.000 Operationen /sec
// Timertakt 8.000.000 : 8 = 1.000.000 (Runterbrechen des CPU
Takt's)
// 1.000.000 : 250 = 4.000 Operationen /sec (Abfrage des Registers
alle 250 Operationen)
// 4.000 Operationen /sec werden mit der WHILE Schleife gezählt und
setzt danach sec++
void schalter2() // wir basteln eine stopuhr
{
char text[16];
int i=0,
sec=0;
TCCR0 = 0x02; // CPU TEILUNG DURCH ACHT : TIMEREINSTELLUNG
8BIT
while ( (PINA & 0xF8) != 0x08 ) // STOP mit einer Taste.
{
if ( TCNT0 == 0xFA ) // TimerRegister auf 250?
{
TCNT0=0x00; // und wieder zurück auf null.
while( i != 4000) // Die restlichen 4000/s Takte
Runterbrechen
{
i++;
if ( i == 4000 ) // sind die restl. 4000 erreicht,
1sec vergangen.
{
sec++;
i=0;
}
} // END WHILE
} // END IF!
sprintf(text,"%i", sec); // Umwandeln int to char
lcd_gotoxy(0,1);
lcd_puts(text); // Ausgabe LCD
} // END WHILE!
// PORTB = 0x40; LED ANKNIPSEN
}