unsigned int Tick;//// Timer isr//void interrupt 6 timer_isr(void){ // Clear Timer OverFlow Flag // And reset Timer Counter TSC_TOF = 0; TSC_TRST = 1; Tick++; if(Tick >= 625) { Tick = 0; PTA_PTA3 ^= 1; }}//// main//void main(void) { CONFIG1 = 0x01; CONFIG2 = 0x00; PTA = 0xFF; DDRA = 0xFF; // Configure Timer // MODULO Calculation for 0.1667 ms with no preescaler // TMOD = 0.1667 ms / 0.0000003125 = 533.44 = 0x0215 // 533 * 0.0000003125 = 0.0001665625 sec (0.1665625 ms) TSC = 0x70; TMOD = 0x0215; // Reset Timer Counters Tick = 0; TSC_TSTOP = 0;// go timer EnableInterrupts;// Enable Interrupts for(;;) { } }
Hi John,
See errata:
http://www.freescale.com/files/microcontrollers/doc/errata/MSE908QT2_3L69J.pdf
Regards David