关于SysCtlDelay()延时函数:
在周公的所有关于LM3S的例程中均采用了hh_SystemInit.c,其默认的设置为采用主晶振6M
而在程序中则如此写: 1. SysCtlDelay(20); // 延时60个系统周期 2. SysCtlDelay(150 * (SysCtlClockGet( ) / 3000)); // 延时150ms
这里关于系统周期的说法: 2中,SysCtlClockGet( )=6000000 Hz,换算为1ms,则为6000Hz
总延时为 150*6000/3000*3=900时钟周期,对应于150ms。 即当振荡源为6MHz时,6时钟周期耗时1ms 如果为40M,则40时钟周期耗时1ms
我的理解对么?
如果上述理解正确的话,那么: 在40M下需要延时150ms,函数同样可以写为 SysCtlDelay(150 * (SysCtlClockGet( ) / 3000)); // 延时150ms |