通过MSP430定时器实现led灯的闪烁

姓名:杨汉雄

学号:19011210569

【嵌牛导读】MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。定时器模块是MSP430单片机中非常重要的资源,可以用来实现定时控制、频率测量、脉宽测量以及PWM等信号产生。MSP430单片机定时器资源包括看门狗定时器(WDT)、通用定时器(timer)和实时时钟(RTC)。本次实验主要使用了MSP430的通用定时器资源。

【嵌牛鼻子】MSP430通用定时器控制寄存器配置及定时器

【嵌牛正文】

        本次实验使用的时MSP430F6638 32位嵌入式单片机系统,该系统含有的定时器资源有:看门狗定时器(WDT);实时时钟(RTC)A,B,C;16位定时器A,B,D;本次实验通过使用通用定时器A及相应的定时器中断来实现led灯定时闪烁的功能。6638的time_A具有以下特性:

(1)拥有停止模式、加计数模式、加/减计数模式、重复计数模式四种计数模式;

(2)输入时钟可以有多种选择,可以选择快时钟、慢时钟和外部时钟;

(3)可配置的捕获/比较寄存器多达7个;

(4)可配置的PWM输出;

(5)异步输入和同步锁存,不仅能捕获外部事件发生的时间,还可以捕获外部事件发生的高低电平;

(6)快速响应time_A中断的中断向量寄存器;

(7)8种输出方式选择;


6638定时器A模块图

        从图中可以看出time_A定时器的内部输入时钟可由TASSEL寄存器控制,在通过ID及IDEX寄存器的分频之后成为16计数器的输入时钟。计数器的四种计数模式选择由MCx寄存器控制:

MCx=00——停止模式;

MCx=01——增计数模式;

MCx=10——连续计数模式;

MCx=11——重复计数模式;

        本次实验使用的是增计数模式,在增计数模式下,比较寄存器TAxCCR0用作Timer_A增计数模式的周期寄存器。由于TAxCCR0为16位寄存器,所以在该模式下,定时器A连续计数值应小于0FFFFh。TAxCCR0的数值定义了定时的周期,计数器TAR可以增计数到TAxCCR0的值,当计数值与TAxCCR0的值相等(或定时器值大于TAxCCR0的值)时,定时器复位并从0开始重新计数。当定时器计数值计数到TAxCCR0时,置位CCR0中断标志位CCIFG。值得注意的是,若要使用定时器溢出中断,则需通过TAxCTL寄存器中的TAIE位来使能,溢出中断时TAIFG。所以在中断服务函数中需要对中断源进行判断,由于本次实验中只是用了一个中断源,所以可以不加中断源判断程序。


定时器led源程序

        本次实验led配置在6648单片机的GPIO4.5口,由于CCR0的计数最大值只有16位,即0xffff,要实现一秒的计数会导致计数器溢出,程序中使用了一个count来和CCR0组成一个2级结构的计数器,第一级CCR0计数定时为50ms,第二级count计数为(20*第一级计数时间),这样就能实现1秒定时。

你可能感兴趣的:(通过MSP430定时器实现led灯的闪烁)