高级会员
- 积分
- 740
- 威望
- 326
- 贡献
- 80
- 兑换币
- 0
- 注册时间
- 2010-5-8
- 在线时间
- 167 小时
|
写了个xs128的程序,想用AD中断服务函数,结果仿真时发现老进中断函数,可能是标志没清好,我试了好多种方法,就是找不到问题
这是设置
ATD0CTL1=0x00; //8位精度,采样前不放电
ATD0CTL2=0x42; //标志位自动清零,禁止外部触发,中断允许
ATD0CTL3=0x80; //右对齐无符号,每次转换16个序列, No FIFO, Freeze 模式下继续转
ATD0CTL4=0x02; //采样时间为4个AD时钟周期,PRS=3,ATDClock=40MHz/8
ATD0DIEN=0x00; //禁止数字输入
用PIT实现10ms定时:
void interrupt 66 PIT_ISR(void)
{
ATD0CTL5 = 0x30; //启动AD转换
PITTF|=0x01; //清溢出标志
}
void interrupt 22 ATD_ISR(void)
{
ATD_Read();
ATD_flag = 1;
}
仿真时发现程序大部分时间在AD中断服务程序里面循环进行
有谁知道这是为什么? |
|