#ifndef __MY1TIMER_H__ #define __MY1TIMER_H__ // useful macro! #define timer0_init() { TMOD &= 0xF0; TMOD |= 0x01; } #define timer0_prep(hi,lo) { TH0 = hi; TL0 = lo; } #define timer0_stop() { TR0 = 0; TF0 = 0; } #define timer0_exec() { TR0 = 1; } #define timer0_flag() { timer0_exec(); while (!TF0); } #define timer0_wait(hi,lo) { timer0_prep(hi,lo); timer0_flag(); timer0_stop(); } #define timer0_null() { TH0 = 0; TL0 = 0; } #define timer0_read() ((unsigned int)TH0<<8)|TL0 void timer0_delayms(unsigned int step) { do { timer0_wait(0xfc,0x66); // 1 ms delay } while (--step); } #endif /* __MY1TIMER_H__ */