21.12.2013 Views

Maskinnära programmering 6B2266

Maskinnära programmering 6B2266

Maskinnära programmering 6B2266

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!