zxjtam:
/*前段时间在此处发表了关于直流电机pwm调速时间的控制的一个帖子,现已经改好,并测试通过现修改后贴出来!IAR软件编程*/#include#include#includestatic longtime;structPUMP_DATA{ unsignedlongpump_pwm; unsignedlongpump_time;};structPUMP_DATApumdate,*pump_p=&pumdate;#pragmavector=TIMER1_OVF_vect //应该改成这个中断0.005s__interruptvoidtimer1(){ time++; if(time>=pump_p->pump_time) { DDRD_DDD4=0; OCR1B=0; }}voidpump_bsp(structPUMP_DATA*p_pump){ DDRD_DDD4=1; OCR1B=p_pump->pump_pwm; }voidinit_time1(){ TCCR1A=0X20; TCCR1B=0X11; ICR1=20000; TIMSK=TIMSK|(1pump_time=12000;//定时运行的时间1分钟 init_time1(); pump_bsp(pump_p);}