Ik kijk ergens overheen:
Ik wilde met MikroBasic onder gebruik making van interrupt een ledje laten dimmen. (dus niet de ingebouwde PWM module gebruiken omdat die maar beperkt is tot 1 of 2 poorten).
De 'duty cycle' regel ik dan zelf.
Toch gaat er iets niet goed. Het ledje knippert wel, maar de fading niet.
pic basic code:
Program KleurLed
Dim i1 As Byte
j1 As Byte '
'----------------------------------------------------------------------------------------
sub procedure Interrupt() iv 0x0004 ics ICS_AUTO
'----------------------------------------------------------------------------------------
If TMR2IF_bit Then
latb.4 = not latb.4
inc(i1)
if (i1 > 127) then i1 = 0 end if
TMR2IF_bit = 0
End If
end sub
main:
OSCCON = %01110000 '8Mhz internal
ANSELB = 0 'Port B Digital
TRISB = %00000000 'PORT B as output
T2CON = %00100101 'Post:5 - Pre:16
PR2 = 2 'Timer load value
GIE_bit = 1 'Enable timer2 irq
PEIE_bit = 1 '
TMR2IE_bit = 1
While True
'latb.3 = not latb.3
for j1 = 0 to 127
if i1 < j1 then
latb.3 = 1
else
latb.3 = 0
end if
delay_ms(200)
next j1
Wend
end.