Forum: Mikrocontroller und Digitale Elektronik int-Variable in Einerstellen und Zehnerstellen zerlegen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Gustaf G. (hegigmbh)


Bewertung
-1 lesenswert
nicht lesenswert
Hallo
ich bin blutiger Anfänger was das Programmieren des Arduinos angeht.
Als erstes Projekt habe ich mir eine Binäruhr herausgesucht. Ich habe 
dafür unter anderem das DS3231 Echtzeitmodul verbaut. Jetzt stehe ich 
jedoch vor einem Problem:
Ich muss um die LEDs der Binäruhr anzusteuern ein Schieberegister 
verwenden. Ich habe nun eine Methode gefunden um die Dezimalzahlen, die 
mir das Modul ausspuckt in eine Dezimalzahl umzuschreiben, mit der ich 
das Schieberegister bedienen kann. Jedoch muss ich die Zehnerstellen und 
die Einerstellen dafür getrennt von einander betrachten. Die Anzahl der 
Sekunden sind bdw in einer Variablen gespeichert
Also zum Beispiel, wenn ich 34 Sekunden habe muss ich 3 und die 4 
getrennt von einander verarbeite können. Hab ihr irgeneine Idee, wie ich 
das machen kann?
Wenn möglich kopiert bitte euren Lösungsvorschlag aus dem 
Ardoinoprogramm heraus und fügt ihn in eure Antwort ein.

Liebe grüße und Danke im Vorraus.

von jz23 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
1
int zehner = deineZahl/10;
2
int einer = deineZahl%10;

von Hmmm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustaf G. schrieb:
> die Dezimalzahlen, die mir das Modul ausspuckt

Die RTC liefert doch BCD, also genau das, was Du brauchst.

von Lars R. (larsr)


Bewertung
0 lesenswert
nicht lesenswert
Gustaf G. schrieb:
> Wenn möglich kopiert bitte euren Lösungsvorschlag aus dem
> Ardoinoprogramm heraus und fügt ihn in eure Antwort ein.

Bitte?!

Schaue mal auf Seite 11 des Datenblatts.

Das Einzige, was man eventuell braucht: Rechts-Shift (>>) bzw. 
UND-Verknüpfung (&)...

Wie das geht, findest du in jedem guten Buch, dass die 
Programmiersprache C behandelt.

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Gustaf G. schrieb:
> Ich habe nun eine Methode gefunden um die Dezimalzahlen, die
> mir das Modul ausspuckt in eine Dezimalzahl umzuschreiben

Du solltest Methoden nicht gedankenlos kopieren, sondern auch verstehen, 
was sie machen.
Wie schon gesagt wurde, die Zahl wird im DS3231 bereits als packed BCD 
kodiert.

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]
  • [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.