卧薪又尝胆的笔记 https://passport2.21ic.com/?985914 [收藏] [复制] [RSS]

日志

定时器定时1US 可能行不通

热度 1已有 847 次阅读2013-4-7 19:13 |系统分类:单片机

          这两天天在搞定时器定时1US的问题, 采用内部12M时钟频率,不分频,时钟周期应该是1/12us(大约83ns)  ,理论上 初值   TL2= (65536-12)/256;  TH2= (65536-12)%256;  但是实际测下来 进中断的时间约2.41us ,不解,网上发问 ,得到了airwill 版主的热心指点(估计是中断服务程序的延迟导致的.) ,再次谢谢


         下面总结一下原因。在调试过程中,用逻辑分析仪测试了_nop_();指令的执行时间约为90ns一个时钟周期; P0_4 = 1;这条指令执行了250ns,对应的汇编指令是SETB     P0_4(0x80.4)  ,本以为这是单周期指令 只需要一个时钟周期,但是查看了数据手册 发现这条指令需要3个时钟周期 故执行了250ns是正确的。


       中断程序响应时还要执行固有的程序,如程序计数器内容被压栈,相应的中断向量地址被载入程序计数器等


     


 


 


路过

鸡蛋
1

鲜花

握手

雷人

刚表态过的朋友 (1 人)

全部作者的其他最新日志

评论 (0 个评论)