专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
430f5438的定时器问题
2019-08-07 19:50
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
4702
19
1557
TA0CTL = 0 // 复位Timer0_A5, 分频系数设置为1
| (1 << 2) // 计数器清0
| (2 << 8); // 计数时钟设为SMCLK
后面这两句好什么意思啊 希望可以交流交流
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
liuyang8023
2019-08-08 01:11
dirtwillfly 发表于 2013-11-28 13:10
这是不是在一些资料上看到的?
应该是:
TA0CTL = | (1
这个是源程序
#include "msp430x54x.h"
#define LED_light_CTL P9DIR=0Xff //LED流水灯端口置为输出
#define LED_light P9OUT //LED流水灯数据口
#define LED_light_BIT P9DIR //LED流水灯按位控制
/******************************************************************************
* 函数声明区
******************************************************************************/
void Init_Clk(void);
void TimerA0_Init(void);
/******************************系统主函数*************************************/
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
P5DIR|=BIT4;
P7DIR|=BIT3;
P11DIR |= 0x07; // ACLK, MCLK, SMCLK set out to pins
P11SEL |= 0x07;
Init_Clk(); //初始化系统时钟
LED_light_CTL; //初始化 LED IO端口
TimerA0_Init(); //初始定时器timeA
_EINT(); //打开全局中断
LPM3; //进入低功耗模式
}
/******************************************************************************
* 函数名:void Init_Clk(void)
* 功 能:系统时钟初始化
* 参 数:无
* 返回值:无
******************************************************************************/
void Init_Clk(void)
{
WDTCTL = WDTPW + WDTHOLD; // 关看门狗
P5SEL |= 0x0C; // 端口功能选择振荡器
UCSCTL6 &= ~XT2OFF; // 振荡器使能
UCSCTL3 |= SELREF_2; // FLLref = REFO
UCSCTL4 |= SELA_2; // ACLK=REFO,SMCLK=DCO,MCLK=DCO
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除 XT2,XT1,DCO 错误标志
SFRIFG1 &= ~OFIFG;
}while(SFRIFG1&OFIFG); // 检测振荡器错误标志
UCSCTL6 |= XT2DRIVE0 + XT2DRIVE1; // XT2 驱动模式 24~32MHz
UCSCTL4 |= SELS_5 + SELM_5; // SMCLK = MCLK = XT2
}
/******************************************************************************
* 函数名:void TimerA0_Init(void)
* 功 能:定时器 TimeA 初始化
* 参 数:无
* 返回值:无
******************************************************************************/
void TimerA0_Init(void)
{
TA0CTL = 0 // 复位Timer0_A5, 分频系数设置为1
| (1 << 2) // 计数器清0
| (2 << 8); // 计数时钟设为SMCLK ;
TA0CCR0 = 32000 - 1; // SMCK=EX2=16MHz,设置计数器溢出时间为1ms
TA0CCTL0 = 0 // 初始化捕获控制
| (1 << 4); // 使能比较中断
TA0CTL |= (1 << 4); // 设置计数器为加计数,启动
}
/******************************************************************************
* 函数名:__interrupt void Timer0_A0 (void)
* 功 能:定时器 TimeA 中断服务函数
* 参 数:无
* 返回值:无
******************************************************************************/
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer0_A0 (void)
{
LED_light ^= 0x0F;
TA0CCR0 = (32000) - 1;
}
加载中...
查看其它19个回答
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
这个是源程序
#include "msp430x54x.h"
#define LED_light_CTL P9DIR=0Xff //LED流水灯端口置为输出
#define LED_light P9OUT //LED流水灯数据口
#define LED_light_BIT P9DIR //LED流水灯按位控制
/******************************************************************************
* 函数声明区
******************************************************************************/
void Init_Clk(void);
void TimerA0_Init(void);
/******************************系统主函数*************************************/
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
P5DIR|=BIT4;
P7DIR|=BIT3;
P11DIR |= 0x07; // ACLK, MCLK, SMCLK set out to pins
P11SEL |= 0x07;
Init_Clk(); //初始化系统时钟
LED_light_CTL; //初始化 LED IO端口
TimerA0_Init(); //初始定时器timeA
_EINT(); //打开全局中断
LPM3; //进入低功耗模式
}
/******************************************************************************
* 函数名:void Init_Clk(void)
* 功 能:系统时钟初始化
* 参 数:无
* 返回值:无
******************************************************************************/
void Init_Clk(void)
{
WDTCTL = WDTPW + WDTHOLD; // 关看门狗
P5SEL |= 0x0C; // 端口功能选择振荡器
UCSCTL6 &= ~XT2OFF; // 振荡器使能
UCSCTL3 |= SELREF_2; // FLLref = REFO
UCSCTL4 |= SELA_2; // ACLK=REFO,SMCLK=DCO,MCLK=DCO
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除 XT2,XT1,DCO 错误标志
SFRIFG1 &= ~OFIFG;
}while(SFRIFG1&OFIFG); // 检测振荡器错误标志
UCSCTL6 |= XT2DRIVE0 + XT2DRIVE1; // XT2 驱动模式 24~32MHz
UCSCTL4 |= SELS_5 + SELM_5; // SMCLK = MCLK = XT2
}
/******************************************************************************
* 函数名:void TimerA0_Init(void)
* 功 能:定时器 TimeA 初始化
* 参 数:无
* 返回值:无
******************************************************************************/
void TimerA0_Init(void)
{
TA0CTL = 0 // 复位Timer0_A5, 分频系数设置为1
| (1 << 2) // 计数器清0
| (2 << 8); // 计数时钟设为SMCLK ;
TA0CCR0 = 32000 - 1; // SMCK=EX2=16MHz,设置计数器溢出时间为1ms
TA0CCTL0 = 0 // 初始化捕获控制
| (1 << 4); // 使能比较中断
TA0CTL |= (1 << 4); // 设置计数器为加计数,启动
}
/******************************************************************************
* 函数名:__interrupt void Timer0_A0 (void)
* 功 能:定时器 TimeA 中断服务函数
* 参 数:无
* 返回值:无
******************************************************************************/
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer0_A0 (void)
{
LED_light ^= 0x0F;
TA0CCR0 = (32000) - 1;
}
一周热门 更多>