-
你是将ADC10MEM赋值给了个char 型吧
-
嗯,我就是怕直接写flash会不会把程序给擦除了,现在用#pragma location = 0xfc00定义个数组,这样就不会擦除主程序了
-
哦,你的意思 是新建一个数组,把DTC的值存在数组所在的地址上,这样不错,不会出现覆盖问题我试试,谢谢了:victory:
-
不好意思 前面写错字, 应该是GIE 和ADC10IE ,中断标志位是ADC10IFG
再补充下如果你开了DTC的话,中断一次后要么你重写ADC10SA,要么你就在程序前先写
ADC10DTC0 |= ADC10CT;
就可以再进入中断了
要不然的话你就只能进一次中断,以后就一直不能进中断的
这是我个人调试的结果 ,不一定对,希望大家一直讨论。。一直学习
-
楼主的例程没有进中断,默认是单通道单次的,要中断的话,前提是你先开IEG 和ADC10IE这两个位,然后再分别看否开了DTC,
如果没开DTC的话:
单通道单次是每检测完一次进一次中断
单通道多次的话我测试是一直在中断 不出去的
序列通道 单次我调试了下是每测一个通道 进一次中断
序列通道 多次的话我没试了,不过我想应该是一直在中断 中的
如果你开了DTC的话,就要等到你设置的ADC10DTC1中的n次检测完才会中断 ,
-
我刚帮调试了下:
你的ADC10SA赋值错误,你给他赋的是0,应该是ADC10SA = (int)(data1);
不过 你的这个调试的时候 程序 只能进入一次中断,我也不知道 是怎么回事
至于DTC 你只要把ADC10DTC1给个值
ADC10SA给个地址 ,再使能ADC10CT位使他连续可用就OK了
还有个问题是你没有使用ADCAE0使能通道P1.2,而且你可以 不用设置P1SEL