你的位置:首页 > 操作系统

[操作系统]单片机不同晶振怎么计算延迟时间?


单片机C语言中,怎么通过循环次数计算延迟函数的延迟时间?  

首先你要知道一个指令周期是几秒 算法是1/(晶振频率除以12) 然后你要知道循环究竟执行了几个指令周期

你可以用keil里在线反汇编命令看看你的循环编译成机器语言后到底是几个指令周期 这样就知道了延迟时间 当然你取近似值也可以的 比如 for(i=0,i<255,i++){x=2} 这里x=2是一个指令周期 而执行了255次 假如你的晶振是12MHZ的 则你执行一个指令周期是1us 255次是0.255ms

 

22.1184    一个指令 0.5us       1/(23/12)