工具/软件:Code Composer Studio
大家好、
我将使用资源浏览器中 SD24转换器的以下示例代码:
#include
#include
/*用于存储 SD24_B 转换结果的数组*/
unsigned int results[3];
int main (空)
{
WDTCTL = WDTPW | WDTHOLD; //停止 WDT
SD24BCTL0 |= SD24SSEL_1; //选择内部 REF
SD24BCTL0 |= SD24REFS; //选择 SMCLK 作为 SD24_B 时钟源
SD24BCCTL0 = SD24SNGL | SD24SCS_5; //单次转换、组1
SD24BCCTL1 = SD24SNGL | SD24SCS_5; //单次转换、组1
SD24BCCTL2 = SD24SNGL | SD24SCS_5; //单次转换、组1
SD24BIE |= SD24IE2; //启用通道2中断
_DELAY_CYCLES (0x3600); // 1.5V REF 启动延迟
while (1)
{
SD24BCTL1 |= SD24GRP1SC; //将位设置为开始转换
_bis_SR_register (LPM0_bits | GIE);//输入 LPM0、带中断
SD24BCTL1 &=~SD24GRP1SC; //为下一次转换清除位
__no_operation(); //在此设置断点
printf ("Result1:%d \n"、results[0]);
printf ("Result2:%d \n"、results[1]);
printf ("Result3:%d \n"、results[2]);
}
}
#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=SD24B_vector
_interrupt void SD24BISR (void)
#Elif defined (_GNU_)
void __attribute__((interrupt (SD24B_vector)) SD24BISR (void)
其他
错误编译器不受支持!
#endif
{
开关(SD24BIV)
{
案例 SD24BIV_SD24OVIFG: // SD24MEM 溢出
中断;
案例 SD24BIV_SD24TRGIFG: // SD24触发 IFG
中断;
案例 SD24BIV_SD24IFG0: // SD24MEM0 IFG
中断;
案例 SD24BIV_SD24IFG1: // SD24MEM1 IFG
中断;
案例 SD24BIV_SD24IFG2: // SD24MEM2 IFG
结果[0]= SD24BMEMH0; //保存 CH0结果(清除 IFG)
结果[1]= SD24BMEMH1; //保存 CH1结果(清除 IFG)
结果[2]= SD24BMEMH2; //保存 CH2结果(清除 IFG)
中断;
}
_BIC_SR_REGISTER_ON_EXIT (LPM0_BITS); //退出 LPM0
}
我将获得8位分辨率的输出结果。
我有几个问题:
1) 1)如何将基准电压更改为外部基准(=3V)? 如果我使用外部基准、我是否必须将电容器额外连接到 MCU?
2) 2)如何将分辨率从8位更改为10位?
3) 3)是否有方法将内部基准电压从1.15V (从数据表)更改为3V?
4) 4)我有单端输入进入 SD24端口的正输入端。 因此、我将所有3个输入的负输入连接到接地端。 这是否起作用?
谢谢、
评估