PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 19-07-2012, 09:31 PM   #11
minhminh17
Nhập môn đệ tử
 
Tham gia ngày: Apr 2008
Bài gửi: 4
:
Unhappy xuat 500xung PWM Tpwm=5khz

dear cac bac pro pic18 hien em dang thu lap trinh C18 xuat power PWM Tpwm=5Khz xuat 500 xung thi dung khong xuat nua nhung chua ranh chi lam duoc den day bac chi giup em voi

void Motor_init()
{
//------------------------ PTCON0: PWM TIMER CONTROL REGISTER 0 -----------------------------//
// Postscale: 1:1
PTCON0bits.PTOPS0 = 0;
PTCON0bits.PTOPS1 = 0;
PTCON0bits.PTOPS2 = 0;
PTCON0bits.PTOPS3 = 0;
// time base input clock: 1:4 prescale
PTCON0bits.PTCKPS0 = 0;
PTCON0bits.PTCKPS1 = 1;
// Free running mode
PTCON0bits.PTMOD0 = 0;
PTCON0bits.PTMOD1 = 0;
// PWM PERIOD FOR FREE-RUNNING MODE:
// Tpwm = ((PTPER + 1) x PTMRPS) / (Fosc/4).
//(Desired period) (Period value) (prescale value)


//------------------------ PTCON1: PWM TIMER CONTROL REGISTER 1 -----------------------------//
PTCON1bits.PTEN = 0; // PWM time base is off

//------------------------ PWMCON0: PWM CONTROL REGISTER 0 -----------------------------//
// PWM outputs: PWM0-PWM1-PWM2-PWM3
PWMCON0bits.PWMEN0 = 0;
PWMCON0bits.PWMEN1 = 1;
PWMCON0bits.PWMEN2 = 0;
// Config pair output:
PWMCON0bits.PMOD0 = 1; // pair (PWM0, PWM1) is in the Independent mode
PWMCON0bits.PMOD1 = 1; // pair (PWM2, PWM3) //
PWMCON0bits.PMOD2 = 1; // pair (PWM4, PWM5) //
PWMCON0bits.PMOD3 = 1; // pair (PWM6, PWM7) //

//------------------------ PWMCON1: PWM CONTROL REGISTER 1 -----------------------------//
// PWM Special Event Trigger: 1:1 postscale
PWMCON1bits.SEVOPS0 = 0;
PWMCON1bits.SEVOPS1 = 0;
PWMCON1bits.SEVOPS2 = 0;
PWMCON1bits.SEVOPS3 = 0;

PWMCON1bits.SEVTDIR = 0; // A Special Event Trigger will occur when the PWM time base is counting upwards
PWMCON1bits.UDIS = 0; // Updates from Duty Cycle and Period Buffer registers are enabled
PWMCON1bits.OSYNC = 0; // Output overrides via the OVDCON register are asynchronous

// Time base beginning value
PTMRL = 0;
PTMRH = 0;
// Period value: 249 <==> Tpwm = 5Khz
PTPERH = 0;
PTPERL = 0xF9;
// Max Duty cycle = Period value x 4.
PTCON1bits.PTEN = 1; // PWM time base is on
minhminh17 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 05:21 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam