请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR2355 主题中讨论的其他器件:MSP-EXP430FR2355
工具/软件:Code Composer Studio
您好、下面是我的代码、当计时器中断发生时、DAC (配置的 SAC)应提供未发生的模拟输出。
任何人都能提供帮助。
#include unsigned int DAC_data=0x0; int main (void) { WDTCTL = WDTPW | WDTHOLD;//停止 WDT P1SEL0 |= BIT1;//选择 P1.1作为 OA0O 函数 P1SEL1 |= BIT1;// OA 用作 DAC 的缓冲 器//PITR|= BIT1;/3DOUT1|= BIT1 ;// //禁用 GPIO 上电默认高阻抗模式以激活 //先前配置的端口设置 PM5CTL0 &=~LOCKLPM5; //配置参考模块 PMMCTL0_H = PMMPW_H;//解锁 PMM 寄存器 PMMCTL2 = INTREFEN | REFVSEL_2;// 启用内部2.5V (同时启用 PMMENL2)! //轮询直至内部基准稳定 SAC0DAC = DACSREF_1 + DACLSEL_2 + DACIE;//选择 int Vref 作为 DAC 基准(DAC 内部基准+加载边沿上的数据作为定时器+中断使能) SAC0DAT = DAC_DATA;//初始 DAC 数据 SAC0DAC || DACEN; //启用 DAC SAC0OA = NMUXEN + PMUXEN + PSEL_1 + NSEL_1;//选择正负引脚输入 SAC0OA |= OAPM;//选择低速和低功耗模式 SAC0PGA = MSEL_1;//将 OA 设置为缓冲模式 SAC0OA |= SACEN + OAEN; //启用 SAC 和 OA // 32768一秒脉冲 // 16384半秒脉冲 // 8192 0.25s // 4096 0.125s // 2048 0.0625s // 1024 0.03125s 31.25ms // 512 512 for 0.015625s 15.625ms TB0CCTL0 |= CCIE;// TBCCR0 =启用中断;// TBCCR0 =启用中断 TB0CTL |= TBSSEL_ACLK | MC__UP |TBCLR;// SMCLK,连续模式 _ bis_SR_register (LPM0_Bits | GIE);//输入 LPM3,带中断 //_ no_operation ();//用于调试 } //计时器 B0中断服务例程#PM0_BITE_0 ; // TimerB0 = void ^= TIDAC0_DATA_NO_DATA (void );// TIB0 = TIDAC0_NO_NO_DATA = 0 = 0 = 0 = NO_NO_NO_NO_OPERATION (void) // DAC12输出正斜坡 }