3116|8

103

帖子

0

资源

一粒金砂(初级)

timer_a 的奇怪问题...哪位看看. [复制链接]

449 mcu ,timer_a 工作在比较模式下. MCLK 设置为1M,,, SMCLK 也是1.04MHz.
ACLK 为.32.768khz. 当我将 CCR0=1 之后. TAR 从0 到1..然后中断.
在中断里面 翻转P1.2 端口的输出...发现 高电平 宽度为 14.3 uS ?? 奇怪.这不对啊.. 不是应该是1/smclk 宽么? 怎么会宽了这么多?

大概的程序如下:

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
FLL_CTL0 |=XCAP0PF;

TACTL = TASSEL_2 + TACLR; // SMCLK, clear TAR
CCTL0 = CCIE; // CCR0 interrupt ena××ed
CCR0 = 1;
P1DIR |= 0x34; // Set P1.2 to output direction
P1SEL |= 0x30; // output smclk and aclk
TACTL |= MC0; // Start Timer_a in upmode



_EINT(); // Ena××e interrupts

#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P1OUT ^= 0x04; // Toggle P1.2 using exclusive-OR
}



哪位大侠看看是为什么?

回复

95

帖子

0

资源

一粒金砂(初级)

正常的

回复

112

帖子

0

资源

一粒金砂(初级)

不好意思,没写完。

你要考虑到,进入中断和退出中断还需要时间的。

另外记住:中断产生的间隔应该大于中断服务程序执行的时间,你的程序CCR0 = 1;
就很不合理

回复

109

帖子

0

资源

一粒金砂(初级)

楼上的,介绍一下中断响应的时间是多少啊?

回复

103

帖子

0

资源

一粒金砂(初级)

中断响应的最快也要10个周期左右。iltgcl说的没错,中断定时时间要远大于中断执行时间。否则,就会频繁进入中断。

回复

122

帖子

0

资源

一粒金砂(初级)



我这么做的目的是为了产生一个 数据率大约在 30kHz 左右的 数据信号..如果要发送的数据是1就输出高电平. 并且开始计数....计数满了之后 进入中断. 将端口设置为低. 如果要发送的数据是0 那么输出低电平.开始计数,,计数满了之后进入中断. 将输出设置为高. 通过计数器保证每个脉冲的宽度是1/30KHz.


如果中断需要这么长时间. 那岂不是就没有办法发送速率稍微高些的信号了?
如果假设中断响应固定时间是10个时钟周期... 那我提高了系统工作时钟-MCLK=4mhZ. 发现响应时间基本没有什么变化.这是为什么?

除了这样,有没有什么别的办法发送一定数率的数据? 谢谢谢谢

回复

39

帖子

0

资源

一粒金砂(初级)

把输入信号设为MCLK或者SMCLK等高频信号

回复

94

帖子

0

资源

一粒金砂(初级)

从你的程序看(漏写的大括号可能在_EINT(); // Ena××e interrupts处),只能中断一次。当你将CCR0=1时直到开中断经历了如下过程:
P1DIR |= 0x34; // Set P1.2 to output direction
P1SEL |= 0x30; // output smclk and aclk
TACTL |= MC0; // Start Timer_a in upmode
_EINT(); // Ena××e interrupts
这需要10多个周期,如果从单片机复位时算起,时间就更长了。

回复

95

帖子

0

资源

一粒金砂(初级)

输入信号是指输入到哪里去的信号? 我尝试改变了计数器的输入时钟类型...分别是 ACLK=32.768KHz , 还有 SMCLK=1.04MHZ. .好像 在CCR0=1时 变化不大.
看来这个延时是由于中断响应需要时间造成的....改变系统时钟不能解决问题.不知道对不对.

回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表