Full Version : Horvat's Universal Delay Routines (GCC)
avr >>C PROGRAMMING (AVR) >>Horvat's Universal Delay Routines (GCC)


AVR_Admin- 04-26-2006
Universal delay routines by Gregor Horvat


CODE

#include <io.h>
#define F_CPU 4000000

#define K_DELAY_100us F_CPU/61349
#define K_DELAY_1ms  F_CPU/6013
#define K_DELAY_10ms F_CPU/600

void Delay_100us(unsigned char t);
void Delay_1ms(unsigned char t);
void Delay_10ms(unsigned char t);


CODE

#include "delay.h"

//----------------------------------------------------------------------------
// Wait for a specific time in 100 uSec
// (15 + t*( ((K_DELAY_100us-1)*6)+5 ))
//----------------------------------------------------------------------------
void Delay_100us(unsigned char t) {
 unsigned int i;
 if (t==0) return;
 while (t--) for(i=0;i<K_DELAY_100us; i++);
}
//----------------------------------------------------------------------------
// Wait for a specific time in 1 mSec
// (15 + t*( ((K_DELAY_1ms-1)*6)+5 ))
//----------------------------------------------------------------------------
void Delay_1ms(unsigned char t) {
 unsigned int i;
 if (t==0) return;
 while (t--) for(i=0;i<K_DELAY_1ms; i++);
}
//----------------------------------------------------------------------------
// Wait for a specific time in 10 mSec
// (15 + t*( ((K_DELAY_10ms-1)*6)+5 ))
//----------------------------------------------------------------------------
void Delay_10ms(unsigned char t) {
 unsigned int i;
 if (t==0) return;
 while (t--) for(i=0;i<K_DELAY_10ms; i++);
}




Forumer™ is Voted #1 Free Forum Hosting provider
Build your own community today with the largest message board hosting company.