查看: 2322|回复: 2

[其他] ECT中TCNT循环几个周期

[复制链接]

该用户从未签到

3

主题

52

帖子

0

注册会员

Rank: 2

积分
69
最后登录
2020-7-13
发表于 2012-3-26 10:12:34 | 显示全部楼层 |阅读模式
看到一程序,对其中TCNT的循环了几个周期没弄明白,使用16M晶振:
void TimerOverflow(void)
{
        unsigned char i=1,j=0x80;
        while((i!=0)&&(j!=0))
        {
        PORTA=(i|j);
        i=1;
        while(TCNT!=0x0000); //延时
        while(TCNT==0x0000);
        }
}
void main(void)
{
        EnableInterrupts;
        TSCR1=0x80; //定时器使能
        TSCR2=0x07; //分频系数为128
        DDRA=0xff;
        PORTA=0xff;
        for(;;)
        {
        TimerOverflow();
        }
}
这段程序中,while(TCNT!=0x0000);
        while(TCNT==0x0000);
这2句TCNT循环周期数,我认为是1个周期,即0.524S,但是用示波器测量确实1.048s。
求高手解惑
我知道答案 目前已有1人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-3-26 14:05:42 | 显示全部楼层

    RE:ECT中TCNT循环几个周期

    你是指
    while(TCNT!=0x0000); //延时
    while(TCNT==0x0000);
    执行用了的时间?还是TimerOverflow();用了的时间。
    另外,你用的是16M的晶振?还是系统时钟是16M?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    52

    帖子

    0

    注册会员

    Rank: 2

    积分
    69
    最后登录
    2020-7-13
     楼主| 发表于 2012-3-26 16:22:51 | 显示全部楼层

    回复:ECT中TCNT循环几个周期

    我指的是while(TCNT!=0x0000); //延时
    while(TCNT==0x0000);
    的执行用了多长时间,在这2句中循环中TCNT计数循环了几个计数周期。外部晶振和总线时钟都是16M的
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-28 04:36 , Processed in 0.088109 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表