__attribute__((weak))void systimer_1ms_handler(void){/* default systimer 1ms hander* you can override it by implement a non-weak version*/} void SysTick_Handler (void){if (s_wMSCounter) {s_wMSCounter--;} systimer_1ms_handler;} void delay_ms(uint32_t wMillisecond){s_wMSCounter =...
延时,1count = 1ms void delay(char x){unsigned char a,b,c;for(c=x;c>0;c--)for(b=38;b>0;b--)for(a=130;a>0;a--);}学过标准C就知道了,char 和 int 是可以相互转换的,char的取值范围是-128~+127unsigned char 的是0~255可以用unsigned int啊,我一般都是用char的,用u...
这个delay函数就是通过i,j,k的自减运算来达到延迟效果 一直减到ijk都为0才执行下一段函数 delay(10)就是让单片机进行 i(10) * j(10) * k(50)=5000次的自减运算,时间大约为5000/8 000 000=0.625ms 自己可以根据这个算法来简单测算出延迟时间 ...
#include <REGX52.H> void Delay1ms() //@12.000MHz { unsigned char i, j; i = 2; j = 239; do { while (--j); } while (--i); } void main() { P2=0xFE; Delay1ms(); P2=0xFD; Delay1ms(); } Code over!关键词: 单片机代码 单片机延时 单片机软件 单片机延时代码 单片机软件代码 ...
systimer_1ms_handler;} void delay_ms(uint32_t wMillisecond){s_wMSCounter = wMillisecond;while( s_wMSCounter > 0 );} 上述代码非常典型,唯一需要强调的是SystemCoreClock是一个定义在启动文件system_<芯片型号>.c里的全局变量,负责保存当前处理器的工作频率——上面的平台初始化函数platform_init就是借助这...
systimer_1ms_handler;} void delay_ms(uint32_t wMillisecond){s_wMSCounter = wMillisecond;while( s_wMSCounter > 0 );} 上述代码非常典型,唯一需要强调的是SystemCoreClock是一个定义在启动文件system_<芯片型号>.c里的全局变量,负责保存当前处理器的工作频率——上面的平台初始化函数platform_init就是借助这...
void delay_ms(unsigned int ms_number) // ms延时函数 (AT89C51 @ 11.0592MHz){ unsigned int i;unsigned char j;for(i=0;i<ms;i++){ for(j=0;j<200;j++);for(j=0;j<102;j++);} } void Delay(){ unsigned char a,b,c;for(a=0;a<?;a++)for(b=0;b<?;b++)for(c...
原理很简单,就是通过执行没有内容的for循环消耗CPU时间。51