![]() |
|
Tài trợ cho PIC Vietnam |
||||||||
| PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
![]() |
|
|
Ðiều Chỉnh | Xếp Bài |
|
|
|
|
#1 |
|
Đệ tử 1 túi
Tham gia ngày: May 2008
Bài gửi: 22
: |
chào mọi người, mấy hôm nay, em làm xong mạch test rôi, Pickit2 cug chạy rồi, em cũng đang bắt đầu làm 18f4431 điều khiển động cơ đây,
code: power_pwm đây, nạp xong nó im re, các bác giúp e với, ================================================== Code:
int16 duty1=2000;
int16 ref=0,out=0;
signed int16 udk=0, error=0;
void main()
{
setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
delay_ms(1000);
setup_power_pwm_pins(PWM_OFF,PWM_OFF, PWM_OFF,PWM_OFF);
setup_power_pwm_pins(PWM_COMPLEMENTARY,PWM_COMPLEMENTARY, PWM_COMPLEMENTARY,PWM_COMPLEMENTARY);
setup_power_pwm(PWM_CLOCK_DIV_4|PWM_FREE_RUN|PWM_DEAD_CLOCK_DIV_4,1,10000,1000,0,1,10);
set_power_pwm0_duty(2000);
//set_power_pwm2_duty(2000);
while(1)
{
set_adc_channel(0);
delay_us(10);
ref=read_adc();
set_adc_channel(1);
delay_us(10);
out=read_adc();
error=ref-out;
udk=5*error;
if (udk>2000)
{
udk=2000;
}
if (udk<-2000)
{
udk=-2000;
}
duty1=2000+udk;
set_power_pwm0_duty(duty1);
}
}
anh nào giúp em với, còn đọc encoder nữa. em chưa viết được. chân thành cảm ơn các huynh. thay đổi nội dung bởi: namqn, 26-05-2008 lúc 10:40 PM. |
|
|
|
|
|
#2 |
|
Đệ tử 6 túi
Tham gia ngày: Mar 2006
Bài gửi: 129
: |
Bạn ko up sơ đồ mạch thì làm sao có thể giúp bạn. Bạn cũng ko cho biết là im re là ko có xung pwm trên chân PWM0 PWM1 hay là có xung nhưng động cơ ko chạy
Có 1 số điểm trong setup của bạn chưa hợp lý: _ Giá trị Initial PTMR của bạn là 10000, trong khi giá trị PTPER là 1000. _ Trước khi set duty bạn nên overide false trên các chân PWM0 PWM1 |
|
|
|
![]() |
|
|
Similar Threads
|
||||
| Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
| xin bootloader của pic18f4331 | hoangminh1234 | Tiny Bootloader | 30 | 24-12-2011 02:38 PM |
| trao doi | truonggiang | Trao đổi ngoài luồng | 2 | 20-12-2006 11:30 AM |