Ich habe nun meine UART Library für die neuen ATmega48, ATmega88 und ATmega168 erweitert. Leider besitze ich diese Controller noch nicht, deshalb wäre ich dankbar wenn jemand meine Library mit diesen Controllern testen würde.
Ja und hier findet sich meine UART Library: http://homepage.sunrise.ch/mysunrise/peterfleury/avr-software.html
Hallo Peter Fleury, Test der Library mit ATmega48 und "test_uart.c" bringt erwartetes "Verhalten" - schaut gut aus. Testumgebung: ATmega48, STK500, F_CPU=3,6864MHz, 9600bps Bei der Gelegenheit: Danke fuer die Library. Funktioniert gut und hat mir schon oft Zeit gespart. Vorschlaege fuer Erweiterung: - in uart_init u2x-Handling einbauen ( z.B. uartinit(baud, withU2X) ) - uart_putint und uart_puthex-Funktion (evtl. ueber #ifdef abschaltbar bei knappem Speicher) Martin Thomas
Ja über u2x-Handling habe ich schon nachgedacht. Allerdings muss ich dazu das API uart_init() anpassen (zusätzlicher Parameter). uart_putint(), uart_puthex() ist definitiv der falsche Weg. Für die Konversion von int nach ASCII stehen in der AVRlib mit itoa() kompakte Standart-Funktionen zur Verfügung, mit denen man eine Zahl in einen String umwandlen kann und dann mit uart_puts() ausgeben kann. Siehe auch AVR-libc Manual->Modules->General utilities sowie das Beispiel test_lcd.c von meiner lcd-Library.
Die genannten avr-libc-Funktionen und auch die lcd_library sind mir wohl bekannt und ich nutze auch regelmaessig die beschriebene Vorgehensweise. Ob der Weg "definitiv" falsch ist, vermag ich nicht zu beurteilen - zumindest "hier" habe ich diese Funktionen in der Library ergaenzt und nutze sie regelmaessig. War nur ein Vorschlag, da Fragen betr. "Int./Hex-Werte ausgeben" immer wieder in Foren/Mailinglisten auftauchen.
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.