ATNEL tech-forum https://forum.atnel.pl/ |
|
Dodawanie _UINT16_T do _UINT32_T https://forum.atnel.pl/topic24357.html |
Strona 1 z 1 |
Autor: | AKSELINEK [ 23 lis 2022, o 22:32 ] |
Tytuł: | Dodawanie _UINT16_T do _UINT32_T |
Witam. Pytanie może jest banalne ale nie mogę sobie z tym poradzić i wracam się z prośbą o podpowiedz. W pewnym pracującym urządzeniu zapisuje pomiary do zmiennej _UINT 16t niestety wartość jest dodawana co pewien czas i z obawy o przekroczenie zakresu maksymalnej wartości UINT_16 T chciałbym wynik przekonwertować do zmiennej UINT 32 T . uint16_t a; uint32_t b; a= 56; to jak zrobić żeby np: b=a+300; Nie znalazłem przykładu . I ewentualnie jak zrobić konwersje odwrotnie? |
Autor: | Marhef [ 24 lis 2022, o 10:54 ] |
Tytuł: | Re: Dodawanie _UINT16_T do _UINT32_T |
Może tak: b = (uint32_t)a + 300; A odwrotnie to odwrotnie |
Autor: | AKSELINEK [ 24 lis 2022, o 21:01 ] |
Tytuł: | Re: Dodawanie _UINT16_T do _UINT32_T |
Wpisałem jak napisałeś : język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. I niestety wyświetlacz LCD pokazał : 56 0 Chyba że funkcja lcd_int(b); nie przyjmuje wartości uint32_t ???? Wpisałem tak : język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Też nic czyli 0 |
Autor: | JarekB [ 24 lis 2022, o 21:07 ] |
Tytuł: | Re: Dodawanie _UINT16_T do _UINT32_T |
lcd_long( uint32_t val ); |
Autor: | AKSELINEK [ 24 lis 2022, o 21:35 ] |
Tytuł: | Re: Dodawanie _UINT16_T do _UINT32_T |
Tej funkcji nie mam w bibliotece niestety wywala Warninga niestety. |
Autor: | Marhef [ 25 lis 2022, o 12:08 ] |
Tytuł: | Re: Dodawanie _UINT16_T do _UINT32_T |
Zmień funkcję do wyświetlania. ALbo dopisz sobie funkcję lcd_long(uint32_t val). Sprawdź, jak wygląda funkcja Mirka. Tam do zamiany liczby na tekst jest użyte itoa (int na tekst). W Twojej będzie ltoa (long na tekst). |
Autor: | AKSELINEK [ 25 lis 2022, o 20:52 ] |
Tytuł: | Re: Dodawanie _UINT16_T do _UINT32_T |
Czyli problem jest w wyświetlaniu a nie wyniku? I teraz to zrozumiałem. Dlaczego chcę zamieniać UINT32_T na UINT16_T Ponieważ liczba będąca sumą wyników cyklicznie dodawanych co dobę nie wystarczy na 365 dni , w związku z tym zrobię inaczej suma będzie dodawała się do zmiennej UINT32_T a może co miesiąc podzielę ją i wyświetlę jako UINT32_T albo może gdzieś dopadnę te w/w fukcję. Przynajmniej wiem gdzie jest problem dzięki. |
Autor: | mario2015 [ 26 lis 2022, o 11:15 ] |
Tytuł: | Re: Dodawanie _UINT16_T do _UINT32_T |
Do biblioteki LCD-ka dopisz sobie taką funkcję: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. lub język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Nie wiem, która dla twoich potrzeb będzie prawidłowa. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |