kennt sich jemand mit SDCC aus.timer interrupt

Gast #4446199
Lesenswert?

#include <compiler.h>
#include <AT89C513xA.h>
#define REG8051_H
#define AT89C5131AUM_H
#define TH0_Startwert 0xfc /* 65536 - 1000 (1 msec)*/
#define TL0_Startwert 0x18 /* ergibt fc18 als Startwert */
#define LED1 P1_0





sbit at 0x90 LED1; /* Bit 0 von Port P1 */

/* Hauptprogramm */
void main(void)
{
char zaehler;
TMOD = 0x01; /* Timer 0 als 16 Bit Timer initialisieren */
TH0 = TH0_Startwert;
TL0 = TL0_Startwert;

zaehler = 0; /* Zähler für die Schleifendurchläufe */
TF0 = 0; /* Timer 0 Überlauf-Flag löschen */
TR0 = 1; /* Timer 0 Run-Bit setzen (Timer starten) */
while (1) /* Endlosschleife */
{
if (TF0 == 1) /* d.h.: Timer abgelaufen */
{
TF0 = 0;
TH0 = TH0_Startwert;
TL0 = TL0_Startwert;
zaehler++;
if (zaehler > 100) /* 100 ms */
{
LED1 = ~LED1; /* LED-Bit invertieren */
zaehler = 0;
}
}
}
}







Übersetze es mit flip aber es passiert nichts wo ist mein fehler :(

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren