-
-
Neuer Benutzer
Öfters hier
Moin!
Folgendes habe ich bis jetzt erarbeitet aber es klappt immer noch nicht!
.....
int drehzahl_mot(void)
{
int n = 0;
OCR1AH = 0x30; //TIMER1:COMPARE REGISTER HIGH-BIT
OCR1AL = 0xd4; //TIMER1:COMPARE REGISTER LOW-BIT (COMPARE-WERT 12500 = 0,8 sec. bei 16 Mhz
TCCR1A = 0x00; //TIMER1:CONTROL REGISTER, Output-Pin nicht aktiv, Normaler Timerbetrieb
TCCR1B = 0x05; //TIMER1:Prescale 1024,START
TCCR0 = 0x07; //Counter0, zählen
do
{
n = TCNT0;
}
while(TIFR & (1<<OCF1A)); //!!!Und das funktioniert nicht ich weiß nicht wie ich das Register /speziell das FLAG- Bit abfrage???
TCCR1B = 0x00; //TIMER1:STOP
TCCR0 = 0x00; //TIMER0:STOP
TCNT1H = 0x00;
TCNT1L = 0x00;
TCNT0 = 0x00;
TIFR |= (1<<OCF1A); //Flag löschen
return n;
}
Ich habe mir echt Mühe gegeben und ich hoffe es sieht nicht wieder so gestückelt aus!Habe es auch mit ISR probiert in den verschiedensten Versionen aber ich möchte es erstmal ohne machen damit es nicht zu kompliziert wird!
Nochmal die Funktion:
ATMEGA 32 16PU/16Mhz--> An PortB0 Rechteckimpulse zählen (TIMER0) für ca. 0.8 sec. (TIMER1)
Vielen Dank nochmal für eure Hilfe wollte euch wirklich nicht verärgern!!!
Viele Grüße Stephan
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen