Forum: Mikrocontroller und Digitale Elektronik Zähler ohne Interrupt ?


von TOTO (Gast)


Lesenswert?

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.









von Jack B. (jackbraun)


Lesenswert?

>Ich habe nirgends ein Bit gefunden wo man denn Interrupt unterbinden
>kann.

Das versteh ich nicht. Es gibt doch das SFR IEN0, da kannst Du die
Interrupts einzeln freischalten.

von TOTO (Gast)


Lesenswert?

Ja das stimmt,aber die sind alle auf 0 (ET0 ET1 EX0 EX1).

Habs nochmal getestet und jetzt funktionierts !!
Hmmmmm, wiedermal ein bug irgendwo.

Suchen suchen suchen ...

danke






von Peter D. (peda)


Lesenswert?

TOTO wrote:

> Hmmmmm, wiedermal ein bug irgendwo.

Warscheinlich in dem ganzen Rest des Codes, den Du nicht gepostet hast.

Ich kann Dir versichern, ohne die Enable-Bits zu setzen, gibts auch 
keine Interrupts.

Und wenn man sie setzt, muß auch unbedingt ein Interrupthandler 
aufgesetzt werden. Sonst krachts und zwar an einer ganz anderen, völlig 
unverdächtigen Stelle.


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.