PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 80C167, Timer T5, T6; C-Programmbeispiele



tendorshiff
20.06.2006, 10:00
ich wäre dankbar für ein Paar Programmbeispielen auf Programmiersprache "C" für den Mikrocontroller C167 (oder Familie C166) mit Timer T5, T6-Programmierung. Idealweise (aber nicht nur das, auch allgemein) für die Zeiteinstellung per Timer T5,T6 z.B. für leuchtende LED: 1 sek - leuchtet, 0.5 sek - nicht leuchtet.
Bedanke mich für sachlichkeit

SprinterSB
20.06.2006, 10:19
Hier was für T2, T3. Vielleicht gibt's dir ja ne Idee, wie es mit T5, T6 geht...

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
}