Du musst oben das anpassen (Port und Pin). Bei deinem ersten Kontakt wäre das dann
Code:
if (PINA & (1<<PA7)) sei();
Beim anderen Kontakt ersetzt du "PINA" mit dem Port, den du hast. PIN bleibt immer gleich. der letzte Buchstabe gibt den Port an. PINA wäre Port A, PINB wäre Port B,...
"PA7" musst du mit dem Pin ersetzten. "P" bleibt immer gleich. Das "A" ist der Port und die Ziffer ist der Pin.
Wenn du die Interrupts stoppst musst du "sei();" mit "cli();" austauschen. Die Pins und Ports musst du deinen Bedürfnissen anpassen.
Ich würde den Timer einfach laufen lassen (mittels Kontakt starten). Bei jedem Overflow eine Variable um 1 erhöhen. Wenn der Timer gestoppt wird, ließt du die Variable und das Timerregister mit dem aktuellen Zählerstand. Entweder berechnest du die Zeit direkt und sendest es an den PC oder du sendest die Überläufe und den Zählerstand an den PC und berechnest es am PC.
MfG Hannes
Lesezeichen