Keil: Geschwindigkeit bei Timern

Gast #157792
Lesenswert?

Hallo,

ich muss ein Projekt für den 80535 realisieren unter Verwendung des
Timer 2. Vorerst möchte ich nur R0 alle 3 Sekunden inkrementieren, was
ich über die 16-Bit Auto-Reload-Funktion des Timer 2 realisieren
möchte.

Leider zählt R0 aber extrem schnell hoch. Kann es sein, dass Keil im
Debug-Mode nicht mit 12 Mhz sondern viel schneller arbeitet? Oder
liegts doch an meinem Code (siehe Anhang)?

Falls es an Keil liegt: Welche Möglichkeiten gibt es, das Programm mit
12 MHz Oszillatorfrequenz zu testen?

Vielen Dank für eure Hilfe!

Gruß
Markus
Angehängte Dateien:
Gast #157796
Lesenswert?

Erstmal vielen Dank für deine Antwort!

Könntest du die Rechnung bitte kurz erklären? Unser Dozent hat uns das
folgendermaßen erklärt:
Wenn man als Autoreloadwert 15.536 festlegt, zählt der 16-Bit-Timer
noch 50.000 Schritte ms hoch (da er ja bis 65.536 zählt). Bei 12 MHz
benötigt er für 50.000 Schritte 50 ms (pro Schritt 1 us).

Stimmt das so nicht?

Jedenfalls zählt das Register trotzdem sehr viel schneller hoch.. 1 kHz
käme da eher hin :/
Gast #157799
Lesenswert?

Kann mir vielleicht noch mal jemand erklären / resp. bestätigen, dass
ich das mit den Interrupt-Zeiten richtig verstanden habe ?

Bei einem 4 MHz-Takt und einer Vorteilung von 256 komme ich auf einen
Takt von 15,625kHz.
Das ist die Frequenz, mit der das Register von 255 bis 0 runtergezählt
wird.
Bei 0 erfolgt dann erst der Interrupt ?
d.h. Der Interrupttakt läge dann bei 61,27 Hz (15625/255) oder ist das
dann 15625/256 ?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren