-         

Ergebnis 1 bis 6 von 6

Thema: 8-Digit 7-Segmentanzeige am ATM128 ...der Startschuss fehlt für Code

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.118
    Blog-Einträge
    1

    8-Digit 7-Segmentanzeige am ATM128 ...der Startschuss fehlt für Code

    Anzeige

    Hallo Freunde !

    Ich muss mal wieder mit einer Frage aufwarten hier, weil ich einfach nicht aus die Pütt komme, wie ich es machen soll.

    Ich möchte an einem ATmega128 ein 8-Digit 7-Segmentdisplay betreiben zur Datenanzeige.

    Aber der Groschen klemmt so bei mir , das ich erst mal nicht den Start finde.

    Es soll nach Möglichkeit in "C" codiert werden. (erst mal unwichtig)

    Nun Fehlt mir der Anfang wie ich einen Zahlenwert in einzelne Zahlen zerlegen kann um sie binär über den Ausgangsport ans Display weiterzuleiten.
    Ebenfalls muss ich auch noch binär(3 Leitungen) die Stelle der Zahl bzw Komma angeben.

    Ich hoffe es kann mir wer hier mal einen "Gedankenanstoß" geben , ansonsten muss ich wohl das Vorhaben aufgeben.

    Die gemeinsamen Anoden der 8 Anzeigen sind über ein Gatter verknüpft das 3 Eingänge hat : 2³ = 8

    Hat wer einen Tip für mich, ich komme einfach nicht vom Flecke. Ich glaub das grösste Problem ist die Zerlegung der Zahl in die einzelnen Stellen.

    Letztendlich soll das Display zu Temperatur/Feuchte Anzeige in der einen Variante und in der Anderen als 8 stell. Zähler dienen.

    Gruss und Dank Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    07.03.2014
    Beiträge
    18
    Hej,

    erster spontaner Gedanke:
    über itoa() in string verwandeln und dann jedes Zeichen des string per atoi() zurück in zahl/int
    Ist definitiv nicht die beste Methode aber zumindesst ein erster Ansatz. Wie sind die Datentypen der Zahlen? Der Zähler ja sicherlich int/long, aber du sprichst auch von Komma also vermutlich die Temperatur in float...
    Gibts da nicht schon fertige Bibs für sowas?
    Gruss Tim

    PS: über modulo 10 kommst du bei int ja immer an die letzte Ziffer, also sukzessiv y=x mod 10 -> letzte Ziffer, x=x/10 -> Ziffern weiter nach hinten rücken lassen. Bei float y: Genauigkeit n festlegen x=y*10^n, x als int deklariert gibt dir ja dann den 10^n fachen Wert an. Da die Genauigkeit n festgelegt ist, weist du wo das Komma hinmuss. Der Rest wie oben bei den int
    Geändert von TiGePa (14.02.2016 um 15:43 Uhr)

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.397
    Zitat Zitat von oderlachs Beitrag anzeigen
    Nun Fehlt mir der Anfang wie ich einen Zahlenwert in einzelne Zahlen zerlegen kann ...
    UnterstesDigit = Zahl % 10 // Modulo
    Zahl = Zahl / 10
    ZweitesDigit = Zahl % 10
    ...

    Dann eine Tabelle

    uint8_t DigitTable = {
    0b01010101; // Bitmuster, das wie eine 0 Aussieht
    0b00000011; // Bitmuster für 1
    .....
    }

    und dann DigitTable[digit] ausgeben. Man kann die Tabelle noch etwas länger machen, und mit Zahlen größer 10 andere Symbole darstellen, so - oder E oder was man sich für Error, overflow so ausdenkt. Wenn der Dezimalpunkt mit im Display quasi als achtes Segment ist, kann man einfach das passende Bit auf die richtige Stelle aufodern.

    MfG Klebwax
    Geändert von Klebwax (14.02.2016 um 19:21 Uhr)
    Strom fließt auch durch krumme Drähte !

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.118
    Blog-Einträge
    1
    Hallo Ihr Beiden !

    Habt vielen Dank für Eure Anregungen, Es war schon die richtige Überlegung. Ich habe auch noch etwas gegooglet un HIER was gefunden.
    Ich kann das nicht komplett so nehmen, aber mir ging es ja nur um eine Anregung. So kann und muss ich meinenKopf selber noch anstrengen,
    darum ging es mir ja auch, nichts Fertiges einfach zu übernehmen.
    Nun werde ich das ganze erst mal mit Ganzzahlen versuchen um später dann Zahlen mit Komma zu verarbeiten.
    Na mal sehen wie ich es hinbekomme. Ich melde mich wieder wenn ich weiter bin.

    Heute brummt mir aber schon etwas der Kopf, um noch grosses zu Vollbringen.

    Besten Dank und Gruss
    Gerhard

    Hier meine bisherige Arbeit (AVRStudio 4 Test mit STK500+ ATmega32) OL_7_Segment_1.zip
    Geändert von oderlachs (14.02.2016 um 21:14 Uhr)

  5. #5
    Unregistriert
    Gast
    Hallo Gerhard
    mit Modulo kannst du es sehr gut berechnen. Kannst jede Stelle einer Zaghl ermitteln und einzeln darstellen. Dabei kannst du auch das Komma extra setzen
    achim

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.118
    Blog-Einträge
    1
    Hallo Achim !

    Ja ich werde es auch per Modulo machen, ich musste mich erst generell in solche Ansteuerung von 7Segm. einarbeiten darum ist mien bisheriger Code nur ein "Ringzähler" mit Anzeige sozusagen der immer eine Stelle in der Anzeige weiterschaltet, nach der "9".
    Die Headerdatei habe ich extra geschrieben, wenn auch nicht unbedingt nötig, um mir die Übersichtlichkeit besser zu gestalten.
    So habe ich es auch damals gelernt in der Ausbildung bei C, C++ und Java. Wahrscheinlich wollte der Dozent es auch übersichtlicher haben, wenn er die Arbeiten durchging. da habe ich es mir nun total angeeignet.

    Werde weiter berichten wie ich das Problem der Anzeige entgültig löse...

    Gruss und Dank

    Gerhard
    Hier ein paar Fotos vom Testaufbau, Schaltung folgt noch ....
    15.02.2016 Update Code Programm liest bis zu 8-stellige Zahlen ein zum Test als Zufall(5-stellig) bzw Festzahlen Hier als Zipdatei
    Geändert von oderlachs (15.02.2016 um 17:51 Uhr)

Ähnliche Themen

  1. induktive Drehzahlsensor + digit. Anzeigegerät als Impulsnehmer
    Von Collage im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 0
    Letzter Beitrag: 03.11.2013, 21:51
  2. Startschuss für das weltweit längste Supraleiterkabel
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 02.02.2012, 13:00
  3. 3D Printer (Startschuss)
    Von kritias im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 2
    Letzter Beitrag: 17.12.2010, 12:37
  4. Suche ein LCD mit nur einem digit
    Von Tryan im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 4
    Letzter Beitrag: 14.04.2009, 18:52
  5. wait forever funktioniert nicht auf atm128
    Von a//b im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 03.01.2006, 14:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •