Eine Abweichung von 0,0055% ist doch erstmal nicht so schlecht. Aber 8 min Pro Tag scheinen mir auch recht viel.
Was ist das für ein Quarz? Du meinst aber nicht den internen RC?!
Eine Abweichung von 0,0055% ist doch erstmal nicht so schlecht. Aber 8 min Pro Tag scheinen mir auch recht viel.
Was ist das für ein Quarz? Du meinst aber nicht den internen RC?!
Nein, ist ein "richtiger" Quarz im HC49-Gehäuse. Ich müsste mal ausrechnen, ob die ISR zu lang ist.. Aber das sollte doch eigentlich passen, bei 100 Mikrosekunden.
Deine Signatur ist zu lang.
Nö, für einen alle-100µs-Interrupt muss TOP 149 sein. Du willst 150 Zählerschritte haben, also von 0 bis 149.Als Controller benutze ich einen Atmega168 mit 12MHZ-Quarz. Ich habe also Timer0 mit einem Prescaler von 8 versehen und benutze den CTC-Modus mit einem TOP-Wert von 150. Dadurch sollte rein rechnerisch alle 100 Mikrosekunden ein Interrupt ausgelöst werden.
MfG
Stefan
Wie misst du denn die Ventilöffnungszeit? Mit einem Timer mit Input Capture solltest du die Zeit imho am genauesten messen können. Vorausgesetzt, das Signal kommt von aussen.
Mit dem Input Capture wollte ich das zuerst auch machen, dieser spricht aber nur auf eine steigende Flanke an. Da ich aber nicht die Frequenz sondern die Pulslänge brauche, fällt das leider raus..
Gemessen wird das dann über einen externen Interrupt, je nach Pegel wird ein Counter hochgezählt und der gemessene Wert auf einen 64 Bit Integer addiert (reicht für ein Jahrhundert Dauerbetrieb..). In der Hauptschleife kann ich mir dann einen entsprechenden Literwert zusammenrechnen.
Deine Signatur ist zu lang.
Du kannst programmieren, ob er auf fallende, oder steigende Flanke reagieren soll. TCCR1B Bit 6 0=> fallende Flanke, 1=> steigende Flanke.
Lesezeichen