kheb een (zeer) klein progje geschreven
ledje gaat branden
en ventilatortje gaat draaien
voorlopig pas ik frequentie en duty cycle aan door her te proggen


include f877_20
include jlib            
include jpic

var bit LED is pin_b5
pin_b5_direction = output
LED = low

forever loop
				
f877_pr2 = 0h_7F		
f877_ccpr1l = 0h_7F	 	 
-- f877_ccp1con			
pin_c2_direction = output
f877_t2con = 0b_0000_0100	
f877_ccp1con = 0b_0000_1100

end loop

kheb natuurlijk wat problemen met instellen duty cycle

Frequentie is ingesteld op 39062.5 Hz (max 9 bit instellen)
of een periode van 25.6us
-> hex 0h_7F in PR2
de maximum dutyCycle is even groot als de periode 25.6us
berekend komt dit een waarde uit van 511 (eig 512 maar max negen bits) dus
0111111111
waarvan de eerste 8 bits in CCPR1L en de twee laatste in CCP1CON<bit5:bit4> (deze laatste stel ik niet in)
dus
01111111 | 00
ik moet dus een decimale waarde van 127 (0H_7F) in register CCPR1L schrijven maar
dan draait de fan maar aan halve snelheid

ik versta het niet, als ik dan OH_FF schrijf draait ie volledig

sorry voor de moeilijk uitleg maar ltukt me niet eenvoudiger
weet iemand hoe dit komt ?;(

wkweenie hoor, maar jij stel de PWM registers in binnen de forever-loop? Volgens mij moet je dat gewoon eenmalig voor de loop doen. Misschien dat de PWM hardware zich nu telkens reset ofzo?

Op 7 januari 2004 22:56:42 schreef Wouter van Ooijen:
wkweenie hoor, maar jij stel de PWM registers in binnen de forever-loop? Volgens mij moet je dat gewoon eenmalig voor de loop doen. Misschien dat de PWM hardware zich nu telkens reset ofzo?

maybe
kweet het zelf niet goed
kzal da eens schrijven in een procedure
en aanroepen indien nodig