Von der Datei conio.h hab ich im Zusammenhang mit AVRs noch nie gehört. Die Funktion printf wird über die Headerdatei stdio.h zur Verfügung gestellt.
Hi,
ich habe im Wiki über den printf befehl gelesen. Er funktioniert bei mir nicht. jetzt denke ich esw lieg daran das ich conio.h nicht einbinden konnte. Es gibt es nicht mehr. mit der Suchfunktion von windows fand ich es auch nicht.
Woran kann der fehler liegen oder wo ist conio.h?
Von der Datei conio.h hab ich im Zusammenhang mit AVRs noch nie gehört. Die Funktion printf wird über die Headerdatei stdio.h zur Verfügung gestellt.
Im RN-Wiki ist das bei den Beispielen eingebunden.
Pascal hat Recht, für printf brauchst Du die stdio.h.
Hier mal ein Code, der funktioniert. Die Werte für Taktfrequenz und Baudrate in Zeile 4 und 5 musst Du noch anpassen:
Im Wiki habe ich jetzt auf die schnelle keinen Artikel gefunden, in dem printf behandelt wird bzw. die conio.h eingebunden wird..... poste doch mal den Link...Code:#include <io.h> #include <stdio.h> #define F_CPU 8000000 // z.B. 8 MHz Taktfrequenz #define UART_BAUD_RATE 9600 // z.B. 9600 kb/s #define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*16l)-1) int uart_putchar(char c) { if (c == '\n') uart_putchar('\r'); loop_until_bit_is_set(UCSR0A, UDRE); UDR0 = c; return 0; } void UartInit(void) { UCSRB = 0x08 //UART Transmitter aktivieren UBRRL = UART_BAUD_SELECT; //Baud Rate einstellen } int main (void) { UartInit(); //Schnittstelle initialisieren fdevopen(uart_putchar, NULL, 0); printf ("HelloWorld"); }
askazo
Danke!
Hier im normalen C tutorial: https://www.roboternetz.de/wissen/index.php/C-Tutorial
Ich dachte das hat irgendwie zusammenhang mit den AVRs. In welche entwicklungsumgebung wird das dann gemacht?
Nein, das C-Tutorial bezieht sich wohl auf reines ANSI-C.
Das wirst Du so bei allen Entwicklungsumgebungen finden, die Programme für PCs compilieren.
Viel davon ist auch auf den AVR übertragbar, aber was die Header-Dateien und die Ausgaberoutinen angeht, ist's dann doch schon ein wenig unterschiedlich. Das fängt schon damit an, dass ein µC (erst mal) keinen Monitor und keine Tastatur und somit keine Standard-Ein- und Ausgabe-Geräte hat.
Gruß,
askazo
Das C-Turorial aus dem Wiki ist nicht sonderlich zu empfehlen, es enthält noch sehr viele Fehler und ist unvollständig.
Zu conio: Was soll denn auf einem Controller die Console sein und ein "Bildschirm-Lösch" bewirken?
Disclaimer: none. Sue me.
Bildschirm-Lösch ist vielleicht den ganzen Text im Hyperterminal zu löschen, der über RS232 rein kam. So dachte ichs.
das Conio für die console steht wusste ich nicht. Aber welche entwicklungsumgebung wird in diesem Tutorial verwendet? VisualC?
C wurde für ursprünglich für Computer (Mainfraimes) entwickelt.
Von C gibt es sehr viele Dialekte, aber auch bestimmte Normen.
Eine Untermenge der Sprache C wird mit den C-Compilern für
die uC ausgeliefert. So fehlt in der Regel eine dynamische Speicherverwaltung.Diese ist bei einem uC mit seinen Programmen die vor allem aus Code aber kaum aus vielen Daten bestehen auch nicht notwendig.
Schau mal in der Dokumentation deines Compilers nach und vergleiche
mit den verschiedenen ANSI Normen für C.
MfG
Ruedi
ich glaub nicht das AVR-GCC alle normen beschreibt. Aber ich weiß noch immer nicht welchen Compiler ich dafür verwenden könnte!
Lesezeichen