微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机中时延函数易常范的错误

单片机中时延函数易常范的错误

时间:11-24 来源:互联网 点击:
有时候需要长时间的延时时,可以用循环也可以传一个大点的参数。但是在传大点的参数时一定要看清楚参数的类型及此类型所能表示的值的范围。
如我所编AD转换程序中,在转换时间要长达30ms时才能有有效的数据输出。如果时间过短,则不会起到即时的效果。unsigned char 最大值为255再大就要用循环了。
下面是原码:
#include
#include
sbit wr = P3^6;
sbit rd = P3^7;
sbit dula = P2^6;
sbit wela = P2^7;
unsigned char j,k,aa;
void delay(unsigned char i) //最大值255
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void main()
{
unsigned char a;
while(1)
{
wela = 1; //选通P0的74hc573
P0 = 0; //选通ADCS
wr = 0; //起动adc0804,写入模拟信号
_nop_();
wr = 1;
delay(10);
// for(a = 20;a>0;a--)
delay(255); //转换等待
rd = 0; //AD读使能
}
}
此代码在TX-1C中通过

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top