![]() |
![]() |
#11 |
Đệ tử 4 túi
|
các bác cho em hỏi.em viết 1 đoạn code PWM nhỏ và mô phỏng.
lúc để value là hằng số thì mô phỏng đúng. còn để value là biến số thì mô phỏng ko chạy gì hết.em mất cả buổi mà ko biết tại sao? các sư huynh chỉ giáo!!em dùng 1 phím nhấn để tăng duty!! Code:
#include<16f877a.h> #fuses XT,NOPROTECT,NOLVP,NOWDT #use delay(clock=4000000) #byte portb=0x06 int8 value=0,period=200,percent=0; #int_RB void inter_RB() { if(percent==100) { percent=100; } else { percent=percent+5; } } main() { set_tris_c(0x00); set_tris_b(0b00010000); portb=0x00; enable_interrupts(INT_RB); enable_interrupts(global); ext_int_edge(l_to_h); setup_CCP1(CCP_PWM); setup_timer_2(t2_div_by_1,199,1); while(1) { value=percent*period/100; set_pwm1_duty(value); } } thay đổi nội dung bởi: namqn, 11-08-2008 lúc 06:55 PM. |
![]() |
![]() |
|
|