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
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.