Hi, ich Programmiere den R8C (R5F21238) von Renesas mit HEW. Ich versuche schon eine ganze Zeit lang printf auf uart 1 zum laufen zu bekommen allerdings ohne erfolg. Ich binde stdio.h ein und initialisiere den UART1 der auch funktioniert. Benutze ich nun printf hängt sich der Controller auf. Compilieren lässt sich das ganze ohne Fehler und warnungen. Hat jemand einen Tipp was ich flasch mache..? Gruß Jörn
Lange ist es her... Da war ein Haken dabei, wenn mich meine Erinnerung nicht täuscht. Da beissen sich vielleicht Debugger und die Initialisierung in der C-Library. http://www.ureader.de/message/481067.aspx
Hi, ja das problem mit dem Debugger und Uart 1 ist mir bekannt, solange aber sofort auf RUN gestellt wird ohne Breakpoints und anhalten dürfte es keine Probleme geben.... hab auch schon komplett ohne Debugger getestet... Gruß Jörn
Wie äussert sich das Aufhängen? Kommt nur keine Ausgabe oder rennt der R8C komplett nicht mehr. Hast du schon einen Timer-Interrupt-Task laufen, der eine Lebenzeichen-LED blinken lässt? Vielleicht musst du zunächst den Ausgabestream UART1 auf printf richten. Defaultmäßig ist wahrscheinlich UART2 auf printf gebogen. Gängig ist eine fdevopen()-Funktion dafür, ich weiss aber nicht, ob das bei der R8C Standardlibrary auch so ist.
So wie es aussieht bleibt der Controller irgendwo in der printf funktion hängen. Alles was über Interrupts läuft funktioniert noch. Das mit dem fdevopen dachte ich auch, aber information dazu sind bei Renesas schwer zu finden. Hab nur mal irgendwo gelesen das printf Standartmäßig auf UART1 liegen soll...
Hi, ich kann mir gar nicht vorstellen das niemand printf auf dem R8C verwendet...? Bin für jeden Tipp dankbar... Gruß Jörn
"Wenn du die Hosen runter lässt, packe ich auch meinen aus." Also: Minimalsourcecode posten und ich schaue, ob der auf meinem R8C/13 (!) Board (Elektorplatine inkl. Elektor-Applicationboard) die gleichen Probleme zeigt und wenn ja, was man dagegen machen kann.
Hi, Minimalcode.... tja viel gibt es da nicht. Initialisierung des Uart..... und in der main schleife dann ganz einfach printf("Hallo Welt"); Sollte eigentlich reichen, da angeblich standartmäßig die ausgabe auf Uart 1 erfolgt. Gruß Jörn
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.