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:
Code:
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);
}
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 machen
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
Lesezeichen