AI8051U IO口速度 初测
使用单片机:AI8051U想测试IO速度,最先想到的方法是在while循环中,一直改变IO电平。
不严谨测试代码如下:
while(1)
{
P10 = 0;
P10 = 1;
P10 = 0;
P10 = 1;
P10 = 0;
P10 = 1;
P10 = 0;
P10 = 1;
P10 = 0;
P10 = 1;
P10 = 0;
P10 = 1;
P10 = 0;
P10 = 1;
P10 = 0;
P10 = 1;
}复制粘贴多次是为了减小循环跳转的损失。
下载的时候,选择时钟为24MHz,然后使用示波器观察波形。
实验结果显示:输出的频率为12MHz
为啥不是24MHz
手册中发现 2个CPU时钟延时
是不是与这个相关
io转换也不是实时的要时间。 先:
WTST=0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXFR=1; //扩展寄存器(XFR)访问使能
CKCON=0; //提高访问XRAM速度
再试
看看频率是多少,如果和预期不符,进调试模式看看生成的汇编是怎么执行的
IO口设置推挽输出模式,并提高电平转换速度
IO口写1、IO口写0各需要一个时钟周期,所以系统时钟24MHz时,IO口输出波形就是12MHz了。应该这样计算吧 用汇编试。 时钟24MHz,清零一个时钟,置1一个时钟,输出12MHz是应该的啊。 佬的示波器是什么牌子的,想入手一个 hyjs 发表于 2024-8-17 21:15
佬的示波器是什么牌子的,想入手一个
搜 ZEEWEII DSO154Pro
带宽 18MHz
采样率40MSa/s
价格 168
评价 主打便携小巧 12M没毛病, 24M下, 高电平花1时钟,低电平花1时钟, 一组高低电平用时2周期, 24MHZ/2=12MHZ
页:
[1]
2