mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik R8C interruppt Handling in C


Autor: Burkhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will die serielle Schnittstelle UART1 verwenden. Das Handling soll 
in C geschrieben werden und den Interruppt verwenden.

Wie ist das zu bewerkstelligen?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist das Problem?

Aber wenn du es dir einfach machen willst, lad dir einfach eine embOS 
trial version von segger.com runter (gibts da für HEW und IAR), im 
Rtosinit.c findest du immer ne Initialisierung und Interrupt Bearbeitung 
für die Uarts ;-).

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie ist das zu bewerkstelligen?

Du liesst das Datenblatt und lernst so wie du den IRQ einschaltest.

Du liest die Doku ueber den Compiler und lernst so wie du eine 
Interruptfunktion programmierst.

Du laesst dir von HEW entweder ein Assembler oder C Startupscript 
erzeugen und traegst da den Namen deiner Funktion ein.

Olaf

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

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Hilfe. Dann muss ich wohl einiges lesen. Dabei ist mir
ein Dokument von Renesas in die Hände gefallen.

In diesem Text wird das Grundsätzliche beschrieben.

Meine Fragen:

Ist diese Schema auf den r8c anwendbar?

In welchen Dateien sind die die Funktionen abzulegen?

z.b. von Seite 2 die Funktion void intr( void )
bzw. das Programm zum Retten der Register?

auf der Rechten Seite sind mir die folgenden Zeilen unklar

.section program
.glb _intr
_intr:

für den Augenblick reichts mir ersteinmal. Vielen Dank für eure Hilfe

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ist diese Schema auf den r8c anwendbar?

NAja, ich hab es jetzt keine Lust dein PDF zu lesen, aber normalerweise
zeichen sich R8C/M16C dadurch aus sehr kompatibel zu sein. Ausserdem 
stellt sich die Frage auf welchen R8C! Schliesslich ist das nur ein 
Oberbegriff
fuer viele Prozessoren.


> In welchen Dateien sind die die Funktionen abzulegen?

In der Vergangenheit hat HEW ein Assembler Programm erstellt wenn
du ein neues Project erzeugt hast. Dort konnte man halt die
Funktion eintragen. Dein Beispiel duerfte darauf beruhen.

Seit einiger Zeit kann man auch angeben das man ein C-Code haben will. 
Dann wird das halt dort eingetragen. Das koennte also ein bisschen davon 
abhaengen welche HEW/Compiler-Version man hat.

Olaf

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei einem C-Projekt legt die HEW die Datei intprg.c an, in der für alle 
Interruptvektoren des ausgewählten Prozessors eine leere Funktion 
definiert ist ala
#pragma interrupt _brk(vect=0)
void _brk(void){}
D.h. die entsprechende Stelle auskommentieren und in der eigenen C-Datei 
entsprechend neudefinieren.
// Include, Interruptvektor und Registername entsprechend anpassen
#include "sfr_r823.h"
... 
#pragma interrupt SerialReceive1(vect=20)
void SerialReceive1(void) {
   byte res = (byte)u1rb;
}

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.