Taschen rechner mit ATMega32.Nachkommazahlen. C-Programmierung

#3932278
Lesenswert?

Hallihallo.
Und zwar gehts um folgendes: Wir haben von der Schule ein kleines 
Programmierboard bekommen mit einem ATMega32, 16*2 LCD Display und 3*4 
Matrix Keypad, auf dem wir C Programmieren üben sollen.
Aufgabe war es einen Taschenrechner zu programmieren. Das klappt soweit 
ganz gut. Man wählt zuerst seine gewünschte Rechenoperation 
aus(Addition, Subtraktion, Multiplikation oder Division) und gibt dann 
die 2 gewünschten Zahlen ein. Diese Zahlen werden (im Moment noch) als 
Int abgespeichert. Das Ergebnis ebenso.
Zum anzeigen habe ich mir eine Funktion geschrieben, die mir Int zahlen 
am LCD ausgibt.
Aber ich komme auf keine Lösung für eine Funktion, die mir floatzahlen 
am LCD ausgibt. Wäre sehr nett wenn mir da einer helfen könnte.
#3932340
Lesenswert?

Patrick Hoefler schrieb:
> Zum anzeigen habe ich mir eine Funktion geschrieben, die mir Int zahlen
> am LCD ausgibt.
> Aber ich komme auf keine Lösung für eine Funktion, die mir floatzahlen
> am LCD ausgibt. Wäre sehr nett wenn mir da einer helfen könnte.

Kannst du kurz den Ansatz zeigen, den du wählst? Es gibt da mehrere 
Möglichkeiten: Man verwendet eingebaute int/float Typen und eingebaute 
Funktionen printf(...), itoa(...) etc.

Für einen Taschenrechner auf einem Mikrocontroller wäre es aber auch 
denkbar, die Datentypen und Funktionen selbst zu bauen, im Stile des 
schriftlichen Rechnens. Dann ist man nicht auf Float-Bibliotheken 
angewiesen, die teilweise berüchtigt sind für ihren Speicherbedarf und 
prinzipbedingt Rundungsfehler generieren.
#3932342
Lesenswert?

hmm zuerst wollte ich mir ja selbst eine schreiben, aber ich hab keine 
ideen wie ich das bewerkstelligen soll.

ich komm einfach nicht drauf wie ich die nachkommastelle verarbeiten 
soll. mit printf haben wir bisher nicht gearbeitet, ich weiss nichtmal 
ob das n befehl ist, den ich benutzen kann bei dem teil was wir da 
haben.
lcd_puts("TEXT"); //Zur ausgabe von strings am lcd
lcd_putc('T'); //Zur Ausgabe von Zeichen am LCD
lcd_put_number(zahl); //Zur Ausgabe von long int zahlen am lcd

ich schau mir mal die inoa funktion an, vll klappts ja damit.

danke für die hilfe :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren