#ifndef TEST #pragma library 1 #endif /* in diesem modul werden zwar keine interrupts verwendet, aber der 16-bit timer wird dennoch per hardware-"hintergrund" inkrementiert */ #define timeloop_init() \ { \ T1CON = 0x05; /* Timer1 parametrieren */\ } #define timeloop_init_16MHz() \ { \ T1CON = 0x25; /* 1us-Timer1 parametrieren bei 16MHz Takt */\ } void usec(unsigned char cnt) { TMR1L = ~cnt; TMR1H = ~0; TMR1IF = FALSE; // das int-flag verwenden while(!TMR1IF); // obwohl ints ausmaskiert sind } void usec100(unsigned char cnt) { do {usec(100);} while(--cnt != 0); } void msec10(unsigned char cnt) { do { TMR1L = ~(10000 % 256); TMR1H = ~(10000 / 256); TMR1IF = FALSE; // das int-flag verwenden while(!TMR1IF); // obwohl ints ausmaskiert sind } while(--cnt != 0); } #pragma library 0 /* ENDE */