|
问个简单问题,2440执行一条指令的时间是怎么算的?
[复制链接]
我使用GPIO模拟IIC驱动程序。
搞了两天也不成功,
我怀疑是延时不精确
想问一下2440执行一条C语言指令的时间是怎么确定的?
比如
static void Delay(USHORT count)
{
volatile int i, j = 0;
volatile static int loop = S3C2440A_FCLK/100000;
//RETAILMSG(1,(TEXT("S3C2440A_FCLK/100000=0x%x\r\n"),S3C2440A_FCLK/100000));
//S3C2440A_FCLK/100000=0xfd2=4050会不会太大呢?
for(;count > 0;count--)
for(i=0;i < loop; i++) { j++; }
}
这是我模拟IIC使用的延时程序。
这个S3C2440A_FCLK是不是相当于51单片机的12M晶振的作用?
如果是这样那么2440执行一条C的指令应该是
(1/S3C2440A_FCLK)*12,我这样理解对吗?
请了解的人说一下。
我觉得我IIC模拟的不行极有可能是这样原因。
刚接触ARM几个月,发现好多不明白。
|
|