社区首页
技术讨论创新帖
全部新帖
资料区
社区活动
联系管理员
★ 社区积分制度
★ 新手必读
★ 申请版主★
请
登录
后使用快捷导航
没有帐号?
注册
首页
|
电子技术
|
嵌入式
模拟电子
单片机
电源管理
传感器
半导体
电子应用
|
工业控制
物联网
汽车电子
网络通信
医疗电子
手机便携
测试测量
安防电子
家用电子
机器人
新能源
电子头条
|
社区
|
论坛
测评
博客
大学堂
|
下载
|
下载中心
电路图
精品文集
电路图
|
参考设计
|
Datasheet
|
活动
|
直播
datasheet
datasheet
文章
搜索
登录
注册
论坛
切换旧版
电子工程世界-论坛
»
论坛
›
专业技术中心
›
TI技术论坛
›
微控制器 MCU
›
MSP430单片机学习小记--基础定时器
返回列表
发新帖
回复
阅
10125
|
回
0
fish001
当前离线
纯净的硅(中级)
最后登录
2023-10-7
在线时间
253 小时
威望
1125分
芯积分
830分
(兑换)
E金币
0枚
(兑换)
(兑换)
好友
0
fish001
3836
帖子
19
TA的资源
纯净的硅(中级)
+ 好友
私信
楼主
发表于2018-3-11 17:53
只看该作者
MSP430单片机学习小记--基础定时器
[复制链接]
基于MSP430单片机,TI公司采用的是模块化的内部结构,每个模块,在各个不同型号的单片机内都是相同的,相同的寻址,相同的操作方式,模块有限,于是一个一个开始进行整理。
本文引用地址:
http://www.eepw.com.cn/article/201608/295905.htm
第一个模块:基础定时器
参考资料:数据手册 ,使用手册 ,示例程序,以及那份特别特别有用的头文件。
Exampli Code:
进入中断示例程序
/************************************************************/
1;时钟源为ACLK,为单片机提供1/4S定时中断,LCD提供512HZ刷新频率
BTCTL=BT_ADLY_250+BT_fLCD_512; //250MS延时加512HZ刷新频率。
备注:MSP430上电复位后,BT的寄存器值并不会恢复成一个默认值
而是保持不变,因此,每次上电的时,均要进行配置,而且最好直接采用赋值
语句。一条语句足矣
/************************************************************/
/************************************************************/
/************************************************************/
/************************************************************/
Void main(void)
{
WDTCTL=WDTPW+WDTHOLD; //close the wdtdog
FLL_CTL0&= ~XTS_FLL; //可省略,默认选择低频晶振
FLL_CTL0|=XCAP18PF; //配置内部晶振
P1DIR|=BIT0; //OUTPUT
BTCTL=BT_ADLY_250+BT_fLCD_512; //250MS延时加512HZ刷新频率。
IE2|=BTIE; //打开中断
__EINT();
While(1)
{;}
}
/************************************************************/
#pragma vector=BASICTIMER_VECTOR
__interrupt void basic_timer_ISR(void)
{
P1OUT ^= 0x01; // Toggle P1.0
}
/************************************************************
参考的头文件:
* BASIC TIMER 基础定时器的功能概述
BASIC TIMER 能在无需CPU干扰的情况下产生2的N次方个定时周期
如果我们采用32768KHZ =1/2^15次方,所以,最长的定时时间可以达到
2S钟
************************************************************/
#define __MSP430_HAS_BT__ /* Definition to show that Module is available */
#define BTCTL_ (0x0040u) /* Basic Timer Control * /SFR
DEFC( BTCTL , BTCTL_)
/* 位定义The bit names have been prefixed with "BT" */
#define BTIP0 (0x01)
#define BTIP1 (0x02)
#define BTIP2 (0x04)
#define BTFRFQ0 (0x08)
#define BTFRFQ1 (0x10)
#define BTDIV (0x20) /* fCLK2 = ACLK:256 */
#define BTHOLD (0x40) /* BT1 is held if this bit is set *,如果这个位置1,则暂停/
利用 BTCTL|=BTHOLD; //可以使其暂停。
#define BTSSEL (0x80) /* fBT = fMCLK (main clock) 位定义*/
备注:BTSSEL ,与BTDIV 确定是否对信号源进行分频。分频后它的最长延时如果使用32768KHZ的话,可以达到2S
注:为LCD提供的刷新频率没有使用分频。
快捷定义:
#define BTCNT1_ (0x0046u) /* Basic Timer Count 1 */
DEFC( BTCNT1 , BTCNT1_)
#define BTCNT2_ (0x0047u) /* Basic Timer Count 2 */
DEFC( BTCNT2 , BTCNT2_)
/* Frequency of the BTCNT2 coded with Bit 5 and 7 in BTCTL */
#define BT_fCLK2_ACLK (0x00)
#define BT_fCLK2_ACLK_DIV256 (BTDIV)
#define BT_fCLK2_MCLK (BTSSEL)
/* Interrupt interval time fINT coded with Bits 0-2 in BTCTL */
#define BT_fCLK2_DIV2 (0x00) /* fINT = fCLK2:2 (default) */
#define BT_fCLK2_DIV4 (BTIP0) /* fINT = fCLK2:4 */
#define BT_fCLK2_DIV8 (BTIP1) /* fINT = fCLK2:8 */
#define BT_fCLK2_DIV16 (BTIP1+BTIP0) /* fINT = fCLK2:16 */
#define BT_fCLK2_DIV32 (BTIP2) /* fINT = fCLK2:32 */
#define BT_fCLK2_DIV64 (BTIP2+BTIP0) /* fINT = fCLK2:64 */
#define BT_fCLK2_DIV128 (BTIP2+BTIP1) /* fINT = fCLK2:128 */
#define BT_fCLK2_DIV256 (BTIP2+BTIP1+BTIP0) /* fINT = fCLK2:256 */
/* Frequency of LCD coded with Bits 3-4 */
#define BT_fLCD_DIV32 (0x00) /* fLCD = fACLK:32 (default) */
#define BT_fLCD_DIV64 (BTFRFQ0) /* fLCD = fACLK:64 */
#define BT_fLCD_DIV128 (BTFRFQ1) /* fLCD = fACLK:128 */
#define BT_fLCD_DIV256 (BTFRFQ1+BTFRFQ0) /* fLCD = fACLK:256 */
/* LCD frequency values with fBT=fACLK */
#define BT_fLCD_1K (0x00) /* fACLK:32 (default) */
#define BT_fLCD_512 (BTFRFQ0) /* fACLK:64 */
#define BT_fLCD_256 (BTFRFQ1) /* fACLK:128 */
#define BT_fLCD_128 (BTFRFQ1+BTFRFQ0) /* fACLK:256 */
//ACLK提供时钟源,来提供LCD的刷新频率。
/* LCD frequency values with fBT=fMCLK */
#define BT_fLCD_31K (BTSSEL) /* fMCLK:32 */
#define BT_fLCD_15_5K (BTSSEL+BTFRFQ0) /* fMCLK:64 */
#define BT_fLCD_7_8K (BTSSEL+BTFRFQ1+BTFRFQ0) /* fMCLK:256 */
////MCLK提供时钟源,来提供LCD的刷新频率。
/* with assumed vlues of fACLK=32KHz, fMCLK=1MHz */
/* fBT=fACLK is thought for longer interval times */
#define BT_ADLY_0_064 (0x00) /* 0.064ms interval (default) */
#define BT_ADLY_0_125 (BTIP0) /* 0.125ms " */
#define BT_ADLY_0_25 (BTIP1) /* 0.25ms " */
#define BT_ADLY_0_5 (BTIP1+BTIP0) /* 0.5ms " */
#define BT_ADLY_1 (BTIP2) /* 1ms " */
#define BT_ADLY_2 (BTIP2+BTIP0) /* 2ms " */
#define BT_ADLY_4 (BTIP2+BTIP1) /* 4ms " */
#define BT_ADLY_8 (BTIP2+BTIP1+BTIP0) /* 8ms " */
#define BT_ADLY_16 (BTDIV) /* 16ms " */
#define BT_ADLY_32 (BTDIV+BTIP0) /* 32ms " */
#define BT_ADLY_64 (BTDIV+BTIP1) /* 64ms " */
#define BT_ADLY_125 (BTDIV+BTIP1+BTIP0) /* 125ms " */
#define BT_ADLY_250 (BTDIV+BTIP2) /* 250ms " */
#define BT_ADLY_500 (BTDIV+BTIP2+BTIP0) /* 500ms " */
#define BT_ADLY_1000 (BTDIV+BTIP2+BTIP1) /* 1000ms " */
#define BT_ADLY_2000 (BTDIV+BTIP2+BTIP1+BTIP0) /* 2000ms " */
//注:ACLK提供定时频率,利用宏定义进行设置延时。
/* fCLK2=fMCLK (1MHz) is thought for short interval times */
/* the timing for short intervals is more precise than ACLK */
/* NOTE */
/* Be sure that the SCFQCTL-Register is set to 01Fh so that fMCLK=1MHz */
/* Too low interval time results in interrupts too frequent for the processor to handle! */
#define BT_MDLY_0_002 (BTSSEL) /* 0.002ms interval *** interval times */
#define BT_MDLY_0_004 (BTSSEL+BTIP0) /* 0.004ms " *** too short for */
#define BT_MDLY_0_008 (BTSSEL+BTIP1) /* 0.008ms " *** interrupt */
#define BT_MDLY_0_016 (BTSSEL+BTIP1+BTIP0) /* 0.016ms " *** handling */
#define BT_MDLY_0_032 (BTSSEL+BTIP2) /* 0.032ms " */
#define BT_MDLY_0_064 (BTSSEL+BTIP2+BTIP0) /* 0.064ms " */
#define BT_MDLY_0_125 (BTSSEL+BTIP2+BTIP1) /* 0.125ms " */
#define BT_MDLY_0_25 (BTSSEL+BTIP2+BTIP1+BTIP0)/* 0.25ms " */
//选择fCLK2=fMCLK (1MHz)来提供时钟源而产生的时钟延时。适合比较短的延时。但是单片机就不能进入LPM3状态了。
/* Reset/Hold coded with Bits 6-7 in BT(1)CTL */
/* this is for BT */
//#define BTRESET_CNT1 (BTRESET) /* BTCNT1 is reset while BTRESET is set */
//#define BTRESET_CNT1_2 (BTRESET+BTDIV) /* BTCNT1 .AND. BTCNT2 are reset while ~ is set */
/* this is for BT1 */
#define BTHOLD_CNT1 (BTHOLD) /* BTCNT1 is held while BTHOLD is set */
#define BTHOLD_CNT1_2 (BTHOLD+BTDIV) /* BT1CNT1 .AND. BT1CNT2 are held while ~ is set */
/* INTERRUPT CONTROL BITS */
/* #define BTIE 0x80 */ 位于IE2中断控制位
/* #define BTIFG 0x80 */
此帖出自
微控制器 MCU论坛
点赞
关注
(0)
TI培训
回复
分享
扫一扫,分享给好友
复制链接分享
链接复制成功,分享给好友
举报
提升卡
变色卡
千斤顶
返回列表
发新帖
回复
您需要登录后才可以回帖
登录
|
注册
发表回复
回帖后跳转到最后一页
浏览过的版块
模拟与混合信号
51单片机
活动
更多>>
有奖直播报名中!抢占工业4.1先机 文晔科技日等你来!
罗姆有奖直播 | 重点解析双极型晶体管的实用选型方法和使用方法
STM32N6终于要发布了,ST首款带有NPU的MCU到底怎么样,欢迎小伙们来STM32全球线上峰会寻找答案!
免费下载 | 安森美电动汽车充电白皮书,看碳化硅如何缓解“里程焦虑”!
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
开源项目
更多>>
LTC3630AEDHC 12.5V 至 76V 输入至 12V 输出、500mA 降压转换器的典型应用电路
DM160222、CAP1106 评估套件为评估和开发各种电容式触摸感应应用提供了一个简单的平台
DC2874A-A,使用 LTC3310S 5V、40A 同步降压 Silent Switcher 2 的演示板
LTC3119IUFD 3.3V、400kHz 宽输入稳压器的典型应用电路
DM164138、915MHz RN2903 LoRa 技术传统节点评估套件
无 DC-DC 转换器的直接供电配置 EFR32FG12 SoC 应用处理器的典型应用电路
8051KIT_B
L7809C大电流稳压器的典型应用
MP5402MGR-同步整流降压方案
【ART-Pi】CAN_LIN扩展板 - 428930A
随便看看
MSP430单片机学习小记--基础定时器
[color=#000][font=Arial,]基于[/font][/color][font=Arial,MicrosoftYaHei,微软雅黑,SimSun,宋体,sans-serif][color=#1f90de][size=15px]MSP430单片机[/size][/color][/font][color=#000][font=Arial,],TI公司采用的是模块化的内部结构,每个模块,在各个不 ...
MSP430单片机定时器学习笔记
[p=32,null,left][color=rgb(51,51,51)][font=PingFangSC,]msp430定时器学习笔记[/font][/color][/p][p=32,null,left][color=rgb(51,51,51)][font=PingFangSC,]_BIS_SR(LPM2_bits+GIE)//进入LPM3低功耗模式和开总中断允许[/font][/color][/p][p=32,null,left] ...
百问LCD Framebuffer应用开发 - freetype搭建与使用
##1.5搭建freetype相关环境###11交叉编译freetype,并安装①解压freetype源文件```ctarxjffreetype-210bz2```②进入解压后的freetype-210目录```ccdfreetype-210```③配置freetype-210```cconfigure--host=arm-linux-gnueabihf--prefix=/home/book/100ask_imx ...
为什么测量出来的电流方向是反的?
【2024 DigiKey 应用说】第三期:大模型时代的智能汽车
!!求各位大神帮助啊!!!(STM32的问题)
关于 Tms320c5505 usb
RS485通讯问题
如何 提高cross compile改错能力(哪里有相关资料可以看)求
超级火腿——确实是牛人,看看人家的工作地盘
查找数据手册?
搜索
EEWorld Datasheet 技术支持
热门标签
源代码
单片机
放大器
TI
ST
电源
分立器件
传感器
测试测量
模拟
模拟电子技术第三版课后答案
汤姆逊效应
电催化氧化
气动执行器
傻瓜交换机
解耦控制
射频技术
时分双工
LPT接口
MAX7219
相关文章
更多>>
“跨芯片”量子纠缠实现 有助建构更强大的量子计算能力
IBM公司科学家实现了“跨芯片”量子纠缠——使两块“鹰”(Eagle)量子芯片成功纠缠在一起。每块量子芯片拥有127个量子比特,两块芯片共同完成了需要142个量子比特才能完成的计算任务。目前,单块芯
超声波贴片可持续无创监测血压
美国加州大学圣迭戈分校研究团队开发出一款创新性的可穿戴超声波贴片,可持续无创监测血压。这款设备首次在超过100位患者身上完成了严格的临床测试,标志着该领域的一个重要进展。相关研究发表于20日的《自然
欧洲三大芯片巨头,重新审视供应链
在上周刚刚举办的Electronica 2024 CEO圆桌论坛上,英飞凌,恩智浦以及意法半导体三家芯片巨头CEO齐亮相,三家CEO集体表达了对中美关系的担忧,同时三位也有一个共识,即中国在全球半导
消息称铠侠最快明天获上市批准,市值有望达 7500 亿日元
美国政府敲定对格芯 15 亿美元《CHIPS》法案补贴,支持后者提升在美产能
SK 海力士宣布量产全球最高的 321 层 1Tb TLC 4D NAND 闪存,计划 2025 上半年对外出货
UWB上车新花样,无线BMS也能用它?
填补国内空白!中国移动、华为等联合发布首颗GSE DPU芯片
三星电子 NRD-K 半导体研发综合体进机,将导入 ASML High NA EUV 光刻设备
苹果揭秘自研芯片成功原因:竞争对手没法用最新尖端技术
新帖速递
STM32和无源蜂鸣器播放声音的问题
车规级AECQ200介绍,混合铝电解电容器的选择
嵌入式教程_DSP技术_DSP实验箱操作教程:2-28 搭建轻量级WEB服务器实验
OPA847IDBVR运放器国产替代
AG32VF407测试UART
【得捷电子Follow Me第二期】第一章 收到货物的分享
请问这个红外接收头是什么型号?能用哪个型号代替?谢谢
出售全新未拆封ZYNQ 7Z020 FPGA核心板
用在锂电池供电的水表设置上的LORA模块,当有100块水表集中安装在一个楼道内时,节能
请问一下,当某个端口被设置为 RX0后,这个端口的输入输出方向还有必要设置吗
今年怎么这么难,比疫情时还难,三十了面临失业好迷茫
请教稳压管测试问题
【小华HC32F448测评】关于小华半导体的UART中断发送和PRINTF构造和重定向
【BIGTREETECH PI开发板】 HDMI输出测试
【BIGTREETECH PI开发板】+08.音频测试(zmj)
等待很久的STM32N6终于要发布了!
ST首款带有NPU的MCU到底怎么样,欢迎小伙们来STM32全球线上峰会寻找答案!报名峰会,还能赢【开发板、京东卡】呦~12月12日14:00不见不散!
查看 »
有奖直播报名| 高可靠性IGBT新选择 —— 安世半导体650V IGBT
【直播时间】12月19日(周四)下午15:00-16:30
【直播好礼】定制双肩商务包、30元京东卡、吸管玻璃杯
查看 »
安世半导体直播报名中
直播主题:安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
直播时间:12月17日(周二)下午14:00
报名就有机会获得:定制双肩商务包、30元京东卡、吸管玻璃杯
查看 »
PI 电源小课堂 | 无 DC-DC 变换实现多路高精度输出反激电源
时间:即日起-12月15日
看视频学习电源干货,答题赢取京东卡!
查看 »
参会有好礼 | 2024 瑞萨电子MCU/MPU工业技术研讨会
深圳站:11月30日(周六)深圳湾万怡酒店
上海站:12月06日(周五)上海喜玛拉雅酒店
奖励设置:现金红包、螺丝刀套装或30元京东卡
查看 »
Littelfuse 新品赋能电子产品安全可靠并高效, 10+挑战等你探索!
Littelfuse 应用赋能星球,覆盖了诸多应用痛点及解决办法,邀请工程师一起探索,解锁更多设计力!
查看 »
下载资料赢好礼!看Vicor模块化电源解决方案如何推动创新
活动时间:即日起-2024年12月31日
如何参与:点击活动页内您想了解的模块,找到资料下载即可参与抽奖,活动结束后统一发奖!
查看 »
有奖活动|英飞凌高密度双相电源模块为高性能运算平台而生
活动时间:即日起-12月15日
活动奖励:蓝牙音箱、氮化镓充电器套装、黑色小背包
查看 »
本月精选下载推荐:
Vishay——选型-汽车级表面贴装和通孔超快整流器
查看 »
本周精选下载推荐:电源管理基础Dummies
本周小编给大家带来一本超简单、超干货的电子书——《电源管理基础Dummies》!内容深入浅出,排版舒服简洁,分分钟能get到电源管理最核心的知识内容。
查看 »
关闭
站长推荐
1
/10
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
电信业务审批[2006]字第258号函
京公网安备 11010802033920号
Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复
返回顶部
返回列表
论坛首页
版块列表
专业技术中心
TI技术论坛
ST传感器与低功耗无线技术论坛
ADI参考电路
DigiKey得捷技术专区
ADI · 世健工业技术
电子技术交流
嵌入式系统
单片机
国产芯片交流
电机驱动控制
FPGA/CPLD
模拟电子
电源技术
PCB技术
RF/无线
传感器
综合技术交流
下载中心专版
大学堂专版
测评中心专版
创意与实践
电子竞赛
DIY/开源硬件专区
淘e淘
创意市集
行业应用
汽车电子
移动便携
医疗电子
工控电子
安防电子
休息一下
聊聊、笑笑、闹闹
工作这点儿事
为我们提意见&公告
EEWorld颁奖专区
信息发布
最新帖子
最新帖子
最新回复
精华
消灭零回复
测评中心
活动中心
积分兑换
E金币兑换
芯积分
厂商专区
TI技术论坛
ST传感器与低功耗无线技术论坛