Hi,
I need to produce a relatively accurate frequencies.
I'm using PWM with 50% Duty Cycle.
I need to produce frequencies with distance of 50 Hz in between ({3150, 3200, 3250, ..., 4150, 4200}).
I'm using the following code but get 3405 Hz instead of 3205 Hz.
I'm using the following testing code:
#include <msp430.h> int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT int f=3200; int t=1000000/f; P1DIR |= 0x0C; // P1.2 and P1.3 output P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 options CCR0 = t - 1; // PWM Period/2 CCTL1 = OUTMOD_6; // CCR1 toggle/set CCR1 = t/2; // CCR1 PWM duty cycle TACTL = TASSEL_2 + MC_1; // SMCLK, up-down mode __bis_SR_register(LPM0_bits); // Enter LPM0 }
Any ideas?
Thanks,
Itay Cohen