还是希望STC-ISP软件里增加带参延时函数生成功能
还是希望在STC-ISP软件里,增加带参数的延时函数生成功能,不是带参数的有时不方便,会增加代码的数量。既然有那个功能,那就给它搞完美。带参数延时就不准了 Ayb_ice 发表于 2025-12-11 15:06
带参数延时就不准了
有的地方没必要那么准,通用性强就可以 cjtdz 发表于 2025-12-11 15:07
有的地方没必要那么准,通用性强就可以
自己扩展一下就可以了,比如生成个10MS延时程序,再用此函数自己扩展一个 cjtdz 发表于 2025-12-11 15:07
有的地方没必要那么准,通用性强就可以
没必要那么准,你自己扩展呗。写个循环,差不了多少。 /********************************
函数功能:延时
参数说明:最大延时65535ms
返回值:无
********************************/
void Delay_ms(u16 ms)
{
u8 msH,msL,n_1ms;
msH = *(u8 *)&ms;
msL = (u8)ms;
n_1ms = msL & 0x0F;
while (n_1ms)
{
Delay1ms();
n_1ms--;
}
msL >>= 4;
while (msL)
{
Delay16ms();
msL--;
}
while (msH)
{
Delay256ms();
msH--;
}
}
你可以用这个啊。精确在1-65535ms
/*********************************************
程序名称 :延时函数
*********************************************/
//#define MAIN_Fosc 48000000L //定义主时钟
//#define MAIN_Fosc 44236800L //定义主时钟
//#define MAIN_Fosc 40000000L //定义主时钟
//#define MAIN_Fosc 36864000L //定义主时钟
//#define MAIN_Fosc 35000000L //定义主时钟
//#define MAIN_Fosc 33177600L //定义主时钟
//#define MAIN_Fosc 30000000L //定义主时钟
//#define MAIN_Fosc 27000000L //定义主时钟
//#define MAIN_Fosc 24000000L //定义主时钟
//#define MAIN_Fosc 22118400L //定义主时钟
//#define MAIN_Fosc 20000000L //定义主时钟
//#define MAIN_Fosc 18432000L //定义主时钟
#define MAIN_Fosc 12000000L //定义主时钟
//#define MAIN_Fosc 11059200L //定义主时钟
//#define MAIN_Fosc 6000000L //定义主时钟
//#define MAIN_Fosc 5529600L //定义主时钟
void Delay(unsigned int ms) //注:ms_max=65536
{
unsigned int i;
do
{
// i=MAIN_Fosc/96000L; //STC89/90_12T
// i=MAIN_Fosc/48000L; //STC89/90_6T
// i=MAIN_Fosc/14000; //STC12
// i=MAIN_Fosc/13000; //STC15
i=MAIN_Fosc/10000; //STC8
// i=MAIN_Fosc/6030; //STC32
while(--i) ;
}
while(--ms);
}
页:
[1]