-
-
Erfahrener Benutzer
Fleißiges Mitglied
Softwarefrequenzzähler mit ATmega8
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
-
Erfahrener Benutzer
Fleißiges Mitglied
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
alternativ mal über Eingang pollen nachdenken:
Code:
sbis Pind,2
ADIW R24,1
besser wäre Du machst T0/T1 frei
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen