11-28-2015, 10:23 PM
Može Milane, može ...
Ti nikako da ukapiraš !
Evo ti primer koji sam na brzinu skuckao da biu video o čemu pričam.
Ne tvrdim da nema greške, ali čisto da vidiš pristup :
define OSC 4
OSCCON=%01101000
TRISB=%00000000 ' Port B je izlazni
ANSELB=%0000000 ' Port B je digitalni
ms var word
Timerbit var bit
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:
gosub Izlazi
'--------- odavde pozovi AD konverziju itd ...
'-------------
Goto Pocetak
'------Podprogram obrade prekida-----------------------
disable
Int_Sub:
' Ovde samo podigni bit i beži napolje !!!
INTCON.2=0
Timerbit = 1
resume 'Vrati se iz rutine prekida
'-------------------------------------------------------
Izlazi:
if Timerbit = 0 then return ' Odmah napusti ako nije bilo TMR interapta
Timerbit = 0
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
endif
return
'---------------------------------------------------------
End
=============================================
Pozz
Ti nikako da ukapiraš !
Evo ti primer koji sam na brzinu skuckao da biu video o čemu pričam.
Ne tvrdim da nema greške, ali čisto da vidiš pristup :
define OSC 4
OSCCON=%01101000
TRISB=%00000000 ' Port B je izlazni
ANSELB=%0000000 ' Port B je digitalni
ms var word
Timerbit var bit
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:
gosub Izlazi
'--------- odavde pozovi AD konverziju itd ...
'-------------
Goto Pocetak
'------Podprogram obrade prekida-----------------------
disable
Int_Sub:
' Ovde samo podigni bit i beži napolje !!!
INTCON.2=0
Timerbit = 1
resume 'Vrati se iz rutine prekida
'-------------------------------------------------------
Izlazi:
if Timerbit = 0 then return ' Odmah napusti ako nije bilo TMR interapta
Timerbit = 0
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
endif
return
'---------------------------------------------------------
End
=============================================
Pozz