专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
外部晶振不焊接ACLK时钟源仍能工作不
2019-07-24 14:57
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
5322
12
1421
前不久在修理一些坏板子的时候发现,板子上的外部晶振取下来后,用ACLK作时钟源的TimeA中断事件仍然被触发,通过仿真后发现确实进入TimerA中断函数中,并且IFG1中的OFIFG位也未被置1
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
jiahy
1楼-- · 2019-07-24 15:25
精彩回答 2 元偷偷看……
加载中...
lizye
2楼-- · 2019-07-24 20:03
//初始化时调用函数,初始化DCO为8MHZ
void InitClk()
{
/*等待电压稳定*/
DelayN(30);
IE1 |= OFIE; /*Ena××e osc fault int (NMI)*/
BCS1_Fren_Addr=(uchar*)CALBC1_8MHZ_;
BCSCTL1 = *BCS1_Fren_Addr;
DCO_Fren_Addr=(uchar*)CALDCO_8MHZ_;
DCOCTL = *DCO_Fren_Addr;
}
//中断函数检测OSC 错误
#pragma vector=NMI_VECTOR
__interrupt void OscFault(void)
{
volatile uint uiCnt;
#ifdef ALARMLED
LedR_1;
#endif
do /* Loop until flag is clear*/
{
IFG1 &= ~OFIFG; /* Clear fault flag*/
for (uiCnt = 0xFFFF; uiCnt; uiCnt--); /* Delay for crystal to start*/
}
while (IFG1 & OFIFG); /* Test LF oscillator fault flag*/
IE1 |= OFIE; /* Re-ena××e osc fault int*/
#ifdef ALARMLED
LedR_0;
#endif
}
//TimerA初始化函数
void InitTimer()
{
uint uiResultInteger;
TACTL = TASSEL0 + TACLR + ID0; /*TimerAClock=ACLK ,divided by 2,clear TAR*/
TACTL |= MC0;
uiResultInteger = rand();
uiResultInteger &= 0x00ff;
CCR0 = (uiResultInteger + uiWorkFrequence)<<3; /*woke interval = (CCR0)*0.061ms */
CCTL0 |= CCIE; /*CCR0 interrupt ena××e*/
}
加载中...
shimx
3楼-- · 2019-07-25 00:13
什么片子
加载中...
lizye
4楼-- · 2019-07-25 03:01
芯片是是430f2121
加载中...
jiaxw
5楼-- · 2019-07-25 04:54
看user's guide上说MCLK的时钟源如果选择外部XT2,XT2失效后会自动切换到DCO,那是不是ACLK也会有LFXT1切换为其他的时钟源呢?
加载中...
spark周
6楼-- · 2019-07-25 08:26
精彩回答 2 元偷偷看……
加载中...
1
2
下一页
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
携手ADI,踏上电子工程师之巅—车辆电气化视频,答题领奖!
1 个回答
如何提升论坛质量,看你了!
20 个回答
【最终名单】二姨家喊你来拿100份新年大礼啦~
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
void InitClk()
{
/*等待电压稳定*/
DelayN(30);
IE1 |= OFIE; /*Ena××e osc fault int (NMI)*/
BCS1_Fren_Addr=(uchar*)CALBC1_8MHZ_;
BCSCTL1 = *BCS1_Fren_Addr;
DCO_Fren_Addr=(uchar*)CALDCO_8MHZ_;
DCOCTL = *DCO_Fren_Addr;
}
//中断函数检测OSC 错误
#pragma vector=NMI_VECTOR
__interrupt void OscFault(void)
{
volatile uint uiCnt;
#ifdef ALARMLED
LedR_1;
#endif
do /* Loop until flag is clear*/
{
IFG1 &= ~OFIFG; /* Clear fault flag*/
for (uiCnt = 0xFFFF; uiCnt; uiCnt--); /* Delay for crystal to start*/
}
while (IFG1 & OFIFG); /* Test LF oscillator fault flag*/
IE1 |= OFIE; /* Re-ena××e osc fault int*/
#ifdef ALARMLED
LedR_0;
#endif
}
//TimerA初始化函数
void InitTimer()
{
uint uiResultInteger;
TACTL = TASSEL0 + TACLR + ID0; /*TimerAClock=ACLK ,divided by 2,clear TAR*/
TACTL |= MC0;
uiResultInteger = rand();
uiResultInteger &= 0x00ff;
CCR0 = (uiResultInteger + uiWorkFrequence)<<3; /*woke interval = (CCR0)*0.061ms */
CCTL0 |= CCIE; /*CCR0 interrupt ena××e*/
}
一周热门 更多>