主题中讨论的其他器件: MSP-TS430PW14
工具/软件:Code Composer Studio
您好!
我在一个新项目(电机驱动器)中使用了使用 MSP430F2012的非常旧的设计
对 ADC10进行编程时、我发现使用 CCS 中的拆分函数进行检查时、正确的值会写入 ADC10CTL1寄存器、但不会读回相同的值。
ADC10CTL1寄存器只显示值0x0002、不管我对它进行何种编程。
根据 MSP430F2xx 用户指南、这是一个 r/w 寄存器、我希望读回我写的内容(正如 ADC10CTL0所做的那样)。
我在 定时器 A ISR 中的 ADC10SC 位触发的4个通道序列中使用 ADC10。 Timer-A ISR 运行正常。
用于设置 ADC10SC 位的编程为:ADC10CTL0 |= ADC10SC;
ADC10 ISR 是第一次访问、之后不再访问、因此 ADC 似乎不再生成中断。
初始化后不修改中断标志
ADC10寄存器的编程如下
ADC10CTL0 =(SREF_0 + ADC10SHT_1 + MSC + ADC10ON + ADC10IE + ENC);
ADC10CTL1 =(INCH_3 + ADC10DIV_1 + ADC10SSEL_3 + CONSEQ_1);
ADC10AE0 = 0x0F;
ADC10DTC0 = 0;
ADC10DTC1 = 4;
ADC10SA =(无符号 int)温度值;
_EINT(); //启用全局中断
有什么想法会导致 ADC10CTL1的这种奇怪行为?
PS:我在 EVM 上运行了代码:MSP-TS430PW14