Würde auch kein bisschen schaden wenn du den aktuellen Code mal posten würdest.
Gruß Matthias
Würde auch kein bisschen schaden wenn du den aktuellen Code mal posten würdest.
Gruß Matthias
Nun ja, dann bitte:
Die Frage dann nochmal......wie sage ich dem Timer mit einem Taster: Jetzt starte und jetzt stoppe....und das Ganze Interrupt gesteuert, damit er direkt reagiert??volatile int tc;
char hr=00, min=0, sec=0;
char str[5];
ISR(TIMER1_OVF_vect)
{ TCNT1 = 34286; tc++;
}
int main(void)
{ TIMSK |= _BV(TOIE1); // aktivate overflowinterrupts of timer1
TCCR1B |= (1<<CS12); // prescaler = 256
TCNT1 = 0xFFFF; // FFFF for start
sei();
while(1)
{
sec=tc;
if (sec==60)
{ tc=0; sec=0; min++;
if (min==60) {min=0; hr++; if (hr==24) hr=0;}
sprintf(str,"%02d",min); lcd_set_cursor (1, 7); lcd_write (str);
sprintf(str,"%02d",hr); lcd_set_cursor (1, 4); lcd_write (str);
}
sprintf(str,"%02d",sec); lcd_set_cursor (1, 10); lcd_write (str);
while(sec == tc);
}
return(0);
}
Und nun erzählst du bitte wo du der Meinung bist einen Taster auszulesen. Davon ist in deinem Code nämlich nichts zu finden. Zum Thema Tasterauslesen gibt es 2 Möglichkeiten:
1. Gepollt:
2. Interrupt basiert: (Ich skizziere nur kurz das Vorgehen)Code://Zuerst: Pullups auf High und Pin auf Eingang setzen if(!(PINX & (1<<PXX))) { _delay_ms(100); //Zum Entprellen if(!(PINX & (1<<PXX))) { //Pin wurde gedrückt } }
2.1 Man hängt den Taster an einen der Interrupt Pins (INT0 oder INT1)
2.2 Man Programmiert den Interrupt handler für INT0 oder INT1
2.3 Man Programmiert die Einstellungsregister für INT0 oder INT1
Zum Timer:
Der Timer startet bzw. stopt wenn man das TCNT1 Register Programmiert.
Ja so oder
Code:if (bit_is_clear()1<<PXX) { "Mach Was" }Das heißt ich sage ihm, dass er auf eine steigende Flanke reagieren soll???2.2 Man Programmiert den Interrupt handler für INT0 oder INT1
Und wie macht man das???2.3 Man Programmiert die Einstellungsregister für INT0 oder INT1
Wie genau.....???Der Timer startet bzw. stopt wenn man das TCNT1 Register Programmiert
Man liest die Beschreibung der Register im Datenblatt des Atmega 8.
Hier wird dir keiner jedes Register vorkauen, da gehört schon etwas Eigeninitiative dazu.
Gruß Matthias
Oder schaut auf mikrocontroller.net im avr-gcc tutorial nach.
Ich danke euch für eure Initiative, von Hilfe kann jedoch nicht die Rede sein.
Sobald es ein wenig komplizierter wird, verweist jeder auf die "Eigeninitiative" und Forumsbeiträge. Das ist schon witzig...oder traurig???
Lesezeichen