mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Beste Sprache für dieses Projekt?


Autor: S. H. (fat32)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Kai Scheddin (zeusosc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also Fp operationen sozusagen im
in asm zu machen ist aufwändig und fehlerbehaftet,..
also wenn du es schnell und kompfortabel haben willst machs in C/c++ 
bzw. basic,.. grüße

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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=...

...

Autor: Bernd T. (bastelmensch)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht plant er ja eine Anti-ROHS-Installation ;-)

Autor: S. H. (fat32)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Meckerbock (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Elektro Gandalf (e_g)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.


Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

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

(Ich weiß, ich weiß.  Es gibt nichts, was man nicht auch in Software
machen könnte.)

Autor: S. H. (fat32)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Robin T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Jörg Wunsch:

>Es gibt nichts, was man nicht auch in Software machen könnte

Ich fahr' jetzt zu meiner Freundin, mach das was dann kommt mal in 
Software! :DD

Autor: Schrumpfschlauch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Robin T.. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin an den Source-Code interessiert

Autor: S. H. (fat32)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Power wrote:

> Ich fahr' jetzt zu meiner Freundin, mach das was dann kommt mal in
> Software! :DD
for (;;) sleep();

Autor: Robin T.. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal ein Beispiel falls du doch mal mit der Matrixtasatur arbeiten 
willst. http://www.sprut.de/electronic/pic/programm/tastatur.htm

Autor: Robin T.. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh natürlich ist ja für PICs aber egal bietet bestimmt Anhaltspunkte.

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geiler Taschenrechner mit 3 Stellen.

Autor: S. H. (fat32)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Obelix wrote:
> Geiler Taschenrechner mit 3 Stellen.

jeder fängt mal klein an

Robin T.. wrote:
> Oh natürlich ist ja für PICs aber egal bietet bestimmt Anhaltspunkte.
Ja, trotzdem danke.

Autor: Robin T.. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würds vieleicht doch lieber mit dem Display machen. Da haste viel 
mehr Stellen und hier gibts auch ein AVR Tutorial zum Ansteuern.

Autor: S. H. (fat32)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das mach ich dann später mal.
Jetzt will ichs erstmal mit LED Anzeigen ausprobieren...

Die Ausgabe der Zahlen funktioniert schonmal, jetzt fehlt nur noch die 
Zahleneingabe über die 4x4 Matrix.

Ich muss mal meinen Ferund Google fragen.

MfG

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: S. H. (fat32)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja gut... wenn ich das vorher gewusst hätte.
es ist jetzt soweit alles fertig, bis auf die Schalter.
Und deswegen baue ich das sicher nicht alles nochmal um....

Autor: Power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>for (;;) sleep();

OK, es geht also doch! :)

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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? ;-)





Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Joachim falz du es noch nicht wusstest  ,die meisten basic compiler 
sind
modifizierte c-compiler.ich konnte das erst auch nicht glauben.

Autor: Scarface (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
10

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.