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
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
Patrick wrote:
> Temperatur - (10*Zehnerstelle) = Einerstelle
Welche Programmiersprache? In C wäre das eher
1 | Einerstelle = Temperatur % 10; |
Es täte übrigens gut, wenn die Fragensteller hier mal die Forenregeln lesen könnten, bevor sie auf "Absenden" klicken!
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
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...
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.
Es ist schon C :-) aber das Rechnen müsste in Bascom doch gleich sein oder?
Patrick wrote: > Es ist schon C :-) aber das Rechnen müsste in Bascom doch gleich sein > oder? Sagt wer?
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!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.