mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2 stellige Zahl zerteilen


Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich suche eine Idee um eine 2 stellige Variable (vom DS18S20) zu 
zerteilen und in 2 einzelne Variablen (1stellig) zu speichern.

Ich will von einem DS18S20 die Temperatur lesen (klappt soweit) und sie 
auf ein 2stelliges 7Segment Display jeweils über 2 BCD zu Sieben Segment 
Decoder ausgeben.

Ich hätte mir folgendes überlegt:

Temperatur / 10 = Zehnerstelle

Temperatur - (10*Zehnerstelle) = Einerstelle

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klingt gut. Probier es doch einmal aus.

Autor: Alexander Sewergin (agentbsik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das geht, falls deine Temperatur eine Integer Variable ist.

z.B

int Temperatur =74 ;
int Zehnerstelle;
int Einerstelle;

Zehnerstelle = Temperatur / 10 ;  (Ergebnis = 7, da keine 
Nachkommastellen bei Int. gehen.)

Einerstelle = Temperatur - (10* Zehnerstelle) ;  ( Ergebnis = 4)


oder mit modulo arbeiten

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Patrick wrote:
> Temperatur - (10*Zehnerstelle) = Einerstelle
Welche Programmiersprache? In C wäre das eher
Einerstelle = Temperatur % 10;

Es täte übrigens gut, wenn die Fragensteller hier mal die Forenregeln 
lesen könnten, bevor sie auf "Absenden" klicken!

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenns schon BCD ist, kannst ja auch bisschen maskieren und shiften:

Zehner = (Variable & 0xF0) >> 4;
Einer = Variable & 0x0F;

wenn du übrigens die Einerstelle berechnen willst, kannst du auch den 
Modulo-Operator verwenden:

Einer = Temperatur % 10.

Schönen Gruss

Mist - Johannes, warst schneller :-D

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sagt mal, Leute, seid Ihr alle Hellseher, oder woher wisst Ihr, dass der 
OP tatsächlich in C programmieren will? Stellt Euch mal vor, es soll 
BASCOM sein, und alles ist für'n Popo...

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Antworten das Forum hab ich schon durchsucht und auch 
schon einen Thread gefunden wegen einer 4er Stelle.

Da ich vorhin erst nach endlosen Ausprobieren meinen Temperatursensor 
fertig habe und die 7 Segmentdisplays auch werd ich morgen dann erst das 
ganze zusammenfügen.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist schon C :-) aber das Rechnen müsste in Bascom doch gleich sein 
oder?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Patrick wrote:
> Es ist schon C :-) aber das Rechnen müsste in Bascom doch gleich sein
> oder?
Sagt wer?

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
k.A. zumind. meine einfachen Rechnungen müssten doch ähnlich sein?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Patrick wrote:
> k.A. zumind. meine einfachen Rechnungen müssten doch ähnlich sein?
Wieso müssten die das? Ich weiß nicht, ob BASCOM für die 
Modulo-Operation auch den %-Operator verwendet, aber die 
Wahrscheinlichkeit, dass es das nicht tut, ist groß! Und in Assembler 
sieht das sowieso ganz anders aus. Und genau deshalb ist es essentiell 
wichtig, dass man die Programmiersprache angibt!

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.