Maskinnära programmering 6B2266
Maskinnära programmering 6B2266
Maskinnära programmering 6B2266
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
* Settings CCP1 PWM-mode */<br />
TRISB.3 = 0; /* CCP1 is output (RB3 pin) */<br />
PR2 = 255; /* Timer2 counts full period */<br />
/* PWM DutyCycle */<br />
CCPR1L = 64; /* in this example 25% DutyCycle 65/256 = 0,25 */<br />
/* CCP1X and CCP1Y can be set to 0 for 8 bit resolution */<br />
/* 0, 0000 (1:1 postscale), 1 (TMR2 on), 00 (1:1 prescale) */<br />
T2CON = 0b00000100; /* Set CCP unit in PWM-mode */<br />
CCP1CON = 0b00.0.0.1111;<br />
/* --, 0 (CCP1X), 0 (CCP1Y), 1111 (PWMmode 11xx) */<br />
Vill man använda en högre PWM-frekvens, tex 20 kHz för att undvika hörbara<br />
vibrationer, laddar man PR2 med talet 124. Högsta upplösningen blir då 9 bitar.<br />
Löst programexempel med PIC16F628<br />
PWM-testsignal, 1000 Hz 50%<br />
dutycycle<br />
Detta mycket enkla testprogram visar hur PIC16F62x ställs in för att för att generera<br />
en 1000 Hz, 50% dutycycle PWM-signal. Hemma kan testsignalerna avlyssnas med<br />
kristall-hörluren och kanske jämföras med ett stämt musikinstrument, eller telefonens<br />
kopplingston som är 440 Hz..<br />
( Vid labtillfället i skolan mäter vi frekvensen med en FLUKE 123-scopmeter. )<br />
38