Okay - also die einfachere Variante mit nur einem Kanal. Die ganz blöden Fragen gleich mal vorneweg (sorry, aber daran liegt´s sooo oft):
- Die Masse des RX ist auch mit der Board-Masse verbunden?
- Der Controller läuft auch wirklich auf 16 MHz?
Wenn ja, wäre hier mal ein Code-Vorschlag für einen Kanal an INT0:
Code:
$regfile=m32def.dat
$Crystal=16000000
(Config LCD.........)
Config Timer2=Timer, Prescale=256
Start Timer2
Config INT0=Change
On INT0 Flanke
Enable INT0
Enable Interrupts
Dim Start1 as Byte
Dim Stop1 as Byte
Dim Impuls as Byte
Fim Flag as Bit
Do
If Flag = 1 then
Flag = 0
Impuls = Stop1 - Start1
Locate 1,1
LCD Impuls; " " (die Leerzeichen, weil Impuls 2- oder 3stellig sein kann)
End if
Loop
Flanke:
If PIND.2=1 then
Start1 = Timer2
Else
Stop1 = Timer2
Flag = 1
End if
Return
Müsste eigentlich klappen...
EDIT: Bei Start und Stop als Variablen meckert Bascom natürlich - sorry, da habe ich gepennt. Nenn´ sie Start1 und Stop1 (oder Max und Moritz, wie immer Du willst...)
Lesezeichen