11-28-2015, 11:44 PM
Jasno je meni da ako uvek program nailazi na GOSUB instrukciju ona ce i biti izvrsena ali posto meni treba odmah nakon uvecanja promenljive da se odradi kontrola I/O pinova ja sam to stavio u potprogram za obradu interrupta.
Kada je glavni program prazan ili nema pauze u njemu onda interrupt lepo radi.
Evo iznova sam napisao cod i neradi jer imam u glavnom programu pauze.
Kada je glavni program prazan ili nema pauze u njemu onda interrupt lepo radi.
Evo iznova sam napisao cod i neradi jer imam u glavnom programu pauze.
Code:
define OSC 4
OSCCON=%01101000 ' Interni oscilator 4MHz
TRISA=%00000000 ' port A je izlazni
TRISB=%00000000 ' Port B je izlazni
ANSELB=%0000000 ' Port B je digitalni
ms var word ' Promenljiva za milisekunde
PortB.0=0
PortB.1=0
INTCON.5 = 0 'Onemoguci TMR0 prekide
ms=0
OPTION_REG = %1000010 '010 preskaler postavi u odnos 1:8
TMR0=6 'Postavi vrednost TMR0
INTCON.5=1 'Omoguci TMR0 prekide
INTCON.7=1 'Omoguci sve prekide
ON INTERRUPT goto Int_Sub
'------------Glavni program--------------------------
Pocetak:
PortB.3=1
pause 1000
PortB.3=0
pause 1000
Goto Pocetak
'------Podprogram obrade prekida-----------------------
disable
Int_Sub:
ms = ms + 2 ' Uvecava se promenljiva
INTCON.2=0 ' Gasi zastavicu
select case ms
case 6
PortB.0=0
case 10
PortB.1=1
case 16
PortB.1=0
case 20
PortB.0=1
ms = 0
end select
INTCON.7=1 'Omoguci prekide
INTCON.5=1 'Omoguci prekide
resume 'Vrati se iz rutine prekida
End