Hi, ich habe folgende Fehlermeldung:
../Main.c:377: warning: left shift count >= width of type
Hier der Code dazu:
1 | // Werte von Register Page 1 holen
|
2 | SPI_write_register(0b01111110,0x00000001); // Stelle Register Page 1 ein
|
3 |
|
4 | if(measurement_mask_low && (0x00000001 << 31)) // Neue Page + Mask_low
|
5 | {
|
6 | measured[31] = SPI_read_register(0);
|
7 | measured_length++;
|
8 | }
|
Der Fehler ist bei folgender Zeile:
if(measurement_mask_low && (0x00000001 << 31))
measurement_mask_low ist als uint32_t definiert, warum funktioniert das
nicht? Wenn ich das 0te Bit um 0 verschiebe, bleibt es ja beim 0ten Bit.
Wenn ich es um 1 verschiebe, kommt es auf Bit 1. Dann muss doch beim
verschieben um 31 auf Bit 31 kommen. Allerdings sagt es mir den
Fehler... Ich kann maximal um 15 verschieben. Warum?