- posted
17 years ago
avr-gcc unsigned char
- Vote on answer
- posted
17 years ago
- Vote on answer
- posted
17 years ago
- Vote on answer
- posted
17 years ago
Użytkownik Paweł napisał:
Coś kolega opuścił. Skąd wiadomo że jest równe 0 lub 1 ? Z printfa ? Z debugera ?
unsigned char
Ależ proszę.
Adam
- Vote on answer
- posted
17 years ago
^^^ a to co?
Ja się nie znam ale chyba typ zmiennej sterującej w pętli też jest ważny...
- Vote on answer
- posted
17 years ago
- Vote on answer
- posted
17 years ago
Użytkownik Paweł napisał:
Powinno działać ,ale może kompilator jakieś promocje robi samoistnie, bo to chyba raczej nie na pecka.
Możesz spróbować : zm = (unsigned char ) 130;
Daj znać.
Adam
- Vote on answer
- posted
17 years ago
Dnia 25.05.2006 Paweł snipped-for-privacy@poczta.onet.pl> napisał/a:
Ja namietnie uzywam zmiennej typu uint8_t
AW
- Vote on answer
- posted
17 years ago
Thus wrote Górski Adam <gorskia@.................wp....................pl..................>:
Zgodnie z odwieczną specyfikacją języka ma obowiązek promować char na int.
Paweł
- Vote on answer
- posted
17 years ago
Slusznie, jednak w AVR-GCC typ ten najpewniej powstaje tak:
typedef unsigned char uint8_t;
Sprawdz w types.h :).
- Vote on answer
- posted
17 years ago
snipped-for-privacy@wp.pl napisał(a):
Akurat te standardowe typy leżą w inttypes.h (ew. stdint.h)
- Vote on answer
- posted
17 years ago
Nie wazne gdzie, wazne ze dziala ;-)
A po co w ogole to tak jest zrobione?
AW
- Vote on answer
- posted
17 years ago
looknalem do GMUARM-a ;). Widocznie tu jest inaczej
- Vote on answer
- posted
17 years ago
jesli unsigned char z jakich tajemniczych powodow sprawia autorowi problem, to uint8_t zefiniowany tak jak napisalem tez bedzie :)
Glownie po to, aby uniezaleznic sie od platformy. Nie ma reguly, ze unsigned int jest np. 16-bitowy, choc na niektorych platformach wlasnie tak jest. W ARM7 bedzie 32-bitowy itp. itd. unsigned char niemal wszedzie jes 8 bitowy, ale 8-bitowosc to nie jest jego cecha przyrodzona :). Jesli wiec cecha typu ma byc jego dlugosc bitowa, to stosuje sie takie podejscie. Na innej platformie latwo to zmienic - wystarczy podmienic plik z definicjami typow i nie trzeba zmieniac calego programu.
- Vote on answer
- posted
17 years ago
Thus wrote snipped-for-privacy@wp.pl:
Z tym tylko, że tam, gdzie char nie jest ośmiobitowy nie znajdzie się ośmiobitowego typu wcale -- bo standard języka narzuca, że char ma się mieścić w pojedyńczym bajcie (który zazwyczaj jest ośmiobitowy, ale...).
Paweł
- Vote on answer
- posted
17 years ago
Paweł napisał(a):
A czasem kod mrygania nie jest skopany? Nie podałeś go. Moze mrygaj to zmiana stanu lampki i bedzie taki efekt właśnie?!
- Vote on answer
- posted
17 years ago
Paweł napisał(a):
mysle ze chyba to to: jedyny blad jaki zrobiles to "int" po for. na poczatku programu deklarujesz zmienna unsigned, czyli od 0 do 255 a potem w forze deklarujesz ja jako int czyli od 0 do 127. ale to jest smieszne poniewaz powinien zadeklarowac od 0 do 32767, przynajmniej tak jest w C, nie wiem jaki masz jezyk programowania, ale to powinno pomoc
- Vote on answer
- posted
17 years ago
Dnia Thu, 25 May 2006 11:32:04 +0200, Paweł napisał(a):
Gdyby było z int stawiałbym na opcję -mint8 przy kompilacji :)
Pozdrawiam Marcin Stanisz