Kod: Markera allt
program servo
main:
TRISB = 0
PORTB = %11111111
delay_us(100)
PORTB = %00000000
Delay_ms(20)
goto main
end.
Compier: mikrobasic
PIC: 16F628A
OSC: Internal 4mhtz
Kod: Markera allt
program servo
main:
TRISB = 0
PORTB = %11111111
delay_us(100)
PORTB = %00000000
Delay_ms(20)
goto main
end.
Kod: Markera allt
program tmr0
dim cnt as byte
dim a as byte
dim b as byte
sub procedure interupt
cnt = cnt + 1 ' increment value of cnt on every interupt
TMR0 = 96
INTCON = $20 ' set TOIE, clear TOIF
end sub
main:
a = 0
b = 1
OPTION_REG = $84 'assign prescaler to TMR0
trisb = 0 'Desegnate portb as outport
portb = $FF ' initialize portb
cnt = 0 ' initialize cnt
TMR0 = 96
INTCON = $A0 ' enable TMR0 interupt
do
if cnt = 200 then ' if cnt is 200, then toggle portb leds and reset cnt
portb = not(portb)
cnt = 0
end if
loop until 0 = 1
end.Kod: Markera allt
program tmr0
dim cnt as byte
sub procedure interupt
cnt = cnt + 1 ' lägger till 1 till cnt
TMR0 = 96
INTCON = $20 ' bestämmer att "enable all un-masked peripheral interupts" vad det nu betyder?
end sub
main:
OPTION_REG = $84 '"portb pull-ups are disbled och prescaler rate är 1:32
trisb = 0 'port b är utgångar
portb = $FF 'sätter alla port b till 1or
cnt = 0 ' här börjar man räkna cnt.
TMR0 = 96 ' Detta fattar jag inte
INTCON = $A0 ' eneble all un-masked interupts & enebelsTMR0 interupt
do
if cnt = 200 then ' är det här man bestämmer tiden?
portb = not(portb) ' Här ändrar man väll 1or till 0or?
cnt = 0 ' Återställer cnt till 0
end if
loop until 0 = 1 ' Detta fattar jag inte heller
end.