注册会员
- 积分
- 133
- 威望
- 90
- 贡献
- 19
- 兑换币
- 39
- 注册时间
- 2014-12-24
- 在线时间
- 12 小时
- 毕业学校
- 青岛科技大学
|
AD 初始化
void InitAD(void)
{
ATD0DIEN=0x00; // 禁止数字输?
ATD0CTL1=0x00; // 选择AD 通道为外部触发,8 位精度,采样前不放电
ATD0CTL2=0xC0; // 标志位自动清零,禁止外部触发, 禁止中断
ATD0CTL3=0x2C; // 右对齐无符号,每次转换5 个序列, No FIFO, Freeze 模式下继续转
ATD0CTL4=0xE1; // 采样时间为4 个AD 时钟周期,PRS=1,ATDClock=24/(2*(1+1))=4MHz
ATD0CTL5=0x33; // 特殊通道禁止,连续转换,多通道转换,输入通道3
}
主函数里
while(!ATD0STAT2L_CCF3); //等待转换结束,退出循环
LeftSt1=(byte)(ATD0DR0H); //通道4对应 AD1 左
while(!ATD0STAT2L_CCF4);
RightSt1=(byte)(ATD0DR1H);
while(!ATD0STAT2L_CCF5); //等待转换结束,退出循环
LeftSt2=(byte)(ATD0DR2H); //通道4对应 AD1 左
while(!ATD0STAT2L_CCF6);
RightSt2=(byte)(ATD0DR3H);
while(!ATD0STAT2L_CCF7);
brake=(byte)(ATD0DR4H);
第五个电感传进来的值赋值给brake,但是第五个电感即使不差,实时检测的时候,brake还是有值的,用ATD0DR4H的时候跟LeftSt1 相同,用ATD0DR5H的时候跟RightSt1 相同,用ATD0DR6H的时候跟LeftSt2 相同,用ATD0DR7H的时候跟RightSt2 相同
求大神讲解 这是为啥?
再次感谢论坛各位元老 大神们的细心讲解,车已经能够顺畅的跑完了。这个地方还是弄不太懂,还望元老大神们教导啊!!
|
|