PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Softwarefrequenzzähler mit ATmega8



felack
26.09.2006, 18:16
Für ein Messgerät mit ATmega8 möchte ich einen Frequenzzähler bis 1 MHz programmieren. Da die Anschlüsse T0 und T1 bereits für andere Funktionen belegt sind, soll INT0 oder INT1 als Eingang benutzt werden. Der soll dann bei jeder Änderung am Pin eine Interruptroutine starten, die einen Zähler erhöht. Funktioniert das, wenn ich den ATmega8 mit 10 MHz takte ? Der Mikrocontroller braucht während der Messung sonst nichts zu arbeiten.

felack

-tomas-
26.09.2006, 22:51
Dir bleiben dann noch 10 Takte je Impuls.
Eher ein Fall für ASM. Lies mal im Atmega8 Handbuch unter "Interrupt Response Time" nach (ISR Minimum 4+3+4=11Takte).

Ich würde eine zweite ISR zur Zeitmessung benutzen. Die Zeitbasis so einstellen, dass ein 16Bit-Register ausreicht

ADIW R24,1

alternativ mal über Eingang pollen nachdenken:

sbis Pind,2
ADIW R24,1

besser wäre Du machst T0/T1 frei :-)