Taschenrechner Eigenbau?

Gast #1452356
Lesenswert?

Hi,

warum find ich im Netz nix zu selbstgebauten/umgebauten Taschenrechnern 
basierend auf einem Mikrocontroller? Gesucht und gesucht, aber nichts 
dergleichen gefunden.. Nur lande ich immer wieder bei von haus aus 
programmierbaren 100€-Rechnern.. Kennt ihr zufällig was? Ich such 
Projektergebnisse von leuten die das auch gemacht haben..
#1452362
Lesenswert?

paUl schrieb:
> Hi,
>
> warum find ich im Netz nix zu selbstgebauten/umgebauten Taschenrechnern
> basierend auf einem Mikrocontroller? Gesucht und gesucht, aber nichts
> dergleichen gefunden.. Nur lande ich immer wieder bei von haus aus
> programmierbaren 100€-Rechnern.. Kennt ihr zufällig was? Ich such
> Projektergebnisse von leuten die das auch gemacht haben..

Weil es sich finanziell nie lohnen wird. Kostet ungefähr das Zehnfache, 
sieht dann immer noch gebastelt aus und "frisst" unendlich viel 
Freizeit.
Ein Beispiel:
http://www.elektor.de/products/books/e-books/programmierbare-taschenrechner.503602.lynkx
Gast #1452379
Lesenswert?

hm.. is in assembler.. C wär mir lieber.

vielleicht ließe sich auch einfach ein bestehender taschenrechner 
erweitern, so dass ich zwischen original-taschenrechner und 
mikrocontroller wählen kann..

wie sorg ich dann da dafür, dass es keine probleme gibt? wenn ich den 
mikrocontroller aktivier, is ja nich automatisch alles von der 
originalbeschaltung getrennt..
Gast #1452400
Lesenswert?

Helmut S. schrieb:
[...]
>
> Weil es sich finanziell nie lohnen wird. Kostet ungefähr das Zehnfache,
> sieht dann immer noch gebastelt aus und "frisst" unendlich viel
> Freizeit.

Auch Tennisspielen wird sich in den meisten Fällen finanziell nie 
lohnen, man landet auf der Weltrangliste höchstens auf Platz 100000 und 
Tennisspielen frisst unendlich viel Freizeit.

Schon meine Eltern haben so argumentiert wie Du. Ich frage mich bis 
heute, warum technische Hobbies immer irgend wie ökonomisch bewertet 
werden. Es sind Hobbies! Was ist so schwer daran zu verstehen. Wenn 
jemand in seiner Freizeit einen Taschenrechner selbst entwickeln möchte 
- warum nicht? Andere bauen Flaschenschiffe, speieln Tennis, Golf, 
Handball, Fußball, motzen ihren Golf oder Dreier-BMW mit zigtausenden 
von Euro auf. Das wird akzeptiert.

> Ein Beispiel:
> 
http://www.elektor.de/products/books/e-books/programmierbare-taschenrechner.503602.lynkx

ciao

Marcus
Gast #1452403
Lesenswert?

Marcus Woletz schrieb:
[...]
> heute, warum technische Hobbies immer irgend wie ökonomisch bewertet

ersetze "teschnische Hobbies" durch "Elektronikhobby"

und ergänze Liste akzeptierter Geldschlucker um "Modellbahn", 
"Modellflug" etc. auch seine Klamotten selbst zu stricken ist zumeist 
ökonomisch nicht sinnvoll ;-)

[...]

ciao

Marcus
Gast #1452407
Lesenswert?

>Wenn jemand in seiner Freizeit einen Taschenrechner selbst entwickeln möchte
>- warum nicht?

Weil es in C ein Kinderspiel ist, also keine wirkliche Herausforderung.
C lieferet schon eine Menge mathematischer Funktionen mit.
Wenn man die in Assembler realisiert, ist das schon was anderes.
Willst du in einer Woche das Ding komplett fertig haben?
#1452413
Lesenswert?

Marcus Woletz schrieb:
> Helmut S. schrieb:
> [...]
>>
>> Weil es sich finanziell nie lohnen wird. Kostet ungefähr das Zehnfache,
>> sieht dann immer noch gebastelt aus und "frisst" unendlich viel
>> Freizeit.
>
> Auch Tennisspielen wird sich in den meisten Fällen finanziell nie
> lohnen, man landet auf der Weltrangliste höchstens auf Platz 100000 und
> Tennisspielen frisst unendlich viel Freizeit.

Schon richtig.
Aber gerade bei Taschenrechner und Bastlern ist die Situation doch die: 
Irgendwie sinnvoll soll die Bastelei ja auch sein. Und es macht nun mal 
wenig Sinn ein Gerät komplett aufzubauen (mit Gehäuse u.dgl.), das du 
bei Tschibo um 1 Euro 80 kaufen kannst oder zur Kilopackung Kaffe als 
Werbegeschenk mit dazubekommst.

Das Interessante bei einem Taschenrechner ist ja letztendlich die 
Programmierung. Und die kann man genausogut auch auf einem PC ohne 
irgendwelche externe Hardware machen. Sooo interessant sind 
Matrixtastatur und LCD Anzeige dann auch wieder nicht, dass ein 
Taschenrechner ein wochenendfüllendes Thema wäre. Da gibt es 
Interessanteres.

Und deshalb (meine Meinung) findet im Web relativ wenig zu diesem Thema.
Gast #1452427
Lesenswert?

Wenn man aber dafür sorgen will, dass Rundungsfehler durch 
Fließkommarechnung nicht auffallen, wird das ganze nicht mehr so 
trivial. Das schafft noch nicht mal Excel, obwohl es da durch hohe 
Rechenleistung und um ein vielfaches leichter wäre, nur mit Integer zu 
rechnen.


Man trage in eine Spalte untereinander folgende vier Zahlen ein:

0,05
-0,07
0,02
0

Nun addiere man diese Zahlen. Das richtige Ergebnis ist 0.

OpenOffice.org macht es übrigens richtig. Nein, die rechnen intern auch 
nicht mit Integer aber die verstehen es die Rundungsfehler nicht 
erscheinen zu lassen.
Gast #1452428
Lesenswert?

Das ist doch ein schöne Projekt!
Da bekomme ich auch fast Lust was zu machen. Einen HP/TI/Casio kann ja 
jeder auf dem Schreibtisch liegen haben. Aber ein selbstbau Rechner, am 
besten ohne gehäuse, macht doch mal eindruck auf die Kollegen/Kunden ;-)

Auch in C kann man sich da schön mit beschäftigen. Schon einen 
vernünftigen Parser für algebraische Ausdrücke zu schreiben (ohne 
inspiration im Netz!!!) ist ne nette beschäftigung.
Gast #1452433
Lesenswert?

Karl heinz Buchegger schrieb:
[...]
> Schon richtig.
> Aber gerade bei Taschenrechner und Bastlern ist die Situation doch die:
> Irgendwie sinnvoll soll die Bastelei ja auch sein. Und es macht nun mal
> wenig Sinn ein Gerät komplett aufzubauen (mit Gehäuse u.dgl.), das du
> bei Tschibo um 1 Euro 80 kaufen kannst oder zur Kilopackung Kaffe als
> Werbegeschenk mit dazubekommst.

Im Prinzip stimme ich Dir zu. Allerdings wird der OP schon einen Anreiz 
haben, das durchzuziehen. Welcher Anreiz das auch immer sein mag. Ich 
reagiere inzwischen leider ein wenig verschnupft, weil einfach immer mit 
der ökonomische Keule draufgehauen wird. So gesehen müssten 99,9% aller 
Elektronikbasteleien sofort eingestampft werden. Vielleicht ist es genau 
diese Einstellung, die den massiven Einbruch bei den Elektronikbastlern 
in den 90er-Jahren bewrikt hat.

[...]

ciao

Marcus
#1452434
Lesenswert?

heinz schrieb:
> Das ist doch ein schöne Projekt!
> Da bekomme ich auch fast Lust was zu machen. Einen HP/TI/Casio kann ja
> jeder auf dem Schreibtisch liegen haben. Aber ein selbstbau Rechner, am
> besten ohne gehäuse, macht doch mal eindruck auf die Kollegen/Kunden ;-)

Ne nix "ohne Gehäuse", wenn schon dann schönes Acrylglasgehäuse. ;)

und schöne Tasten ausdenken ..
Gast #1452435
Lesenswert?

und wenn ich da an die ganzen funktionen meines jetzigen taschenrechners 
denk.. rechnen in anderen systemen, etc..

wie könnte ich denn eine umschaltung zwischen taschenrechnerelektronik 
und eigenem mikrocontroller realisieren? das ganze teilt sich ja dann 
teile der schaltung und ist damit ja nicht vollständig voneinander 
getrennt..
Gast #1452439
Lesenswert?

Karl heinz Buchegger schrieb:
[...]
> Das Interessante bei einem Taschenrechner ist ja letztendlich die
> Programmierung. Und die kann man genausogut auch auf einem PC ohne
> irgendwelche externe Hardware machen.

Elektronikbasteln kann man dank immer ausgefeilterer 
Simulationsprogramme (ich meine hier nicht unbedingt SPICE), mit denen 
man das Elektronikbasteln komplett auf den PC verlagern kann. Trotzdem 
sind das einfach nur Trockenübungen. Sowas würde mich nie reizen. Einzig 
Spice ist interessant, um ein bestimmtes Verhalten von Teilen einer 
Schaltung zu testen, bevor man dann alles in Hardware gießt. Aber rein 
virtuell am PC zu experimentieren, würe mir einfach zu langweilig.

[...]

ciao

Marcus
#1452441
Lesenswert?

STK500-Besitzer schrieb:
>>Wenn jemand in seiner Freizeit einen Taschenrechner selbst entwickeln möchte
>>- warum nicht?
>
> Weil es in C ein Kinderspiel ist, also keine wirkliche Herausforderung.
> C liefert schon eine Menge mathematischer Funktionen mit.
Ist es leider nicht. Der Grund: der heißgeliebte AVR-GCC macht leider 
nur 32 bit Genauigkeit. Also müssen alle Mathefunktionen zu Fuß neu 
programmiert werden. Und wenn mehr als nur die 4 Grundrechenarten 
gefordert sind, ist das auch in C eine Herausforderung.

Gruß
Jadeclaw.
Gast #1452448
Lesenswert?

Marcus Woletz schrieb:

>Es sind Hobbies! Was ist so schwer daran zu verstehen. Wenn
>jemand in seiner Freizeit einen Taschenrechner selbst entwickeln möchte
>- warum nicht?

Auch wenn ich den Beitrag des Threadstarters nur überflogen habe:

Er will nicht ENTWICKELN -- er will irgendetwas abkupfern, was sich ein 
anderer irgendwo anders abgekupfert hat. Und wie Herr Buchegger schon 
bemerke, in C ist das eh recht trivial, jedenfalls wenn man Bibliotheken 
anderer Leute verwendet. Na ja, immer noch besser als Videos gucken...
#1452457
Lesenswert?

Jadeclaw Dinosaur schrieb:

> Ist es leider nicht. Der Grund: der heißgeliebte AVR-GCC macht leider
> nur 32 bit Genauigkeit. Also müssen alle Mathefunktionen zu Fuß neu
> programmiert werden. Und wenn mehr als nur die 4 Grundrechenarten
> gefordert sind, ist das auch in C eine Herausforderung.

Ich glaube, dass zumindest früher viele Taschenrechner BCD Arithmetik 
mit Mantisse und Exponent gemacht haben. Dazu noch 2 oder 3 nicht 
angezeigte Schattenstellen um die Rundungsfehler im Zaum zu halten.
Hast du erst mal die 4 Grundrechnungsarten, gehen die restlichen 
Funktionen nach dem Muster: Im Web ein Verfahren suchen, mit dem man das 
Gewünschte mit den Grundrechenarten bzw. den Funktionen die man schon 
hat berechnen kann.

Ist grundsätzlich eine schöne Übung.

> Er will nicht ENTWICKELN -- er will irgendetwas abkupfern,
> was sich ein anderer irgendwo anders abgekupfert hat

He, he.
Persönlich denke ich, dass wir jetzt der Sache schon näher kommen :-)
Gast #1452459
Lesenswert?

Hallo Helmut,

Helmut Lenzen schrieb:
>>Soooo einfach ist das auch in C nicht. Zumindest wenn man . vor -,
>>Funktionen, Klammern und ähnliches machen will.
>
> Und  soooo kompliziert nun auch wieder nicht. Einfach ein bisschen
> rekursiven Code und das wars auch schon. BNF lässt grüssen.

klar, deshalb füllt das Drachenbuch ja nur weit über tausend Seiten. OK, 
ein recursive descent Parser ist nicht extrem kompliziert, aber man muss 
sich schon ein klein wenig einlesen, um das Prinzip zu vrstehen.

Nur weil man den Parser in BNF notieren kann, heißt das noch lange 
nicht, dass man das Ding dann auch als Programm umzusetzen vermag. Und 
einfach durch bison etc. durchjagen dürfte mangels Speicherplatz im AVR 
auch ein wenig eng werden, wenn auch noch anderes Zeug reinsoll.

>
> Gruss Helmi

ciao

Marcus
Gast #1452461
Lesenswert?

Stefan Salewski schrieb:

[...]
> Er will nicht ENTWICKELN -- er will irgendetwas abkupfern, was sich ein

na ja, das ist doch von der ökonomischen Seite her gar nicht so verkehrt 
;-)

[...]

ciao

Marcus
#1452464
Lesenswert?

Marcus Woletz schrieb:

> klar, deshalb füllt das Drachenbuch ja nur weit über tausend Seiten. OK,
> ein recursive descent Parser ist nicht extrem kompliziert, aber man muss
> sich schon ein klein wenig einlesen, um das Prinzip zu vrstehen.

Schon klar.
Nur muss man nicht die komplette Theorie Compilerbau pauken um einen 
Punkt vor Strich Taschenrechner zu bauen.

Im C++ Standardwerk vmo Stroustoup ist einer drinnen. Der Code ist ca. 
eine halbe Buchseite groß (müsste jetzt nachschlagen)

> Nur weil man den Parser in BNF notieren kann, heißt das noch lange
> nicht, dass man das Ding dann auch als Programm umzusetzen vermag. Und
> einfach durch bison etc. durchjagen dürfte mangels Speicherplatz im AVR
> auch ein wenig eng werden, wenn auch noch anderes Zeug reinsoll.

Es gibt auch Generatoren die einen rekursive-decent-Parser erzeugen.
Gast #1452523
Lesenswert?

Ein Parsergenerator (egal nach welchem Prinzip er arbeitet) ist doch mit
Kanonen auf Taschenrechner geschossen, zumal ein damit generierter
Parser (aber auch ein handgeschriebener RD-Parser) normalerweise dafür
ausgelegt ist, einen kompletten Term vorgesetzt zu bekommen, der dann
ohne weiteren Benutzereingriff zu einem Ergebnis oder einer Fehlermel-
dung verarbeitet wird.

Ein Taschenrechner ist aber im Vergleich zu einem typischen Compiler und
sogar einem Basic-Interpreter ein maximal interaktives Instrument. Man
kann bereits während der Eingabe Zwischenergebnisse sehen und teilweise
verarbeitete Eingaben bei Bedarf noch korrigieren. Ein eingegebener Term
ist nie abgeschlossen, da jederzeit weitere Operationen angehängt werden
können. Eine strenge Syntax gibt es bei einem Taschenrechner auch nicht.
Zumindest habe ich noch bei keinem der nach klassischem Muster arbeiten-
den Modelle die Meldung "Syntax Error" auf dem Display gesehen¹. Fast
jede denkbare Reihenfolge von Tastendrücken hat eine mehr oder weniger
sinnvolle Bedeutung. Im Zweifelsfall werden einzelne Tastendrücke eben
einfach ignoriert.

Bei der Implementierung einer Taschenrechnersoftware sollte man deswegen
weniger in Grammatiken, sondern direkt in Aktionen der Ausführungsein-
heit denken, die ein Gebilde ähnlich einem Kellerautomat ist. Man hat
also einen Zustand (repräsentiert durch eine oder mehrere Systemvariab-
len) und einen Stack für Zwischenergebnisse und halbfertige Operationen.
Man überlegt sich für jede einzelne Taste (so arg viele gibt es ja nicht
davon) in Abhängigkeit vom aktuellen Zustand und den obersten Stack-Ele-
menten eine Aktion, die in geeigneter Weise den Zustand und den Stack
verändert und den Anzeigeninhalt modifiziert.

Das Vorgehen hierfür ist ziemlich geradlinig und nicht besonders schwer,
wenn man sich erst einmal im Klaren darüber ist, was der Rechner hinter-
her im Detail tun soll. Da man aber bzgl. der wirklichen Details anfangs
meist nur eine schwammige Vorstellung hat, hilft es, einen bereits
existierenden Taschenrechner daneben zu legen und ggf. auszuprobieren,
wie dieser in bestimmten Situationen reagiert.

Kümmert man sich um diese Details nicht, hat man hinterher zwar ein
Gerät, das vielleicht richtig rechnet, aber trotzdem nicht das Look-
and-Feel hat, das man von einem "richtigen" Taschenrechner unbewusst
gewohnt ist.

So ein Taschenrechner ist sicher ein lustiges und nicht ganz nutzloses
Projekt, wenn man ein paar Spezialfunktionen einbaut, die in gewöhn-
lichen Taschenrechnern nicht findet, weil sie von der Masse der Käufer
nicht gewünscht werden. Ein Beispiel, was mir gerade so einfällt, wäre
ein fünfter Infixoperator (neben +, -, * und /), der x*y/(x+y), also die
Parallelschaltung von Widerständen oder die Reihenschaltung von Konden-
satoren berechnet. Oder gibt es das vielleicht schon?

Man kann zwar viele fehlende Funktionen auch mit einem programmierbaren
Rechner erschlagen, nur sind sie dann meist nicht so leicht zugänglich,
als wenn man dafür dedizierte Tasten an passender Stelle auf dem Bedien-
feld hat.


¹) Bei einigen neumodischen Geräten mag das anders sein, da diese
   teilweise eingabezeilenorientiert (also ähnlich wie ein Basic-
   Interpreter) arbeiten.
Gast #1452528
Lesenswert?

"CORDIC" (s. Wikipedia) lautet das Zauberwort, wenn es darum geht, 
höhere mathematische Funktionen in den kleinstmöglichen Programmraum zu 
quetschen...

...wenn man damit umzugehen versteht, bringt man so den kompletten Code 
für arithmetische, logarithmische und trigonometrische 
Gleitkomma-Funktionen in weniger als 8000 Bit (richtig gelesen... 
...nicht etwa Byte ;-) ) unter. Beispiel: "HP-35" (s. Wikipedia).

Da bleibt selbst in kleineren PIC- und Atmel-Prozessoren noch viel Platz 
für Nebenjobs wie Tastatur-Scannen und Display-Multiplexen.

MfG
Gast #1452559
Lesenswert?

>>Autor: hst (Gast)

>>Wenn man aber dafür sorgen will, dass Rundungsfehler durch
>>Fließkommarechnung nicht auffallen, wird das ganze nicht mehr so
>>trivial. Das schafft noch nicht mal Excel, obwohl es da durch hohe
>>Rechenleistung und um ein vielfaches leichter wäre, nur mit Integer zu
>>rechnen.
>>Man trage in eine Spalte untereinander folgende vier Zahlen ein:
>>0,05
>>-0,07
>>0,02
>>0
>>Nun addiere man diese Zahlen. Das richtige Ergebnis ist 0.

Bei mir macht da excel richtig...
#1452749
Lesenswert?

Christian H. schrieb:
> bc 1.06
> Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
> This is free software with ABSOLUTELY NO WARRANTY.
> For details type `warranty'.
> 0.05-0.07+0.02+0
> = 0 <korrekt>
> 0.000000000000000000000000000000000000000000000000000005+1
> = 1.000000000000000000000000000000000000000000000000000005 (korrekt)
>

Wer an Floating Point Programmierung mit der Annahme rangeht, dass diese 
wie Mathematik funktioniert, hat schon verloren.

http://www.physics.ohio-state.edu/~dws/grouplinks/floating_point_math.pdf
#1452761
Lesenswert?

Ich habe mal einen gebaut, hatte auch eine Webseite darüber, aber mit 
Ende des Studiums wurde die abgeschaltet.
Ich habe einen wissenschaftlichen Taschenrechner auf Basis des HP-45 
gebaut, inklusive Stoppuhr, Hardware war ein PIC 16F877A. Das Projekt 
habe ich noch, falls Interesse besteht. Funktioniert allerdings in RPN, 
dafür mit BCD-Arithmetik, alle wissenschaftlichen Funktionen etc.

Falls du einen eigenen Rechner bauen willst, noch ein Tipp zum 
Operatorvorrang: Lies dir mal die Flowcharts (Fig 1 und Fig 2) hier 
durch:
http://www.hpmuseum.org/journals/71a.htm
#1454004
Lesenswert?

Helmut Lenzen schrieb:
>>Soooo einfach ist das auch in C nicht. Zumindest wenn man . vor -,
>>Funktionen, Klammern und ähnliches machen will.
>
> Und  soooo kompliziert nun auch wieder nicht. Einfach ein bisschen
> rekursiven Code und das wars auch schon. BNF lässt grüssen.

Warum soll man da selbst was programmieren? Dafür gibt es LEX und YACC. 
Ich habe vor Jahren selbst mal einen Rechner für die Kommandozeile damit 
realisiert, hat richtig Spaß gemacht.

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