Witam,
Mam mam taką funkcję:
I teraz gdy w main{} wpiszemu sobie
SendSpi(34816);
to wszystko działa cacy(nie ma żadnego warninga)
natomiast gdy wpiszemy:
SendSpi(17*2048);
to otrzymujemy warnigna:
Można to rozwiązać w taki sposób:
SendSpi(17*(uint32_t)2048);
Ale ja chcę używać przesunięć bitowych.
Więc jeśli napiszemy sobie tak:
SendSpi(17<<10);
to jeszcze działa.
Ale już takie coś:
SendSpi(17<<11);
Nie działa.
Próbowałem zrobić coś takiego:
SendSpi(17<<(uint32_t)11);
Ale oczywiście bez rezultatu, bo rzutuje mi liczbę 11, zamiast całego wyrażenia <<11.
Jak to zapisać poprawnie?
Mam mam taką funkcję:
Kod: C / C++
I teraz gdy w main{} wpiszemu sobie
SendSpi(34816);
to wszystko działa cacy(nie ma żadnego warninga)
natomiast gdy wpiszemy:
SendSpi(17*2048);
to otrzymujemy warnigna:
../main.c:11: warning: integer overflow in expressionMożna to rozwiązać w taki sposób:
SendSpi(17*(uint32_t)2048);
Ale ja chcę używać przesunięć bitowych.
Więc jeśli napiszemy sobie tak:
SendSpi(17<<10);
to jeszcze działa.
Ale już takie coś:
SendSpi(17<<11);
Nie działa.
Próbowałem zrobić coś takiego:
SendSpi(17<<(uint32_t)11);
Ale oczywiście bez rezultatu, bo rzutuje mi liczbę 11, zamiast całego wyrażenia <<11.
Jak to zapisać poprawnie?