Hallo zusammen, ich bin gerade dabei die debounce Routine von Peter Dannegger auf einen Xmega 256A3 zu portieren. Im Prinzip funktioniert es auch schon. Also die Led's toggeln bei Tastendruck. Problem ist nur das noch etwas mit den Zeiten nicht stimmt. Bei der get_key_press funktion dauerts ca 0,5 Sekunden und bei get_key_long dauert es 5,5 Sekunden. Ich denke mal es liegt an der Preload Zeit für den Timer. Habe es auch mal ohne die Formel versucht allerdings ist das Ergebnis das gleiche. (TCC0.PER = 0x0138; statt TCC0.PER = (uint8_t)(int16_t)-(F_CPU / 1024 * 10e-3 + 0.5)) Hat jemand eine Idee was ich falsch gemacht habe ? Code hab ich mal angehängt. Setup: AtXmega @ 32 Mhz ; 8 LED's an PORT D ; 8 Taster an PORT A Vielen Dank schonmal Gruß Stefan
Wie oft wird denn die ISR aufgerufen (Zykluszeit)? Mit einem Oszi kann man das z.B. an einem Toggle-Pin kontrollieren. Oder mit einem Zähler und einer Stopuhr...
Danke für die Antwort. Hab den Fehler gefunden. War zu unvorsichtig bei der Autovervollständigung im Atmel Studio ... War ein Fehler bei dem Clock Init, denke mal er ist mit 2 Mhz gelaufen statt mit den 32Mhz. Der korrigierte Version ist im Anhang. Gruß Stefan
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.