PDA

View Full Version : làm sao tao dc PWM 10-20KHz trên pic16f887??


delta21
16-01-2011, 08:21 PM
câu hỏi như trên ạ!!!bác nào chỉ em với,đang bí??
em dùng HT pic

hoc_picpicpic
17-01-2011, 03:24 PM
thiết lập F = 19,53KHz độ phân giải 10bit TA = 20M

T2CON = 0x00 ;
PR2 = 0xff ;

//------------------------------

thiết lập F = 16KHz độ phân giải 8bit TA = 20M

T2CON = 0x01 ;
PR2 = 78;

//------------------------------

datasheet của pic có công thức tính muốn setup ở tần số nào thì lôi ra mà tính

delta21
17-01-2011, 11:02 PM
thiết lập F = 19,53KHz độ phân giải 10bit TA = 20M

T2CON = 0x00 ;
PR2 = 0xff ;

//------------------------------

thiết lập F = 16KHz độ phân giải 8bit TA = 20M

T2CON = 0x01 ;
PR2 = 78;

//------------------------------

datasheet của pic có công thức tính muốn setup ở tần số nào thì lôi ra mà tính
mình biết công thức đó chứ,nhưng mà độ phân giải 10bit thi sao mà đưa giá trị vào CCPR1L (8bit),và 2 bit ở thanh ghi DC1B đây,bác chỉ em cách làm với!!!

hoc_picpicpic
18-01-2011, 05:38 PM
mình biết công thức đó chứ,nhưng mà độ phân giải 10bit thi sao mà đưa giá trị vào CCPR1L (8bit),và 2 bit ở thanh ghi DC1B đây,bác chỉ em cách làm với!!!


void setup_duty_cycle( unsigned int duty_cycle )
{


DC1B0 = duty_cycle ;
DC1B1 = duty_cycle >> 1 ;

CCPR1L = duty_cycle >> 2 ;
}

cho từ 10bit trở xuống

delta21
18-01-2011, 11:33 PM
void setup_duty_cycle( unsigned int duty_cycle )
{


DC1B0 = duty_cycle ;
DC1B1 = duty_cycle >> 1 ;

CCPR1L = duty_cycle >> 2 ;
}

cho từ 10bit trở xuống

hay quá,cám ơn bác!!!

delta21
22-01-2011, 07:11 AM
sao em làm hoài mà xung ra ko thấy thay dổi gì nhỉ!!!
bác có chương trình mẫu không.pót lên cho em tham khảo với!!

hoc_picpicpic
24-01-2011, 08:57 AM
bạn chạy mach thực hay mô phỏng,nếu bạn chạy mô phỏng trên proteus thì chỉ có bản 7.2 mới chạy dc pwm các bản khác ko mo phỏng dc