Hier was für T2, T3. Vielleicht gibt's dir ja ne Idee, wie es mit T5, T6 geht...
Code:void timebase_setup (unsigned int ticks) { unsigned int prescale = 8; unsigned long reload; reload = (unsigned long) 65536 - F_CPU / (prescale * ticks); #if defined (__XC16X__) GPT12E_T3CON = 0x0000; /* Timermode, count up */ GPT12E_T2CON = 0x0027; /* Reloadmode for T3, count up, stop */ GPT12E_T2 = (unsigned int) reload; /* Reload for T3 */ GPT12E_T3IC = 0x40 | ((2 << 2) | 0); /* Int Level 2, group 0, enabled */ SET_SFRBIT(T3R); /* Timer 3 run */ #elif defined(C165) T3CON = 0x0000; /* Timermode, count up, stop */ T2CON = 0x0027; /* Reloadmode for T3, count up, stop */ T2 = (unsigned int) reload; /* Reload for T3 */ T3IC = 0x40 | ((2 << 2) | 0); /* Int Level 2, group 0, enabled */ SET_SFRBIT(T3R); /* Timer 3 run */ #else T0REL = (unsigned int) reload; T0 = (unsigned int) reload; T0IC = 0x40 | ((2 << 2) | 0); /* Int Level 2, group 0, enabled */ SET_SFRBIT(T0R); #endif }





Zitieren

Lesezeichen