Beste Sprache für dieses Projekt?

OP #591146
Lesenswert?

Hallo Community,

ich arbeite gerade an einem Projekt, das später ein "Taschenrechner" 
werden soll. Ich habe dazu 3x Binärzähler, 3x BCD-Dekoder, 3x 
7-Segment-Anzeige, 1x ATMega32 und 16 Taster. (Zahleneingabe, 
Rechenarten auswählen)

Das Ganze soll so ablaufen:

Man gibt eine Zahl ein. Diese wird life angezeigt. Dann wählt man eine 
Rechenart aus und gibt die 2. Zahl ein. Dabei erlischt die 1. Zahl und 
man sieht die 2. auch wieder life.

Danach drückt man auf die Ergebnistaste und der Mega32 fängt schön zu 
rechnen an.

Er gibt den Binärzählern dann jeweils so viele Impulse, wie sie 
brauchen, um die errechnete Zahl dazustellen.

Welche Sprache würdet ihr hierfür verwenden?
#591151
Lesenswert?

Simon Hat einen nick wrote:
> Hallo Community,
>
> ich arbeite gerade an einem Projekt, das später ein "Taschenrechner"
> werden soll. Ich habe dazu 3x Binärzähler, 3x BCD-Dekoder, 3x
> 7-Segment-Anzeige, 1x ATMega32 und 16 Taster. (Zahleneingabe,
> Rechenarten auswählen)
>
> Das Ganze soll so ablaufen:
>
> Man gibt eine Zahl ein. Diese wird life angezeigt. Dann wählt man eine
> Rechenart aus und gibt die 2. Zahl ein. Dabei erlischt die 1. Zahl und
> man sieht die 2. auch wieder life.
>
> Danach drückt man auf die Ergebnistaste und der Mega32 fängt schön zu
> rechnen an.
>
> Er gibt den Binärzählern dann jeweils so viele Impulse, wie sie
> brauchen, um die errechnete Zahl dazustellen.
>
> Welche Sprache würdet ihr hierfür verwenden?

Polnisch rückwärts...
;-)
http://www.google.de/search?hl=de&ie=ISO-8859-1&q=taschenrechner+polnische+notation&meta=

...
#591156
Lesenswert?

Am besten eignet sich die Sprache die man schon kann.
Oder falls es keine gibt (sonst stellt man sich die Frage wohl nicht) 
dann die in der man Unterstützung in seinem Umfeld hat oder die 
Verfügbar ist.

Es gibt sicherlich Sprachen in denen man manche Probleme wesentlich 
besser lösen kann als in anderen. Aber wer so eine Insel? Der 
Heimanwender wohl kaum.

Beim AVR bleiben Dir ja eigentlich nur dieverse Basic Dialekte, C und 
Assembler...
OP #591384
Lesenswert?

Peter Dannegger wrote:
> Welchen Sinn sollen denn die 3x Binärzähler, 3x BCD-Dekoder haben ?
>
> Die ganzen Sache so kompliziert wie nur irgend möglich zu machen ?
>
> Papp die LEDs (über Vorwiderstände) einfach direkt an den Mega32 und gut
> is.
>
>
> Als Sprache ist C gut geeignet (WINAVR).
>
>
> Peter


dann hab ich viel zu wenige Pins.

egal, ich machs in BASIC, da kenn ich mich n bisschen aus
Gast #591395
Lesenswert?

>dann hab ich viel zu wenige Pins.

Dann bestell dir am besten auch gleich den 400kW-Anschluß bei deinem 
Stromversorger.
Anzeigen werden seit ewigen Zeiten gemultiplext. Als Erweiterung gibt es 
inzwische auch noch das Charlieplexing. Beide Systeme brauchen 
wesentlich weniger Pins als das, was du da bastelbn willst.
Gast #591428
Lesenswert?

Hallo,

wenn schon solch eine Art der Ausgabe, dann aber richtig.
Die Geschwindigkeit der Impulsfolge mitRampen am Anfang und am Ende.
Macht es dann wenigstens spannend, wenn er auf das Ergebnis "zurollt" 
und man nicht genau weiß: ist 3296765354 nun schon das Ende oder geht es 
doch noch etwas höher...

SCNR

Multiplexe die Anzeige, hänge meinetwegen 2 BCD-Decoder an einen Port, 
dann hast Du mit 8 Leitungen 10 Stellen zum Anzeigen.

Gruß aus Berlin
Michael
#591449
Lesenswert?

Simon Hat einen nick wrote:
>
> dann hab ich viel zu wenige Pins.

Wie das?
Ein Mega32 hat 4 vollwertige Ports (A,B,C,D) also 32 Pins.

Selbst wenn du alle 16 Tasten einzeln anhängst und keine 4*4
Matrix aufbaust, schaut doch die Rechnung so aus:

16     Tasten
 8     für die 7-Segmentanzeigen (+ Dezimalpunkt)
 2     für die Anwahl der aktiven 7-Segment Anzeige
---
26

  26 < 32

Machst du eine Tastenmatrix, dann verringert sich die Zahl
nochmal um 8 und du bist bei 18 Pins. Wenn also sonst
nichts an den Mega32 angeschlossen wird, hast du massenhaft
Pins übrig.
Und selbst wenn: Anstatt der Zähler und BCD-Dekoder wäre
es wesentlich sinnvoller, die 7-Segment Anzeigen über
eine Schieberegisterkette anzusteuern. Davon hast du als
Bastelprojekt mehr, da so eine Schieberegisterkette als
Porterweiterung sowas wie einen Standardbaustein darstellt,
was man von deiner Zählerlösung nicht gerade behaupten kann.

OP #591488
Lesenswert?

Michael U. wrote:
> Hallo,
>
> wenn schon solch eine Art der Ausgabe, dann aber richtig.
> Die Geschwindigkeit der Impulsfolge mitRampen am Anfang und am Ende.
> Macht es dann wenigstens spannend, wenn er auf das Ergebnis "zurollt"
> und man nicht genau weiß: ist 3296765354 nun schon das Ende oder geht es
> doch noch etwas höher...
>
> SCNR
>

also irgendwie werde ich daraus nicht schlau.


> Multiplexe die Anzeige, hänge meinetwegen 2 BCD-Decoder an einen Port,
> dann hast Du mit 8 Leitungen 10 Stellen zum Anzeigen.

das macht nicht so viel spass ;-) ich wollte möglichst viel auf einmal 
lernen, darum die BCD dekoder und zähler...


>Aber bei der Zählerlösung kann man die Zahlen kurz vor Erreichen
>des Zielwertes so schön ,,ausrollen'' lassen. :-)

siehst du, netter nebeneffekt



>Du weißt schon das es sowas schon fertig für ein paar Euros unter dem
>Namen TASCHENRECHNER gibt? ;-)

du weißt schon, dass es Computer schon fertig gibt? Aber man kann die 
auch selber bauen


>Machst du eine Tastenmatrix, dann verringert sich die Zahl
>nochmal um 8 und du bist bei 18 Pins.
hört sich interessant an! wie geht das genau?
Gast #591499
Lesenswert?

Ich habe mal einen wissenschaftlichen Taschenrechner mit Stoppuhr und 
voller BCD-Arithmetik in C programmiert. Allerdings für einen PIC16F877.
Falls du am Sourcecode interessiert bist, dann sag was!
Der Taschenrechner war übrigens in UPN, ich habe aber auch Pläne, wie 
das ganze als "normaler" Taschenrechner mit Operatorprioritäten und 
Korrekturfunktion aussehen kann. Habe ich allerdings nicht gebaut, weil 
ich dann doch auf den Geschmack von UPN gekommen bin.
OP #591507
Lesenswert?

ich hätte auch interesse am code. kannst ihn ja hier uploaden ;-)

zu der tastenmatrix:
also da bin ich glaub ich einfacher bedient, wenn ich das jetzt erstmal 
so löse, dass ich jeder Taste einen eigenen Pin verpasse.
(auch von der software her ist das einfacher für mich als anfägner)
#591536
Lesenswert?

Simon Hat einen nick wrote:

>> Multiplexe die Anzeige, hänge meinetwegen 2 BCD-Decoder an einen Port,
>> dann hast Du mit 8 Leitungen 10 Stellen zum Anzeigen.
>
> das macht nicht so viel spass ;-) ich wollte möglichst viel auf einmal
> lernen, darum die BCD dekoder und zähler...


Deine Methode entspricht etwa, ein Fahrrad zu schieben. Man lernt dabei 
nichts und Spaß macht es auch keinen.

LEDs zu Multiplexen oder per Schieberegister auszugeben ist aber wie 
aufs Fahrrad zu steigen und zu fahren. Es macht Spaß und man lernt es 
dabei.


Außerdem kostet das Zählen nur unnötig Rechenzeit.


Peter
Gast #591607
Lesenswert?

Schrumpfschlauch wrote:

> Ich habe mal einen wissenschaftlichen Taschenrechner mit Stoppuhr und
> voller BCD-Arithmetik in C programmiert ... Der Taschenrechner war übrigens > in 
UPN..

Ahäm - Das grenzt ja schon an ein Sakrileg, eine UPN in C zu 
programmieren :-) Ist so ähnlich, wie einen C-Compiler in Basic zu 
programmieren.

Für UPN gab's übrigens mal extra ne Programmiersprache: Forth
Sieht dann in etwa so aus:

1
2
3
+
SWAP
-
DUP
+
2
OVER
+
SWAP
DROP


Na, wer weiss die Lösung? ;-)




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