Ja,woher kommen die Impulse ?
Taste oder ein sauberes Signal ?

Für ne Taste reicht dieser Codeschnipsel aus

Code:
Do              'Hauptschleife
Debounce Pinb.1 , 1 , Taste , Sub
Loop

Taste:
Incr X
If x >= 5 then Set Portc.1
Return

Bei einem anderen Signal würde das prinzipiell auch reichen aber wenn das sehr kurz ist dann muß das Programm schnell reagieren können und ein Poll würde evtl. nicht mehr reichen.(Mit Config Debounce ist da noch einwenig rauszuholen)
Da wäre ein Interruptbetrieb sinvoller.
Das geht natürlich nur wenn der Controller auch einen Externen Int besitzt.

Also zb. so:

Code:
Config Int0 = Rising
On Int0 Taste
Enable Interrupts

Do              'Hauptschleife

Loop

Taste:
Incr X
If x >= 5 then Set Portc.1
Return
Natürlich ist es nicht fein in einer Interruptroutine groß herumzurechnen.
Der Grund ist das es Zeit kostet (LCD oder Serielle Ausgaben sind besonders Tödlich) und in dieser Zeit ein Weiteres Ereignis verloren gehen kann bzw. sich so mehrere Interrupts verschachteln können und dann der Stack überläuft usw. usw.
Deswegen gilt für Int. "Halte dich kurz"
Man kann also nur ein Flag setzen und die Abfrage dann woanders hinsetzen.


Zb. So

Code:
Config Int0 = Rising
On Int0 Taste
Enable Interrupts

Do              'Hauptschleife
If x >= 5 then Set Portc.1
Loop

Taste:
Incr X
Return
So,das reicht ja wohl erstmal zum Spielen.