首先说说问题, 感觉这个Code Compose Studio 比较奇怪 #include "TFT\TFT_Driver.h"
找不到文件, 无法打开
没有include 仅在同一工程下就可以使用函数 每次运行程序结果不同 下面给出一个使用ADC的实例: ADC初始化函数: - void ConfigureAdcTempSensor(void)
- {
- /* Configure ADC Temp Sensor Channel */
- ADC10CTL1 = INCH_10 + ADC10DIV_0 + CONSEQ_2; // Temp Sensor ADC10CLK/4
-
- ADC10CTL0 = SREF_1 + ADC10SHT_3 + MSC + REFON + ADC10ON + ADC10IE;
- // __delay_cycles(1000); // Wait for ADC Ref to settle
- ADC10DTC1=0xfe;
-
- ADC10CTL0&=~ENC;
- while(ADC10CTL1&BUSY);
- ADC10SA=0x0200; //(unsigned int)tempMeasured;
- //data buffer start
-
-
- ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
- __bis_SR_register(CPUOFF + GIE); // LPM0 with interrupts enabled
- tempAverage = tempMeasured[0];
- tempCalibrated= tempAverage;
- }
复制代码对于ADC10CTL1的配置, 如果你只采集一个那么就是CONSEQ_2, 使用内部测温就是INCH_10
想要知道更多的操作寄存器的DEFINE 你需要在 MSP430G25XX.h 里面 以及 User Guide 中进行对照 DTC 某种程度上可以控制采样速度 ADC10SA 是start Address , 我使用0x0200 是因为我知道我采集数据的起始地址是它, 在你的loop中需要加入这两行代码使得模拟值持续更新 ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
__bis_SR_register(CPUOFF + GIE); // LPM0 with interrupts enabled 第二句话是指, 让系统进入休眠状态, 降低功耗, 这时候我们的CPU是停止工作的, 进入中断
中断函数:
- // ADC10 interrupt service routine
- #pragma vector=ADC10_VECTOR
- __interrupt void ADC10_ISR (void)
- {
- __bic_SR_register_on_exit(CPUOFF); // Return to active mode
- }
复制代码 这里面只有一句话, 它的意思是结束休眠状态, 进入工作
|