Forum: Mikrocontroller und Digitale Elektronik Externer Interrupt1 wird nicht ausgelöst


von Leo Haider (Gast)


Lesenswert?

Hy Leute,

Hab ein Problem mit dem externen Interrupt INT1# beim 8051er.

Und zwar hab ich gelesen das er low sensitive ist, dh. dass wenn man den 
PIN auf Masse zieht, den Interrupt setzt.

Mein Problem: Er springt einfach nicht in den Interrupt rein, habe alle 
SFR´s durchforstet aber nichts funktioniert :(

Hier mein Code:


#define ALLOCATE_EXTERN
#include "ezusb.h"
#include "ezregs.h"


void main (void)
{

  PORTCCFG=0x08; // Zweitbelegung vom Port, 0x08 ist der Interrupt1, 
alle    anderen werden als I/O Ports verwendet (Erstbelegung)
  PORTBCFG=0x00; //C Port dient zum einlesen und der B-Port zum 
ausgeben.
  EA=1;
  EX1=1;´//Enable extern interrupt1
  IT1=0; //Auf falling level triggern
  TCON=0x00;
  OEC=0x00;
  OEB=0xFF;

while(1)
{
  OUTB=0x00;
}
}
void inteins (void) interrupt 3
{
 OUTB=0xFF;

  if (!(PINSC&0x08))
  {
    OUTB=0x00;
  }

}

Das Programm soll nur beim Interrupt alle Ports auf PortB HIGH setzen, 
sonst NULL.
Bin sehr im Stress, kenn mich fast gar nicht mehr aus, hänge schon 2 
Stunden daran :S
MFG

von holger (Gast)


Lesenswert?

Beitrag "Probleme mit externen TIMER"

Noch einer aus der Klasse;)

von Leo Haider (Gast)


Lesenswert?

Was ???

Das war nicht eine hilfreiche Antwort...

von mr. mo (Gast)


Lesenswert?

lol.

sind zur zeit viele projekte am start? :D

von Karl H. (kbuchegg)


Lesenswert?

> Das Programm soll nur beim Interrupt alle Ports auf PortB HIGH setzen,

und das stellst du wie fest?

Dir ist hoffentlich schon klar, dass deine Hauptschleife nach dem 
Interrupt sofort den PortB wieder komplett auf 0 zieht. D.h. ohne Oszi 
wirst du das nicht sehen können.

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.