我也是刚刚接触PIC18,发现它的运行速度很慢,比新型的国产51单片机还要慢几倍,不知道是不是我的代码有问题,所以请教一下大家。
要求如下:
使用PIC跑下面的 for() 语句,比如 6400 000(6400K) 个时钟(振荡器时钟,或者说是CPU时钟),跑够时间后,然后看看for()语句可以运行多少次
国产新型的51大约可以运行9000次,但是,我发现PIC18才运行1600次左右
unsigned char test(unsigned char dat)
{
unsigned char yy;
yy=dat;
return yy;
}
while(1)
{
for(ii=0; ii<65535; ii++) //全部语句可以运行8988次
{
xx=test(37); //注释这条可以运行9580次
out=xx;
if(xx>47) xx=57; else xx=67; //注释这条可以运行9998次
out=xx;
xx<<=1; //注释这条可以运行9248次
out=xx;
xx>>=1; //注释这条可以运行9248次
out=xx;
xx|=1; //注释这条可以运行9142次
out=xx;
xx&=1; //注释这条可以运行9142次
out=xx;
xx=~xx; //注释这条可以运行9142次
out=xx;
xx=xx^1; //注释这条可以运行9142次
out=xx;
xx+=1; //注释这条可以运行9090次
out=xx;
xx-=1; //注释这条可以运行9090次
out=xx;
xx*=3; //注释这条可以运行9523次
out=xx;
xx/=3; //注释这条可以运行9523次
out=xx;
xx%=3; //注释这条可以运行9638次
out=xx;
}
while(1);
}
|