WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   BORLAND C & SERIELLER INTERRUPT (http://www.wcm.at/forum/showthread.php?t=48553)

PsychoMAX 04.03.2002 23:35

BORLAND C & SERIELLER INTERRUPT
 
hi!

wie bekomm ich von der com2 einen receive interrupt?

ich hätte mir gedacht so:
#define PORT1 0x2F8 //Port (Serielle Schnittstelle)einstellen
#define INTVECT 0x0B //IRQ von der Seriellen einstellen

void interrupt(*oldport1isr)(); //Interruptfunktion

void initseri(void) //Serielle initialisieren
{
outportb(PORT1 +1,0); //interrupts ausschalten Port1
oldport1isr = getvect(INTVECT); //alten interrupt speichern, zum sp„teren wiederherstellen
setvect(INTVECT, PORT1INT); //Interruptvector setzen
outportb(PORT1 +3,0x80); //DLAB ein
outportb(PORT1+0,0x0C); //Boud Rate einstellen Low Byte
outportb(PORT1+1,0x00); //High Byte boud rate setzen
outportb(PORT1+3,0x03); //8Bit no parity 1 stop bit
outportb(PORT1+2,0xc7); //FIFO control Register
outportb(PORT1+4,0x0b); //einschalten DTR RTS OUT2
outportb(0x21,(inportb(0x21) & 0xf7)); //setzen des Interrupts (Controller)
outportb(PORT1+1,0x01); //Interrupt wenn Daten empfangen sind

}

void interrupt PORT1INT() //interruptfunktion
{

in_buffer[count]=inportb(PORT1);
if(in_buffer[count] == '\r')
{
in_buffer[count] = '\n';
in_buffer[count+1] = '\0';
check=1; //Flag setzen
count=0;
}
count++;
outportb(0x20,0x20); //Setzen der Interrupt-Kontrollvariable
}

es kommt aber kein interrupt beim empfangen!

hewlett 05.03.2002 12:19

müsste eigentlich richtig sein!

hewlett 05.03.2002 12:19

oder frag einfach den Prof. Ehrenbrandtner!

PsychoMAX 05.03.2002 12:24

Zitat:

oder frag einfach den Prof. Ehrenbrandtner!
:roflmao:
da kann ich auch die wand fragen!:lol:

08.03.2002 14:13

I glaub, dass du das in deinem Leben an der HTL nimma oft brauchen wirst. Ausserdem bringts da jez sowieso nix mehr, weil ma des prog eh scho obgebn müssn hom! Ausserdem könntest ja den oberprogrammiermasta prof. ehrenbrandtner fragen, der braucht eh nur 121324535 stunden, dass ers selbst mal checkt und weitere 324252 um es dir zu vermitteln!mfG Aschi:ms:

hewlett 08.03.2002 18:07

@gaschauer:

Blöd ist es nur wenn er deine blöden Sprüche im Forum liest, dann wirst du nämlich "schwerwiegende" Probleme bekommen!:lol: :lol: :lol:


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag