ik wil graag via de ccp module van de pic16f628a een pwm signaal maken. maar ik krijg hem niet aan de praat. ik heb wat codes van een calculator gehaald maar dat is volgens mij niet genoeg.
deze calculator heb ik gebruikt: http://www.micro-examples.com/public/microex-navig/doc/097-pwm-calcula…
dit is het gedeelte van de code voor de ccp module goed in te stellen.


                bsf	03h, d'5'			;bank 1
		movlw	b'01111100'			;PR2 register
		movwf	PR2
		bcf	83h, d'5'			;bank 0
		movlw	b'00000111'
		movwf	T2CON
		movlw	b'00111110'
		movwf	CCPR1L
		movlw	b'00011100'
		movwf	CCP1CON

Wel weinig he :P

Heb je de TRISB3 als output gezet?

ja


	bsf		03h, d'5'			
	clrf	TRISA
	clrf	TRISB
	bsf		TRISA, 4
	bsf		TRISA, 5
	bsf		TRISB, 0
	bcf		83h, d'5'			 

83h klopt niet. Dit moet 03h zijn.
Leer eens gauw af dit soort commando's te geven ;)

Even de P16F628A.INC include file opgeven. Dan kun je het commando bcf STATUS,RP0 in je progje zetten. Is een stuk overzichtelijker.

heb ik veranderd. maakt niks uit. ik had het zo staan om 1 of andere reden ver in het verleden. en ik had 83h staan omdat als je in bank 1 zit is het status adres op 83 en in bank 0 op 03h

Moeilijk te zeggen wat er mis is met allerlei incomplete brokken code.
Is er wel een eindeloze loop aan het eind van het main deel?

er is een eindloos deel. maar zou iemand een werkend pwm script kunnen posten

De jouwe werkt in de simulator van MPlab..

vreemd op breedboard doet hij het niet en ik weet dat het aan het programma moet liggen want hij doet het wel als ik het in basic doe. maar daar wil ik het niet in omdat ik daar te weinig ruimte heb. zou je me kunnen uitleggen hoe de simulator werkt

"View" - "special function registers" , zodat je PORTB en andere belangrijke registers in de gaten kunt houden.

"Debugger" - "select tool" - "MPlab-SIM"

Simulator in langzame mode laten draaien:
"debugger" - "animate"

het enigste wat ik zie veranderen is het status register

En dat gebeurt op het moment dat je een bankswitch doet... daar zit ergens toch wat fout. Controleer eens of RP0 en RP1 in het status register steeds goed staan.

volgens mij werkt mplab bij mij nog niet goed. ik heb de schermpjes memory usage en program memory open staan maar heel de tijd blijven die leeg. tris a en tris b blijven ook heel de tijd op 11111111 staan. ik ga ff de nieuwste versie van mplab instaleren

[Bericht gewijzigd door robojan op (11%)]

Dat klopt niet.
In Program memory hoort het programma te staan nadat je de "build all" opdracht hebt gegeven.

Dat de memory gauge op nul blijft klopt als je geen linker script gebruikt...

ik krijg nu de error: Build aborted. The project contains no source files. als ik op build all druk.
[edit] probleem verholpen.

nu heb ik weer het eerdere probleem. ik kan nu goed de debug zien. eerst niet. trisa en trisb staan nu ook goed. ik volg het precies en de registers worden goed gezet en daarna niks. zou het te maken kunnen hebben dat ik in de oneindige loop aan het eind een sleep heb staan.[/edit]
@hieronder(Zonnepaneeltje) ik was net eerder.

Klikken op source files en je progje toevoegen.

heeft niemand een code van een werkende pwm op een pic 16f628a

Dit is je eigen progje wat gewoon werkt....


 #include p16F628A.INC



	__CONFIG        _BODEN_ON & _CP_OFF & _DATA_CP_OFF
 & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _INTRC_OSC_NOCLKOUT


		ORG	0		;Reset vector address
		GOTO	RESET		;goto RESET routine when boot.


;	       **********************************
;              **  RESET :  main boot routine  **
;              **********************************

RESET	BSF  	STATUS,RP0	;Switch to register bank 1
		MOVLW	B'00000000'
		MOVWF	TRISB		;RB7 & RB6 are inputs.
					;RB7...RB0 are outputs.
		MOVLW	B'11111111'	;all RA ports are inputs
		MOVWF	TRISA
		BCF	   STATUS,RP0	;Switch Back to reg. Bank 0


PWM     bsf	    STATUS,RP0	    		;bank 1
		movlw	b'01111100'			;PR2 register
		movwf	PR2
		bcf 	STATUS,RP0			;bank 0
		movlw	b'00000111'
		movwf	T2CON
		movlw	b'00111110'
		movwf	CCPR1L
		movlw	b'00011100'
		movwf	CCP1CON

stayhere    nop
        goto stayhere      




	END

ik heb jou(/mijn) code rechtstreeks overgenomen maar hij doet niks nada njet.

Weet je zeker dat het niet aan de hardware ligt? (Pull-up MCLR vergeten, of Vdd te laag?)

de hardware is in orde. ik gebruik geen mclre dus dat heb ik ook uit staan. maar ook in de simulator gebeurt er niks. als voeding gebruik ik een lm7805 met 100nf condensatoren. en ik krijg hem wel werkend in picbasic, maar dat gebruik ik niet, omdat ik dan aan het limiet van 50 regels zit

[edit]
ik probeer het voor de zoveelste keer mijn code. en opeens werkt die:D[/edit]

[Bericht gewijzigd door robojan op (13%)]

ik gebruik geen mclre dus dat heb ik ook uit staan.

In de bovenstaande code staat 'ie anders wel aan...

die code is niet van mij. niet geheel altans.
maar hij werkt opeens

Opeens? ;)

De fout zit volgens mij in de 83h. Dat moet 03h zijn. De assembler maakt van bcf STATUS,RP0 bcf 03,5