Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 2 gru 2024, o 23:35


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 8 lut 2015, o 17:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Witam,
Mam problem z obsługa wyświetlacza 7seg a dokładnie z negowaniem liczb większych niż 127

Spójrzcie tak jak Mirek mam tablicę,
I jeśli chcę zanegować liczbę 127, to nie ma sprawy wszystko jest OK.
Natomiast jesli neguję liczbe 128, to pojawia się warning:large integer implicitly truncated to unsigned type
Obrazek

Obrazek

Jak pozbyć się warningu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2015, o 17:29 
Offline
Użytkownik

Dołączył(a): 11 wrz 2013
Posty: 709
Zbananowany użytkownik

Pomógł: 23

Użyć int16_t zamiast uitnt8_t.
Przede wszystkim wszystkie co mają u w przedrostku to liczby bez znaku, a zakres int8_t to -127 do 128.

--
Grzegorz...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2015, o 17:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 kwi 2012
Posty: 114
Pomógł: 2

użyj rzutowania (int16_t) swoją drogą dlaczego tak kompilator reaguje jeśli wypadło na 127 czyli ostatnia liczba dodatnia w tym zakresie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2015, o 17:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Nie chcę marnować pamięci i zmieniac na int16_t
Nie ma innej opcji?

Generalnie teraz wszystko działa, ale nie wiem dlaczego mam te warningi;/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2015, o 17:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Tu można przeczytać więcej
http://pl.wikipedia.org/wiki/Liczba_ca% ... _danych%29

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2015, o 17:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Rzutowanie takie:
(uint8_t)~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F), // 0

Działa..
Ale dlaczego należy rzutować?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2015, o 17:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 kwi 2012
Posty: 114
Pomógł: 2

rzutuje się wtedy gdy chcesz zmienną ,wynik wyrażenia jednego typu zmienić na taki jaki chcesz jest to opisane po trochu w książce BB str 108 i w uzupełnieniu do tego na blogu Mirka :
http://atnel.pl/domyslna-promocja-do-typu-int.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO