Hey, brauche einmal jmd der mir vielleicht einen Denkfehler abnimmt... Ich hab das obige Programm über's STK500 mit Port D an die Switches gehangen und geb die anzahl der "fuel_ticks" jede sekunde über ein LCD aus um zu sehen ob das überhaupt soweit funktioniert... (Die ausgabe efolgt im hautpprogamm...) Die ISR's für Int0 und Int2 hab ich weggelassen da sie nicht zum Problem beitragen. Mein problem ist das z.b. wenn ich den Knopf die ganze Zeit gedrückt halte (also auf Masse ziehe wodurch der Zähler ununterbrochen zählen sollte) der "fuel_ticks" z.t. niedriger ist als wenn ich den knopf mehrmals kurz drücke und zum Teil auch scheinbar zufällig hohe/niedrige Werte annimmt (bei kurzem Drücken). Wie kann das sein? Eigentlich sollte der Wert am höchsten sein wenn der Knopf durchgehen gedrückt wird.... Ein überlauf des als "unsigned short" deklarierten Zählers schließe ich eigentlich aus da der Wert in der Timer_Overflow Interrupt routine nur mit einer Frequenz von 31,150 kHz inkrementiert wird, (1/(8.000.000 / 256)) und somit die 2^16 - 1 (65535) nicht auch nur zur hälfte erreichen kann. Außerdem läuft die Routine ja nur während eines "Pulses", also während der Pin auf Masse gezogen wurde. Somit müssten sich die größten Werte einstellen wenn der Knopf ununterbrochen gedrückt wird da die Routine in desem Fall durchlaufen müsste, oder hab ich was falsch gemacht? Denkfehler? Rechenfehler? Bitte um Hilfe! Danke im vorraus, Dennis Fisch
"fuel_ticks * 1000" Und Du meinst wirklich, daß da nichts überläuft?
Oh verdammt... mist, ja ja auf alles achtet man und dann sowas, sorry für meinen sinnfreien beitrag :(
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.