View Single Post
Old 16-10-2012, 11:31 PM   #1
chiviyeu_ltk91
Nhập môn đệ tử
 
Tham gia ngày: Sep 2012
Bài gửi: 10
:
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.
chiviyeu_ltk91 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn