well i was thinking on trying something like this:
i have a 18X is following a line and waiting for an interrupt to trigger. interrupt is given by a 08M with pulseout command and then it is followed by serial data from it. it is sent to 18X and then it processes it a bit. But now 08M found that he should send some more data to 18X (wich is ok with 18X himself) so will the interrupt be triggered again? or will i have to type a SETINT command in the subroutine?
my code: sry for it being in estonian
<code><pre><font size=2 face='Courier'>
'sisse
symbol karukinnijasees = 10 '+
symbol karukapasjalahti = 20 '+
symbol avatud = 30
symbol suletud = 40
symbol karukadunud = 80 '+
symbol valmis = 100
symbol karuonees = 120
'välja
symbol kapplahti = 50 '+
symbol kappkinni = 60 '+
symbol confirmed = 70 '+
symbol error = 90
symbol ootanmidagimuud = 110
'andurid
symbol vasakjoon = 1
symbol paremjoon = 2
'muud pinid
symbol enable = 3
symbol sin = 6
symbol sout = 7
'variabelid
symbol temp = b0
symbol vjoon = b1
symbol pjoon = b2
symbol kiirus = b3
symbol kappinfo = b4
'arvud
symbol anduritevahe = 20
symbol aeglaselt = 900
symbol kiiresti = 1000
symbol tagasi_s = 100
symbol kurv_s = 100
'mootorisuunad
symbol paremale = %00010100 ' "slow" 4 00 0101 00 20
symbol vasemale = %00100010 ' "slow" 32 00 1000 10 34
symbol otse = %00100100 ' 00 1001 00 36
symbol tagasi = %00010010 ' 00 0100 10 18
'eelsetingud
setfreq m8
setint %10000000, %10000000
wait 5
pwmout enable,255, kiiresti
'programm
main:
'debug
readadc vasakjoon, vjoon
readadc paremjoon, pjoon
if vjoon < pjoon then _vjoon
if vjoon > pjoon then _pjoon
_vjoon:
temp = pjoon - vjoon
if temp > anduritevahe then _joonvasakul
goto _otse
_pjoon:
temp = vjoon - pjoon
if temp > anduritevahe then _joonparemal
goto _otse
_joonvasakul:
b13 = tagasi
PEEK $30,b12
pins = b12 & %00001000 | b13
pause tagasi_s
b13 = vasemale
PEEK $30,b12
pins = b12 & %00001000 | b13
pause kurv_s
kiirus = 0
pwmout enable,255, aeglaselt
goto main
_joonparemal:
b13 = tagasi
PEEK $30,b12
pins = b12 & %00001000 | b13
pause tagasi_s
b13 = paremale
PEEK $30,b12
pins = b12 & %00001000 | b13
pause kurv_s
kiirus = 0
pwmout enable,255, aeglaselt
goto main
_otse:
if kiirus < 100 then _aeglaselt
pwmout enable,255, kiiresti
_aeglaselt:
b13 = otse
PEEK $30,b12
pins = b12 & %00001000 | b13
kiirus = kiirus + 1
goto main
interrupt:
pins = 0
pwmout enable,0,0
serout sout, T2400, ("kapp", valmis)
pause 10
serin sin, T2400, ("kapp"
,kappinfo
if kappinfo = karuonees then _karuonees
if kappinfo = karukinnijasees then _karukinnijasees
if kappinfo = karukapasjalahti then _karukapasjalahti
if kappinfo = avatud then _avatud
if kappinfo = suletud then _suletud
if kappinfo = karukadunud then _karuotsing
if kappinfo = valmis then _valmis
serout sout, T2400, ("kapp",error)
_karuonees:
pins= 0
serout sout, T2400, ("kapp", confirmed)
pause 50
pins= vasemale
pause 500
_pooran:
readadc vasakjoon, vjoon
readadc paremjoon, pjoon
if vjoon < pjoon then _kohal
goto _pooran
_kohal:
pins= tagasi
wait 15
end
_karukapasjalahti:
serout sout, T2400, ("kapp", confirmed)
pause 10
serin sin, T2400, ("kapp"
, kappinfo
if kappinfo = karukinnijasees then _karukinnijasees
serout sout, T2400, ("kapp",ootanmidagimuud)
pause 10
goto _karukapasjalahti
_karuotsing:
pins = 0
serout sout, T2400, ("kapp", confirmed)
pause 10
serout sout, T2400, ("kapp", kapplahti)
wait 10
_avatud:
pins = tagasi
wait 10
return
_karukinnijasees:
serout sout, T2400, ("kapp", confirmed)
return 'return
_valmis:
_suletud:
</font></pre></code>