Ja, das liegt an dem uint16_t. Der ist zu klein.
512*128=65536 (Hex wäre das 0x10000). uint16_t kann nur bis 65535 (0xFFFF, also 2 Byte = 16 Bit, daher uint16). Also Überauf, er fängt dann wieder bei 0 an. Und 0/1024 ist 0.
Edit: Lange Erklärung, kurzer Sinn... nimm nen uint32_t, dann passts wieder.
Lesezeichen