Bài đăng

Đang hiển thị bài đăng từ Tháng 10, 2018

Bài 6: PWM

Hình ảnh
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:   ...