///////////////////////////////////////////////////////////////////
// msp430G2553的定时器中断控制LED每秒钟进行亮熄变化
///////////////////////////////////////////////////////////////////
#include
void led_init();
void timer_init();
void delay(int);
//----------------------------------
void led_init()
{
P1DIR|=(1<<6); //P1.6为LED
}
//--------------------------
void timer_init()
{
TACCR0 =2500; //计到2500,约20ms
TACTL = TASSEL_2+ID_3+MC_1+TACLR; //设置TIMERA的时钟源为SMCLK(1M),8分频后(125K),计数模式为up,到CCR0再自动从0开始计数
TACCTL0 |= CCIE; // CCR0 interrupt enabled
}
//--------定时器中断函数------------
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A(void)
{
//TACCTL0&=~ CCIE; //关中断
static int cc=0;
cc+=1;
if(cc==50) //1s=1000ms=20*50 定时
{
P1OUT^=(1<<6); //P1.6 LED取反
cc=0;
}
}
//--------延时函数 -------
void delay(int n)
{
unsigned char temp = 0;
unsigned int i=0;
for(i=0;i
{
for(temp=0;temp<33;temp++);
}
}
//************主函数***************************
void main()
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
led_init();
timer_init();
_BIS_SR(GIE); //开总中断
for(;;)
{
;
}
}
关键字:MSP430G2553 定时器 中断实验
引用地址:
MSP430G2553定时器中断实验
推荐阅读最新更新时间:2024-03-16 14:28
STM32系统定时器(SysTick)笔记
一、简介 SysTick:系统定时器,由四个寄存器控制,存在于内核,嵌套在NVIC中,所有的Cortex-M3内核的单片机都具有这个定时器。 二、相应寄存器(这里介绍常用的几个寄存器) ①SysTick控制及状态寄存器(地址:0xE000_E010) 只有上面红色线框柱的位有效,其他位都是保留。 ②SysTick重装载数值寄存器(地址:0xE000_E014) ③SysTick当前数值寄存器(地址:0xE000_E018) 三、结合框图 图中STK_CLK对应的上面的CLKSOURCE,结合RCC时钟树: 当CLKSOURCE位为0时,时钟是AHB
[单片机]
MCS-51单片机定时器和计数器的4种工作方式解析
MCS-51单片机含有2个定时器/计数器,具有4种工作方式。具有两种工作模式(计数器模式和定时器模式) MCS-51单片机含有1个全双工串行口,具有4种工作方式。 TMOD-》定时器/计数器方式控制寄存器 TCON-》定时器/计数器控制寄存器 SMOD-》串行口波特率系数选择位 SCON-》串行口控制寄存器 SBUF -》串行口数据缓冲器 TH0 -》定时器/计数器0(高字节) TL0 -》定时器/计数器0(低字节) TH1 -》定时器/计数器1(高字节) TL1 -》定时器/计数器1(低字节) MCS-51单片机定时器和计数器的4种工作方式解析 一、定时器/计数器 定时器/计数器T0由特殊功能寄存器TH0、TL0
[单片机]
msp430g2231基础定时器设置
本实验的目的是了解用于执行对MSP430 Value Line设备的初始化过程的步骤。在这个练习中,您将编写初始化代码,并运行该设备使用各种时钟资源。 1、写初始化代码 2、运行CPU的MCLK的来源方式:VLO 、32768晶体、DCO 3、主体程序部分 4、观察LED闪光灯速度 MSP430时钟: 1、在MSP430单片机中一共有三个时钟源: 一个LFXT1CLK,为低速/高速晶振源,通常接32.768khz,也可以接(400khz~8Mhz); 一个为XT2CLK,外接标准高速晶振,通常是接8Mhz,也可以接(400khz~8Mhz); 还有一个叫DCOCLK,为内部晶振,有RC震荡回路构成。 2、在MSP430单片
[单片机]
STM32定时器BURST模式
STM32 Burst模式可以方便的设置定时器的预分频值TIMx_PSC寄存器、自动重载值TIMx_ARR寄存器、定时器重复计数寄存器TIMx_RCR寄存器、定时器输出比较寄存器TIMx_CCR寄存器。这样就很容易使用DMA的性能改变定时器的频率、占空比。注意地址值的对应。
[单片机]
NEC单片机 UPD78F9234 16位定时器使用例程
NEC单片机 UPD78F9234 16位定时器使用例程(汇编) ;************************************************* ; Lable def ;************************************************* LED8_MODE EQU PM2.1 LED7_MODE EQU PM2.0 LED6_MODE EQU PM12.0 LED5_MODE EQU PM0.3 LED4_MODE EQU PM0.2 LED3_MODE EQU PM0.1 LED2_MODE EQU PM0.0 LED
[单片机]
MSP430F149;一、TIMEA
定时器A的逻辑图 由下图可以知道定时器有大致两部分: 时钟模块: 捕获比较 定时器模式说明 00:计数器停止 01:计数器从0到taccr0;taccro是手动设定的值 10:计数器从0到0xFFFF(2^16=65536)然后到0再从0到65535,一直循环; 11:计数器从0到taccr0再到0;然后,从0到taccr0再到0;循环0到taccr0再到0;(taccro是手动设定的值) 用到的寄存器介绍 用到的寄存器说明 主要是:时钟源选择;输入时钟分频(比如之前时钟源分频得到的时钟信号,在这里可以再分频,得到需要的震荡频率);时钟模式控制,上面说过的;中断使能和中断标志; 这个就是用来计数的,一个
[单片机]
lpc1114通用定时器-定时功能
下面我们以LED流水灯为例演示定时功能,流水的时间间隔由定时器精确控制。(看了上面的这句话就绕道的童鞋,请不要急着走,接下来讲的不是怎么实现流水灯,而是怎么样定时。) 下面我们以16位定时器0来演示。 新建一个工程,如下图所示: 在timer.h文件中,输入以下代码: #ifndef __NXPLPC11xx_TIME_H__ #define __NXPLPC11xx_TIME_H__ extern void T16B0_init(void); extern void T16B0_delay_ms(uint16_t ms); extern void T16B0_delay_us(uint16_t us); #
[单片机]
具有四个输出并基于微处理器的双定时器
基于Freescale半导体公司MCC908QY型8位闪存微型计算机的图1所示电路,可提供一个低成本通用双定时器,该定时器可代替单触发电路。您可以通过修改汇编语言软件来满足特定应用要求。该电路采用微处理器 IC1的内部12.8MHz 时钟振荡器。内部时钟除以4即获得3.2 MHz时钟频率,此频率进一步除以定时器预定比例 64即获得50 kHz时钟。将定时器模数计数器除以 50000,可获得可产生1次/秒实时中断与主定时间隔 的1Hz 时基。
每组4个的两组开关(S3至S6及S7至S10),分别以1"16秒的递量设置时间间隔 t1和 t2。尽管该图只给出了单独的DIP 开关,但您也可采用十六进制编码的旋钮式开关来设置时
[单片机]