![]() |
Cần tư vấn về PWM cho pic18f4331.
Chào các bác.
Tình hình là e bị giao bài tập về nhà. Đề khoai quá.e thì mới học pic nên cũng chưa rõ lắm.(gà).hề. Các pro giúp em băm xung 4 lỗ độc lập.điều khiển động cơ. Em mới viết dc mấy dòng code thế này; //////////////////////////////////////////////////////////////// #include <p18f4431.h> #include <stdio.h> #include <delays.h> //---------------------------------Cau hinh chip------------------------------------ #pragma config OSC = HS #pragma config FCMEN = OFF #pragma config IESO = OFF #pragma config PWRTEN = OFF #pragma config BOREN = OFF #pragma config WDTEN = OFF #pragma config T1OSCMX = OFF #pragma config HPOL = HIGH #pragma config LPOL = HIGH #pragma config PWMPIN = OFF #pragma config MCLRE = ON #pragma config EXCLKMX = RD0 #pragma config PWM4MX = RB5 #pragma config SSPMX = RD1 #pragma config FLTAMX = RC1 #pragma config STVREN = OFF #pragma config LVP = OFF #pragma config DEBUG = OFF #pragma config CP0 = OFF #pragma config CP1 = OFF #pragma config CP2 = OFF #pragma config CP3 = OFF #pragma config CPB = OFF #pragma config CPD = OFF #pragma config WRT0 = OFF #pragma config WRT1 = OFF #pragma config WRT2 = OFF #pragma config WRT3 = OFF #pragma config WRTB = OFF #pragma config WRTC = OFF #pragma config WRTD = OFF #pragma config EBTR0 = OFF #pragma config EBTR1 = OFF #pragma config EBTR2 = OFF #pragma config EBTR3 = OFF #pragma config EBTRB = OFF //-----------------------------------end--------------------------------------------- //------------------------------khoi ham tao tre---------------------------- void delay (void) { Delay10TCYx(2); } void delay_ms(int us) { int ims; for(ims=0;ims<us;ims++) { Delay1KTCYx(4); Delay100TCYx(10); } } void delay_s(int ms) { int ims; for(ims=0;ims<ms;ims++) { delay_ms(1000); } } //----------------------------- end----------------------------- //-------------------Khoi ham khoi tao----------------------------- void Init_Interrupt(void) { //Cho phep ngat ngoai 0,1,2; Ngat uu tien cao RCONbits.IPEN = 1; INTCON = 0b11010000; INTCON2 = 0x00; INTCON3 = 0b11011000; PIR1 = 0x00; PIR2 = 0x00; PIR3 = 0x00; PIE1 = 0x00; PIE2 = 0x00; PIE3 = 0x00; IPR1 = 0x00; IPR2 = 0x00; IPR3 = 0x00; } void Init_PWM(void) { PTCON0 = 0x00; //Postscale 1:1, Prescale 1:1, Free Running PTCON1 = 0x80; //PWM time base is on, Count Up! PWMCON0 = 0x4F; //Enable PWM0-5, Independent Mode PWMCON1 = 0x00; ///////////////////////////////////////////////////////// Mớ có thế thui.giúp em với các anh các chị ơi. |
Không có ai giúp em ak.
|
Bạn lập trình bằng soft gì vậy. Mình dùng CCS thì trong CCS có sẵn các hàm cho module power pwm, còn bạn dùng soft khác thì mình ko rành, mình share cho bạn code bằng CCS nhé
Đề điều khiển 4 động cơ thì đơn giản nhất là dùng 4 chân pwm1, pwm3, pwm5, pwm7 của module power pwm để điều khiển setup_power_pwm(pwm_clock_div_4|pwm_free_run,1,0,6 25,0,1,0); //cài đặt tần số xung 8kHz setup_power_pwm_pins(pwm_odd_on,pwm_odd_on,pwm_odd _on,pwm_odd_on); // cho phép xuất xung các chân lẻ set_power_pwm0_duty(0); //xuất xung chân pwm1 set_power_pwm2_duty(0); //xuất xung chân pwm3 set_power_pwm4_duty(0); //xuất xung chân pwm5 set_power_pwm6_duty(0); //xuất xung chân pwm7 giá trị duty từ 0-2500 |
Em viết bằng ngôn ngữ C bác ak. code của bác viết bằng CCS em chả biết tị gì.hj.
Dù sao thì cung thank bác nhiều. |
chiviyeu_ltk91 b nói thế là bó tay rồi vì CCS là phần mềm viết bằng ngôn ngữ C cho PIC mà
|
Trích:
bác có thể dạy em thêm chút về tạo PWM theo quy luật của bange giá trị sine không em đang cần thanks bác nhiều |
Múi giờ GMT. Hiện tại là 06:59 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam