Hallo,
wenn das mit dem 1<<i nicht läuft, hätte ich das so in etwa gelöst:
Grüße, BernhardCode:unsigned int maske=1; //das 0.Bit setzen for(...) { if(Alarm_high & maske) { //Ausgabe der Alarmnummer usw } maske=maske*2; //links schieben }
Hallo,
wenn das mit dem 1<<i nicht läuft, hätte ich das so in etwa gelöst:
Grüße, BernhardCode:unsigned int maske=1; //das 0.Bit setzen for(...) { if(Alarm_high & maske) { //Ausgabe der Alarmnummer usw } maske=maske*2; //links schieben }
Rückgabewert von alarm():Code:unsigned int Alarm_high; unsigned char alarm(void) { static char Alarmstelle = 0; unsigned char temp = 0; temp = Alarmstelle; // Alarmstelle in Lownipple laden (0 - 15) if(Alarm_high & (1 << Alarmstelle)) temp |= 128; // Bit 7 setzen bedeutet Alarmbit in Alarm_high war gesetzt if(Alarmstelle < 15) Alarmstelle++; else Alarmstelle = 0; return(temp); }
Bit0-3 = Alarmnummer
Bit7 = Alarmbit ist gesetzt
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Weil du hiermit "if(i=15)" i den Wert 15 zuweist, und nicht mit 15 vergleichst.funktioniert aber leider nicht.
MfG
Stefan
Dankeschön! (Dummer Fehler) Werd ich heute abend gleich testen!
Lesezeichen