STM8S延时函数

/* MAIN.C file
 *
 * Copyright (c) 2002-2005 STMicroelectronics
 */
 //延时函数
#include "stm8s103f3p.h"

void delay_40us(void);
void delay_1ms(void);
void delay_ms(int);
void delay_1s(void);
void delay_s(int);
main()
{
 PD_DDR=0x0f;
 PD_CR1=0x0f;
 PD_CR2=0x00;
 PD_ODR=0x00;
 while (1)
 {
   PD_ODR^=0x0f;
   delay_s(50);
 }
}
void delay_40us(void)//40us延时函数 大约是41us
{
 int i=2;
 while(--i);
 /*
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop"); 
 _asm("nop");
 _asm("nop");
 _asm("nop");
 _asm("nop"); 
 _asm("nop");
 _asm("nop");*/
}
void delay_1ms(void)//1ms延时函数
{
 int i=108;
 while(--i);
}
void delay_ms(int ms)//ms延时函数
{
 int i;
 while(--ms)
 {
   delay_1ms();
 }
}
void delay_1s(void)//1s延时函数、没有误差
{
 int i=5;
 while(--i)
 {
   delay_ms(250);
 }
}
void delay_s(int s)//s延时函数、没有误差
{
 while(s--)
 {
   delay_1s();
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值