⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untitled1.c

📁 msp430f449功能模块的程序
💻 C
字号:
//产生不同时间间隔的例子 
#include<msp430x44x.h>
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;//停止看门狗寄存器
TACTL=TASSEL0+TACLR;//设置TimerA控制寄存器,时钟源选择辅助时钟ACLK,计数器清零。

//设置捕获比较控制寄存器CCTLx,捕获比较数据寄存器CCRx
CCTL0=CCIE;//设置捕获比较控制寄存器,零设置,捕获比较中断使能
CCR0=4096;//设置捕获比较寄存器初值晶体32768频率的1/8
CCTL1=CCIE;//设置捕获比较控制寄存器,1设置,捕获比较中断使能
CCR1=8192;//设置捕获比较寄存器初值晶体32768频率的1/4
CCTL2=CCIE;      
CCR2=16384;//设置捕获比较寄存器初值晶体32768频率的1/2  
TACTL|=MC1;//模式控制 连续计数模式(常用于产生于不同时间间隔)
 
P2DIR|=0X02;//P2口第二位输出
P3DIR|=0X02;//P3口第二位输出
P4DIR|=0X02;//P4口第二位输出

_EINT();
while(1);
}

#pragma vector=TIMERA1_VECTOR//CCR0和CCR1的中断服务函数,TIMERA1_VECTOR即定时器A的CCR1,CCR2中断向量
__interrupt void Timer_A1(void)
{
if (TAIV==2)//中断向量寄存器 捕获比较1
{P3OUT^=0X02;
CCR1+=8192;}
if (TAIV==4)
{P4OUT^=0X02;
CCR2+=16384;}
}

#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0(void)//CCR0中断服务函数,TIMERA0_VECTOR即定时器A的CCR0中断向量
{
P2OUT^=0X02;
CCR0+=4096;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -