Bài 6: PWM
Làm thế nào để tạo PWM trên dspic33f Bài toán: tạo xung PWM với chu kì 1ms, duty = 60%. Đầu tiên, cấu hình dao động Ta sẽ sử dụng cấu hình dao động nội là Fcy = 40Mhz =>Fosc =80MHz. như sau: _FOSCSEL(FNOSC_FRC); // Enable Clock Switching and Configure _FOSC(FCKSM_CSECMD & OSCIOFNC_OFF); ..... // Configure PLL prescaler, PLL postscaler, PLL divisor PLLFBD = 41; // M = 43 CLKDIVbits.PLLPOST=0; // N2 = 2 CLKDIVbits.PLLPRE=0; // N1 = 2 //Fosc = 80MHz // Initiate Clock Switch to Internal FRC with PLL (NOSC = 0b001) __builtin_write_OSCCONH(0x01); __builtin_write_OSCCONL(0x01); // Wait for Clock switch to occur while (OSCCONbits.COSC!= 0b001); Tiếp theo cấu hình các chân xuất PWM là output: _TRISB10 = 0; _TRISB11 = 0; _TRISB12 = 0; _TRISB13 = 0; _TRISB14 =0; _TRISB15 = 0; Ta tạo 1 hàm để setup cấu hình PWM mong muốn setup_PWM(); Các thông số sẽ được tính toán như sau: Ta sử dụng các bit thiết lập đầu tiên: ...