Ðăng Nhập

View Full Version : Cần giúp đỡ PWM PIC18F4431


tien168bn
30-12-2012, 03:01 PM
Mình viết code này mà ko hiểu sao khi dùng hai modul pwm thì chạy ngon lành, dùng thêm một modul nữa thì cái modul dùng thêm đó luôn có xung ra. ví dụ như trong code dưới là dùng pwm2 và pwm6 chạy hai bánh, pwm4 điều khiển tay gắp. mà cứ bất nguồn mạch đk là tay gắp lại hoạt động luôn. Khẳng định là mạch công suất ko có vấn đề j, vì e dùng mạch đó chạy động cơ bnhs vẫn ngon lành.

tien168bn
03-01-2013, 02:11 PM
Mình viết code này mà ko hiểu sao khi dùng hai modul pwm thì chạy ngon lành, dùng thêm một modul nữa thì cái modul dùng thêm đó luôn có xung ra. ví dụ như trong code dưới là dùng pwm2 và pwm6 chạy hai bánh, pwm4 điều khiển tay gắp. mà cứ bất nguồn mạch đk là tay gắp lại hoạt động luôn. Khẳng định là mạch công suất ko có vấn đề j, vì e dùng mạch đó chạy động cơ bnhs vẫn ngon lành.

Ai giúp mình với :((

dinhnambkhn
03-01-2013, 06:48 PM
bạn đọc exemple của ccs í, trong đó nó có 1 số vd về power PWM

thucdontinhyeu_
04-01-2013, 09:40 PM
#include <16F877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use fast_io(b)
#use fast_io(d)
#use fast_io(e)
#BYTE portb=0x6
#BYTE portd=0x8
#BYTE porte=0x9
#bit b7=portb.7
int8 a[3]={0x01,0x38,0x0E};
int16 n,p;
int8 t,tam,i,k;
void xuatlcd();
void khoitao();
void ngat();
#INT_CCP1
void ngat()
{
k=1;
t=0;
}
void main()
{
enable_interrupts(int_CCP1);
enable_interrupts(GLOBAL);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_4);
setup_ccp2(CCP_CAPTURE_RE);
setup_ccp1(CCP_CAPTURE_FE);
set_timer1(0);
SET_TRIS_c(0b01111111);
SET_TRIS_e(0);
SET_TRIS_d(0);
for (i=0;i<=2;i++)
{
tam=a[i];
khoitao();
}
while(1)
{
if(input(pin_c1)&&t==0)
{
set_timer1(0);
t++;
k=0;
}
if(k==1)
{
n=CCP_2;
p=(n*0.8)/58;
tam=0x80;
khoitao();
tam=(p/100)+48;
xuatlcd();
tam=(p%100)/10+48;
xuatlcd();
tam=(p%100)%10+48;
xuatlcd();
t=0;
}
}
}
void khoitao()
{
porte=0b100;
portd=tam;
porte=0b000;
delay_ms(20);
}

void xuatlcd()
{
porte=0b101;
portd=tam;
porte=0b001;
delay_ms(20);
}