Tak więc właśnie próbowałem wypełnić bufor następującymi liczbami 0-255. Nie myślałem o tym zbyt wiele i skończyłem w nieskończonej pętli.Pętla ponad 256 wartości przy użyciu 8-bitowej liczby całkowitej bez znaku jako licznika
uint8_t i;
uint8_t txbuf[256];
for (i=0; i<256; i++) {
txbuf[i] = i;
}
problem jest, że nigdy nie będzie i
256 jak to przewraca się do zera po 255.
moje pytanie brzmi, czy jest jakiś sposób aby to zrobić pętlę bez wpadania i
do wartości 16 bitowej ?
Uwaga: Wiem, że mógłbym zmienić pętlę na i<255
i dodać kolejną linię do miejsca końcowego, ale próbuję wymyślić, że jest ładniej wyglądający sposób.
Nie stosować 8-bitowego 'I'. Ponieważ 'uint8_t' może mieć tylko wartości 0 ... 255,' i <256' zawsze będzie prawdziwe. Użyj zwykłego 'int' dla licznika pętli i upuść dodatkowe bity przy przypisaniu. –
zaakceptowana odpowiedź działa z 8-bitową wartością. – user3817250
Jeśli chcesz móc zakończyć pętlę po iteracjach 0, nie możesz zakończyć jej po 256 i na odwrót. 0 do 256 = 257. – potrzebie