zxjtam 发表于 2005-10-4 21:09:13

直流电机pwm调速时间的控制

/*前段时间在此处发表了关于直流电机pwm调速时间的控制的一个帖子,现已经改好,并测试通过

现修改后贴出来!

IAR软件编程

*/

#include <stdio.h>

#include <iom16.h>

#include <intrinsics.h>



staticlong time;

struct PUMP_DATA {



unsigned long pump_pwm;

unsigned long pump_time;

};

struct PUMP_DATA pumdate,*pump_p=&pumdate;

#pragma vector=TIMER1_OVF_vect//应该改成这个中断0.005s

__interrupt void timer1(){

time++;

if(time>=pump_p->pump_time)

{

DDRD_DDD4=0;

OCR1B=0;

}

}

void pump_bsp(struct PUMP_DATA *p_pump)

{

DDRD_DDD4=1;

OCR1B=p_pump->pump_pwm;

}

void init_time1()

{

   TCCR1A=0X20;

   TCCR1B=0X11;

   ICR1=20000;

   TIMSK=TIMSK|(1<<TOIE1);

   __enable_interrupt();

}

void main()



{ OSCCAL=0xA7;   //8MHZ频率校正



pump_p->pump_pwm=19000;//PWM占空比

pump_p->pump_time=12000; //定时运行的时间 1分钟

init_time1();

pump_bsp(pump_p);



}


-----此内容被zxjtam于2005-10-08,11:02:57编辑过

zcl843 发表于 2005-10-5 16:34:12

直流电机是用什么驱动的呢?LN298吗?

kissme 发表于 2005-10-5 22:11:43

把pwm输出0不就停了?

microcon 发表于 2006-8-18 14:07:21

有没有做PID调节了,速度反馈了?
页: [1]
查看完整版本: 直流电机pwm调速时间的控制