实现轨迹倒不是什么问题,但是怎样定时啊,我用T1和T3来分别进行定时,但是定时之后没有定时的效果。。。给位帮我看看我的代码。提提意见。
EALLOW;
GpioMuxRegs.GPAMUX.all=0x0040; //先向右转动
GpioMuxRegs.GPBMUX.all=0x0000; //上下不发生转动
EDIS;
EvaRegs.T1CON.all=0x1002|0x0040;
for(i=0;i<10;)
{
i++;
}
EALLOW;
GpioMuxRegs.GPBMUX.all=0x0000; //左右不发生转动
GpioMuxRegs.GPAMUX.all=0x00C0; //向上转动
EDIS;
EvbRegs.T3CON.all=0x1002|0x0040;
for(i=0;i<10;)
{
i++;
}
EALLOW;
GpioMuxRegs.GPAMUX.all=0x0040; //先向左转动
GpioMuxRegs.GPBMUX.all=0x0000; //上下不发生转动
EDIS;
EvaRegs.T1CON.all=0x1002|0x0040;
for(i=0;i<10;)
{
i++;
}
EALLOW;
GpioMuxRegs.GPBMUX.all=0x0000; //左右不发生转动
GpioMuxRegs.GPAMUX.all=0x0040; //向下转动
EDIS;
EvbRegs.T3CON.all=0x1002|0x0040;
for(i=0;i<10;)
{
i++;
}
这里是我EV和EB模块的设置
EvaRegs.T1PR=0xFFFF; //定时器1周期
EvaRegs.T1CMPR=0x7FFF; //定时器1比较值
EvaRegs.T1CNT=0x0000; //定时器1计数器
EvaRegs.T1CON.all=0x1002; //设置技术模式为连续曾,使能定时器和比较操作,采用内部时钟HSPCLK
EvaRegs.T2PR=0xFFFF;
EvaRegs.T2CMPR=0xF7FF; //定时器2周期
EvaRegs.T2CNT=0x0000; //定时器2比较值
EvaRegs.T2CON.all=0x1002; //定时器2计数器
EvaRegs.GPTCONA.bit.TCMPOE=1; //设置T1PWM和T2PWM
//通过逻辑产生T1/T2 PWM
EvaRegs.GPTCONA.bit.T1PIN=2; //GP定时器1比较时低有效
EvaRegs.GPTCONA.bit.T2PIN=2; //
EvbRegs.T3PR=0xFFFF; //定时器1周期
EvbRegs.T3CMPR=0x7FFF; //定时器1比较值
EvbRegs.T3CNT=0x0000; //定时器1计数器
EvbRegs.T3CON.all=0x1002; //设置技术模式为连续曾,使能定时器和比较操作,采用内部时钟HSPCLK
EvbRegs.T4PR=0xFFFF;
EvbRegs.T4CMPR=0xF7FF; //定时器2周期
EvbRegs.T4CNT=0x0000; //定时器2比较值
EvbRegs.T4CON.all=0x1002; //定时器2计数器
EvbRegs.GPTCONB.bit.TCMPOE=1; //设置T1PWM和T2PWM
//通过逻辑产生T1/T2 PWM
EvbRegs.GPTCONB.bit.T3PIN=2; //GP定时器1比较时低有效
EvbRegs.GPTCONB.bit.T4PIN=2;
|