ich geh mal davon aus, dass das Auswerten des Sensor irgendwo ständig wiederholt wird, nun brauchst du die oberen beiden transmit-Blöcke nur ein eine Funktion packen, die wir z.B. "updateDisplay(char temperatur)" nennen, in welcher du die Zerlegung bewerkstelligst und anschließend mit deinen beiden transmit-tripeln auf die Segmente legst
diese Funktion rufst du nach dem auslesen der Temperatur einfach mit auf.
Oder brauchst du Hilfe beim zerlegen ?
ausgehend davon dass die temperatur IMMER 2stellig ist würd ich quick n dirty folgendes vorschlagen:
wenn deine definition von Anzeige1 - 4 nun auch noch der zahl 1-4 entspricht, kannst du auch getrost das ganze in eine Schleife packen ums schöner zu machenCode:char toDisplay[] = {'0','0','°','C'}; char temp; while(messen) { temp = getTemp(); updateDisplay(temp); } updateDisplay(char some_temp) { toDisplay[0] = some_temp/10; //nachkommastellen werden abgetrennt toDisplay[1] = some_temp- (toDisplay[0] * 10); I2CTWI_transmitByte(pcf, Anzeige1); I2CTWI_transmitByte(pcf2, toDisplay[0]); //zeige 2 auf erstem Display I2CTWI_transmitByte(pcf2, Aus); I2CTWI_transmitByte(pcf, Anzeige2); I2CTWI_transmitByte(pcf2, toDisplay[1]); //zeige 3 auf zweiten Display I2CTWI_transmitByte(pcf2, Aus); I2CTWI_transmitByte(pcf, Anzeige3); I2CTWI_transmitByte(pcf2, toDisplay[2]); //zeige ° auf dritten Display I2CTWI_transmitByte(pcf2, Aus); I2CTWI_transmitByte(pcf, Anzeige4); I2CTWI_transmitByte(pcf2, toDisplay[3]); //zeige 4 auf vierten Display I2CTWI_transmitByte(pcf2, Aus); }
PS: irgendwie mag das Forum (oder der Editor des Forum) es nicht wenn ich Text aus einem Code-Block kopiere um es in meiner Antwort zu verwenden








Zitieren

Lesezeichen