为什么这个pwm程序不输出方波怎么可以输出方波【已解答】
voidInitEv(void){EALLOW;//在向EALLOW保护型寄存器中写数据前,需要执行该指令//来解除保护GpioMuxRegs.GPAMUX.all=0x...
void InitEv(void){ EALLOW; //在向EALLOW保护型寄存器中写数据前,需要执行该指令 //来解除保护 GpioMuxRegs.GPAMUX.all=0x00FF;//低八位为外设功能 高八位I/O功能 EDIS; //执行该指令后,任何对EALLOW保护型寄存器的写入操作都奖被禁止 EvaRegs.EVAIFRA.all = 0xFFFF; // 清除中断标志 EvaRegs.T1PR= 2500; //定时器1周期值,定时0.4us*2500=1ms EvaRegs.T1CMPR =XPWM; //比较值 EvaRegs.T1CNT = 0; /* timer1 count is zero */ EvaRegs.T1CON.all = 0xF54E; //增模式, TPS系数80M/32=2.5M,T1使能, EvaRegs.ACTR.all = 0x0006; //PWM1,2低有效 EvaRegs.DBTCONA.all = 0x0534; //使能死区定时器1,分频80M/32=2.5M,死区 //时间5*0.4us=2us EvaRegs.COMCONA.all = 0xA600; //比较控制寄存器 EvaRegs.EVAIMRA.all = 0x0080;//EvaRegs.GPTCONA.all = 0x0859; /* gp timer control register *///EvaRegs.T1CNT = 0; /* timer1 count is zero */// EvaRegs.T1CON.all = 0x1f42;// EvaRegs.T1PR = 0x7fff;// EvaRegs.T1CMPR = 0x3fff;}
展开
4个回答
展开全部
定时器本身的比较功能输出PWM是在T1PWM/T1CMR引脚输出EV模块比较单元输出PWM是在pwm1,pwm2,pwm3,pwm4,pwm5.pwm6,引脚输出。他们之间的寄存器设置不同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
版主和秋风说得很好。仔细看看书后就不会混淆通过定时器本身的比较和事件管理器模块的比较单元输出PWM波形的错误了。关键还是要仔细看书。呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-24
展开全部
真是豁然开朗啊,昨天下午跟楼主一样,在实验室调了半天也没输出pwm波啊,郁闷!终于知道了,真该好好看书了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-24
展开全部
板主的*ACTRA = 0x0099; //PWM1引脚高有效 PWM2低有效 PWM3引脚高有效 PWM4低有效 配对好像高低电平说反了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询