Gast
#1670596
Hallo zusammen,
ich hoffe dass ihr mir helfen könnt
atmeg8 mit quarz 3686400Hz prescaler=1024 3686400hz/1024=3600
normalerweise soll das programm mir für 1s gz=3600
aus gz=ueberlauf*56535+tcnt1 ausgeben. dh vor einem ein überlauf
sogar.aber ich bekomme 1016.
ich bin....
//----------------------------------------------------------------------
--------------------------
#include "i2cUs.h"
#include "lcd.h"
#include <avr/interrupt.h>
#include <avr/delay.h>
char ch[20]="\0";
char cl[20]="\0";
volatile unsigned char ueberlauf=0;
ISR (TIMER1_OVF_vect)
{
ueberlauf++;
TCNT1 = 0;
}
int main(void)
TCNT1=0; // Timer Daten Register Timer1 High auf 0 Setzen
TCCR1B |= (1<<CS12)|(1<<CS10); //Timer Starten mit Vorteiler 1024
_delay_ms(1000);//zum testen der zeit
TCCR1B &= ~((1<<CS12)|(1<<CS11)|(1<<CS10));//stop des counters
TIMSK |= (1<<TOIE1);
sei();
lcdInit();
lcdGoto(1,4) ;
itoa(TCNT1,ch,10)
itoa(ueberlauf,cl,10);
lcdWriteText(ch);//aktuelle Zählerstand
lcdGoto(2,4) ;
lcdWriteText(cl);//anzahl von überlauf
return 0;
}
vielen dank im voraus.