Početnik sam u programiranju MikroBasic-om. Pokušao sam da sa PIC12F675 napravim vremenski relej kod koga mogu da podešavam trajanje impulsa i pauze ali kada ga simuliram u Proteus-u to ne radi. Možete li mi pomoći da vidim gde grešim. Potenciometri su vezani na GP0 i GP2 a izlaz je na GP4 gde se preko tranzistora pali relej.
P.S. ne znam kako da sliku iz proteusa postavim na ovaj forum.
program Tajmer
' Deklaracija promenljivih
dim impuls, pauza as word
dim brojac as word
'procedura prekida
sub procedure interrupt
INTCON = $20 'zabrana svih prekida i brisanje bita koji je registrovao prekid
if(INTCON.2=1)then 'ako je TMR0 napravio prekid
INTCON.2=0 'obriši bit prekida
brojac = brojac+1 'brojac prekida
end if
TMR0 = 114
INTCON = %10100000 'dozvoli prekide
end sub
main:
INTCON = $20
OPTION_REG = %10000111 'prescaler 1:256 dodeljen TMR0
TRISIO = %00000101 'ulazi GP0 i GP2, sve ostalo izlazi
ANSEL = %00110101 'GP0 i GP2 kao analogni ulazi; interni oscilator za A/D konv.
ADCON0 = %10000001 'desno poravnanje rezultata; Vref=Vdd
CMCON = %00000111 'zabrana komparatora
GPIO.4=1 'relej ukljucen prilikom paljenja tajmera
brojac = 0
TMR0 = 114
INTCON = %10100000
while (TRUE)
ADCON0 = %10000001 'kanal CH0 aktivan
ADCON0.1 = 1 'start konverzije
while ADCON0.1=1 'cekaj dok se ne zavrsi konverzija
wend
impuls = ADC_Read(0)
if(brojac<impuls)and(GPIO.4=1)then
GPIO.4=0
end if
ADCON0 = %10001001 'kanal CH2 aktivan
ADCON0.1 = 1 'start konverzije
while ADCON0.1=1 'cekaj dok se ne zavrsi konverzija
wend
pauza = ADC_Read(2)
if(brojac<pauza)and(GPIO.4=0)then
GPIO.4=1
end if
wend
end.
[Ovu poruku je menjao janjic dana 21.02.2015. u 12:05 GMT+1]