📄 untitled1.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 + -