Zpět na seznam článků     Zpět na článek

Komentáře ke článku

 
 
 BBCode
nitram147 | E-mail31.12.2015 11:37
Teraz pozerám bližšie na ten článok a máš ešte preklep ten si oprav :
1.) unsigned char má rovnaký rozsah hodnôt ako uint8_t čiže je rozsah 0 - 255 a nie (0 - 127) ako uvádzaš ty.
nitram147 | E-mail31.12.2015 11:19
Priznám sa článok som nečítal, iba ho narýchlo prebehol (programujem AVRká v čistom C už okolo rok) - a doplnil by som k tým dátovým typom ešte vysvetlenie. Int má maximálnu hodnotu max číslo ktoré sa do 8bitov zmestí. Čiže ak pri 8bitových avrkách deklarujeme int test = 1; maximálna hodnota ktorú budeme môcť uložiť bude 127. Akvšak takto isto (int test=1;) deklarujeme premennú pri AVR XMegách (16bitové mikrokontroléry) maximálna hodnota bude 32767. Z toho dôvodu aby bolo jasné boli zavedené skratky int8_t (8bitová premenná typu integer), uint8_t (8bitová premenná typu unsigned integer). Detto to platí aj pre viacej bitové napríklad ak pracujeme s väčšími integermi použitejeme uint16_t alebo ak sú aj záporné tak int16_t poprípade int32_t.

Čiže tvoja definícia unsigned char test = 1; sa dá zapísať a ZAPISUJE SA z viacerých dôvodov ako uint8_t test=1;

Len toľko, pokračuj v písaní. Ešte by som odporučil pre tých čo sa začínajú učiť čisté C pre AVR knižku Programujeme AVR v C (je na stiahnutie na Svetelektro fóre) - sú v nej iba čisté základy ale na začiatok je perfektná a je zdarma. Ďalej klasicky ako pri každom programovacom jazyku študovať v angličtine .... Pri AVRkách je záľudnosťou že pri každom ,,modele,, napríklad u Atmega8 a Atmega328p (majú rovnaký PINout) má timer0 (8bitový) iný názov registrov a teda kód písaný pre Atmega8 nie je priamo kompatibilný Atmega328p a naopak - z toho dôvodu je pri používaní iných kódov respektíve knižníc vhodné preštudovať si datasheet k cieľovému mikro kontroléru a porovnať názvy registrov. Pozor niektoré kontroléry nemajú niektoré zbernice respektíve napríklad Atmega329p (vyrábaná v púzdre TQFP 64) nemá hardwarové I2C ale má tzv. USI (Universal Serial Interface) ktorý dokáže emulovať one-wire, two-wire a three-wire komunikáciu. Čiže prenášať dáta po zbernici I2C u tohto mikro kontroléru nie je také jednoduché ako u napríklad Atmega8. Z toho dôvodu je niekedy lepšie použiť softwarové knižnice na emulaciu hardwaru ako napríklad Softwarove I2C (osobne používal knižnicu z extremeelektronics).

Ak by si mal nejaké otázky kľudne napíš.

S pozdravom Nitram147.
Hnz2 | 85.71.231.*30.12.2015 13:32
Hezký článek pro začátečníka může být celkem přínosný. Pár nepřesností by asi chtělo poupravit, ale i tak chvílím snahu.

Hlavně bych asi doplnil informaci, že délky datových typů (např. int) jsou závislé na použité platformě. Aby informace v článku někdo navstáhnul i na jinou platformu. Podobně platí závislost na platformě i pro bitové posuny. Možná by bylo vhodné připsat informaci o operátoru sizeof a k floatům uvést zmínku o IEEE 754.

Stránky: 1 2