mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zeichen im Interrupt empfangen


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

wie lautet die logische Routtine für den Receive eines Zeichens im 
Interrupt?
(Plattform ARM LPC2134)
z.B.:
im main() wrden Interrupte initialisiert, Pins freigegeben use.
und per Interrupt Zeichen empfangen.
funktion im main loop die aus zeichen wartet
?????

Ich habe noch nicht mit Interrupts gearbeitet.
Könnt ihr mir logisches vorgehen darstellen.
Dann will ich versuchen Code auszusetzen.

Vielen Dank im Voraus.

Autor: taugenichts (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Guten Tag,

Hi,

>wie lautet die logische Routtine für den Receive eines Zeichens im
>Interrupt?

Logische Routine? Ich nehme an, du erhälst Zeichen über die serielle 
Schnittstelle deines µCs?

(Plattform ARM LPC2134)

>Kenne ich (leider) nicht - ist aber zunächst egal.

>z.B.:
>im main() wrden Interrupte initialisiert, Pins freigegeben use.

Gut. Dann wird also auch ein Interrupt aktiviert, der dich über den 
Empfang eines Zeichens informiert!?

>und per Interrupt Zeichen empfangen.

Aha. Dann musst du eine Interrupt-Service-Routine schreiben, die bei 
Auftreten des Interrupts das empfangene Zeichen einliest, speichert und 
evtl. ein Flag setzt, damit deine Main-Routine weiss, dass ein Zeichen 
da ist und verarbeitet werden kann.

>funktion im main loop die aus zeichen wartet

>Ich habe noch nicht mit Interrupts gearbeitet.
>Könnt ihr mir logisches vorgehen darstellen.
>Dann will ich versuchen Code auszusetzen.

Also:

1) Initialisierung (Ports, Interrupts, ...)
2) Interrupt-Service-Routine(n) schreiben, die die Interrupts behandeln
3) Programm schreiben (main)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe Interrupt

Autor: Gast (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke für diese Infos, die Sache ist nicht ganz leicht.
Ich bin jetzt auf der Stuffe 1: Also Interrupt Initialiesierung 
(Prozessor_Port habe ich schon).

Also in meinem main wird eine Funktion 
aufgerufen(init_interrupt_uart1()),
die den Interrupt initialisieren soll. Über UART1 wird empfangen, also 
muss ich für diesen Interrupt initialisieren.


1) Initialisierung (Ports, Interrupts, ...)
eigenem C-File bearbeitet wirden dann die Register gesetzt:
uart1_interrupt_init();
{

//UART1 ist ein non-vectored IRQs spielt das eine Rolle
// Disable all interrupts
VICIntEnClear = 0xFFFFFFFF; 

// Enable a UART1-interruppt as IRQ oder besser als FIQ?
VICIntSelect =  0x00000000; 

//UART1 are enabled interrupts  
VICIntEnable =  0x00000080;

// ISR ist die Funktion die ausgeführt wird, wenn der Interrupt auslöst.
VICVectAddr0=(unsigned long)ISR;

//UART1 Priorität auf 0 setzen                        //holds address where UART1 IRQ
ICVectCntl0 = 0x00000080;

}

Habe ich alle notwendigen Interrupts erwischt?
Sind diese richtig gesetzt?

VIELEN DANK!


2) Interrupt-Service-Routine(n) schreiben, die die Interrupts behandeln

3) Programm schreiben (main)
init_interrupt_uart1()

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.