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. |