Gast
#559513
Hi,
Ich habe ein AT89c51ed2 und sdcc als compiler.
In meiner Applikation benutzte ich die P3_4(T0) P3_5(T1) als
Inkrementaleingänge.
Timer0 und Timer1 benutzte ich hierfür nur als Zähler (Counter), mit
TL0/TH0 und TL1/TH1.
Also zählen mit wenig CPU Intervention und ohne Interrupt.
Hierfür habe ich folgende Register konfiguriert:
TMOD=0x55;
TR1=ON; TR0=ON;
Das ganze klappt auch sehr gut so.
Was mir nur aufgefallen ist, ist das wenn es eine Interruprt routine
gibt diese auch ausgeführt wird:
void interex0 (void) interrupt IE0_VECTOR
{
Int0++;
return;
}
Wenn ich diese aus dem Code entferne, funktioniert es auch.
Aber warum wird überhaupt ein Interrupt generiert???
Zudem nie Überlauf des Zählers statt findet.
Ich habe nirgends ein Bit gefunden wo man denn Interrupt unterbinden
kann.
Abgesehen TR0 und TR1,doch dann funktionieren die Zähler auch nicht
mehr.
Was jemand bescheid warum das so ist ?
Danke im voraus.