Forum: Mikrocontroller und Digitale Elektronik Impulse zählen mit Atmega32 (in C)


von Julian (Gast)


Lesenswert?

Hallo,
Ich soll mit einem ATMEGA32 (DIP) Impulse zählen.
Im Programm wird im Grunde immer um eins erhöt, wenn ein Impuls kommt.
Nur weiß ich jetzt nicht welchen Anschluss ich vom uC nehmen muss um die 
Impulse zu zählen.
Ich hab im Forum gelesen, dass bei eher langsamen Impulsen ein Taster 
Interrupt zu verwenden ist.(Aufnahme von Stromzähler-rote Mark.)
Ist dass so ein Port INT (es gibt int0 int1 int2, ist es dann egal 
welcher?).
Dann würde das Programm so aussehen:

sbit Port = 0x.. //die Adresse steht glaub ich im Datenbl.
int x = 0;
isr() //Wo muss ich den den Port angeben damit isr() weiß welcher
{
 x++;
}

Bitte um Hilfe.
julian

von Dennis (Gast)


Lesenswert?

Geht auch mit Interrupt. Praktischer wäre aber wahrscheinlich die 
Input-Capture-Unit des Timers 1. (im Datenblatt ab S.93)
Mit C kenn ich mich nicht aus, näheres dazu im GCC-Tutorial: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

von Peter D. (peda)


Lesenswert?

Wennse prellfrei und störfrei sind, mit nem Timer als Counter.

Wennse störbehaftet sind oder prellen, mit nem Timerinterrupt im 
Prellintervall (~10ms bei mechanischen Kontakten).


Peter

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
Noch kein Account? Hier anmelden.