Ik ben al een flinke tijd bezig met m'n PWM ding aan de praat te krijgen op een 16F88, maar ergens doe ik iets niet goed. Ik krijg het niet voor elkaar... Ik ben helemaal terug naar basic gegaan en doe nu de meest simpele routine die je kan verzinnen, maar ik denk dat er iets in mijn configbits verkeerd staat. Als iemand m'n fout zou kunnen aanwezen, eeuwige dank en roem natuurlijk. 
list p=16F88
#INCLUDE "P16F88.INC"
__CONFIG _CONFIG1, _CPD_OFF & _CCP1_RB3 & _CP_OFF & _DEBUG_OFF & _LVP_OFF & _MCLR_ON &
_PWRTE_ON & _WDT_OFF & _WRT_PROTECT_OFF & _INTRC_IO & _BODEN_OFF
org 0x00 ; Startadres 0x00
GOTO INIT ; Ga naar Initialisatie
org 0x04 ; Startadres 0x04
INIT clrf CCPR1L ; Zet DC op 0
clrf PORTA ; Zet alles schoon
clrf PORTB ; Zet alles schoon
bsf STATUS,RP0 ; Select Bank 1
clrf ANSEL ; Alle uitgangen digitaal maken
bsf OSCCON,6 ; Zet de interne oscilator...
bsf OSCCON,5 ; op 4 MHz (pg.40)...
btfss OSCCON,IOFS ; En wacht tot hij is...
goto $-1 ; gestabiliseerd
movlw 0x07 ; Zet poorten digitaal en...
movwf CMCON ; zet de comparators uit
movlw b'00000111' ; Zet RA0-2 op Input...
movwf TRISA ; en de rest op Output
clrf TRISB ; Port B zijn uitgangen
bcf STATUS,RP0 ; Select Bank 0
movlw 0x0C ; Zet de CCP module in...
movwf CCP1CON ; PWM mode (pg.81)
movlw 0xF9 ; Stel de PR2 waarde in...
movwf PR2 ; op 249
START call Blink
goto START
Blink movlw 0xFF ; Zet de Duty Cycle op...
movwf CCPR1L ; 100% (LED aan)
bsf PORTB,2 ; Test LEDje aan
call DELS5 ; Wacht een halve seconde
clrf CCPR1L ; Zet DC op 0% (LED uit)
bcf PORTB,2 ; Test LEDje uit
call DELS5 ; Wacht een halve seconde
return
Het Test LEDje gaat netjes aan en uit, maar de PWM lijkt niks te doen. En ik kijk dan naar RB3 (Pin 9) waarvan ik eigenlijk verwacht dat deze een halve seconde aan gaat en een halve seconde uit, net als het Test LEDje.
Ik heb voor het overzicht de wachtroutine DELS5 niet vermeld.
Op 19 januari 2009 14:57:05 schreef JoWi:
Mischien helpt het als je ook TMR2 start:bsf T2CON,TMR2ON
Ik heb de genoemde statement onder INIT gezet, maar het heeft niet het gewenste resultaat opgeleverd, alhoewel ik wel met je eens ben dat het ook handig is om deze aan te zetten na het verder doorspitten van de tutorial. 
Dat je timer2 was vergeten te starten was een fout, maar niet de enige fout. Check eens in welke bank PR2 zit....
Heerlijk hoe blij je kan zijn met zoiets simpels hè.
Als een kind met nieuw speelgoed.
JoWi had wederom gelijk. PR2 zit in Bank 1 en moet dus geconfigureerd worden alvoor je 'bcf STATUS,RP0' doet. Hoe makkelijk je over zulke dingen heen kan kijken. Maar ik heb geleerd en ga deze vraag niet nog een keer stellen.
Dank nogmaals voor alle moeite en de snelle reacties! 