Hi! Ich würde gerne ein paar Debugfunktionen in mein Programm integrieren, eventuell auch eine Möglichkeit, es über UART etwas zu steuern. In meinem schlauen aber mittlerweile auch nicht mehr so brandaktuellen AVR Buch steht drin, dass man für Terminalfunktionen die stdio.h verwenden könne. Leider ist das darin auch recht schwammig thematisiert und im Internet finde ich nix gescheites darüber. Kann jemand mal kurz erklären ob mir stdio.h Funktionen bereitstellt mit denen ich so ohne größere Hürden ganz einfach Sachen auf dem UART ausgeben kann? lg PoWl
Immer aktuell und hilfreich ist die mitgelieferte Dokumentation. Die findet sich auf deiner Festplatte, aber auch online hier: http://www.nongnu.org/avr-libc/ Im Kapitel zu stdio.h http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html gibt es ein Beispiel zur Verwendung von printf. Wenn du nur Texte ausgeben willst, reicht auch uart_putchar aus dem Beispiel. Oliver
sry, gerade das verstehe ich nicht. Ich sehe da keine Funktion wie uartinit(). Muss ich die selbst schreiben? Dann kann ich auch gleich alles selbst entwickeln ;-)
Du musst nur eine Methode bereitstellen, um ein einzelnes Zeichen rauszusenden. Die ist im einfachsten Fall ein Zweizeiler, den du direkt aus der Dokumentation rauskopieren kannst. Wenn du mehr/andere Features brauchst, halt entsprechend umfangreicher... Bsp: einen Stream der über Ethernet/TCP ausgibt, Bufferung des UARTS, senden über IRQ usw.
>Muss ich die selbst schreiben? Nee. Du musst nur google intelligent anwenden, es gibt tonnenweise Code dazu im Netz (auch hier in der Codesammlung). Aber was solls, hier z.B. Beitrag "Fernbedien RC5 Empfänger" ist eine minimal-uart-Augabe drin. Zusammenbasteln musst du dir das aber schon selber. Ausserdem: AVR-Programmieren, ohne das Datenblatt zu lesen, geht nicht. Auch wenn das alles auf English ist, würg dich da durch. Da gibt es auch Code-Schnipsel. Oliver
Paul Hamacher wrote: > sry, gerade das verstehe ich nicht. Ich sehe da keine Funktion wie > uartinit(). Muss ich die selbst schreiben? Dann kann ich auch gleich > alles selbst entwickeln ;-) Ja, beim AVR muß man das selber machen. Der Grund sind die vielen verschiedenen Implementierungen (4 verschiedene Namen für den Empfangsinterrupt usw.). Außerdem will der eine die UART mit Polling, der andere über Interrupts, der eine mit FIFO, der andere mit Linearpuffer, der nächste invertiert usw. usw. Ich habe hier mal versucht die AVRs mit HW-UART zu erschlagen (als Interrupt mit FIFO): Beitrag "AVR-GCC: UART mit FIFO" Peter
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.