Versuch mal
Analog für Eingangsbyteeinlesen. PIN33 und PI4C3 sind Tippfehler?Code:// Funktionen unsigned int Platinenerkennung (void) { unsigned int auswahl=0x00; //Byte auswahl deklarieren und auf Null setzen // Übernahme an 3. Stelle von Byte auswahl des Signalzustands an PINC3 if (PINC & (1 << PINC3)) auswahl |= (1 << 3); // Übernahme an 2. Stelle von Byte auswahl des Signalzustands an PINC2 if (PINC & (1 << PINC2)) auswahl |= (1 << 2); // Übernahme an 1. Stelle von Byte auswahl des Signalzustands an PINC1 if (PINC & (1 << PIN33)) auswahl |= (1 << 1); // Übernahme an 0. Stelle von Byte auswahl des Signalzustands an PINC0 if (PINC & (1 << PI4C3)) auswahl |= (1 << 0); switch (auswahl) { case 0x01: return 1; break; // Rückgabe Platinennummer 1 case 0x02: return 2; break; // Rückgabe Platinennummer 2 case 0x03: return 3; break; // Rückgabe Platinennummer 3 case 0x04: return 4; break; // Rückgabe Platinennummer 4 case 0x05: return 5; break; // Rückgabe Platinennummer 5 case 0x06: return 6; break; // Rückgabe Platinennummer 6 case 0x07: return 7; break; // Rückgabe Platinennummer 7 case 0x08: return 8; break; // Rückgabe Platinennummer 8 case 0x09: return 9; break; // Rückgabe Platinennummer 9 case 0x0A: return 10; break; // Rückgabe Platinennummer 10 case 0x0B: return 11; break; // Rückgabe Platinennummer 11 case 0x0C: return 12; break; // Rückgabe Platinennummer 12 default : return 13; break; // Rückgabe 13 wenn Zahl 0 oder höher als 12 } }
Lesezeichen