Taschen rechner mit ATMega32.Nachkommazahlen. C-Programmierung

OP #3932278
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
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.
OP #3932342
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

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.