AVR GCC pomoc
Ondrej Pribula
o.pribula@sh.cvut.cz
Pátek Duben 22 12:27:13 CEST 2005
Zdravim konferenciu,
rozhodol som sa trosku pohrat s AVR GCC, ked uz je to take popularne (a hlavne free ;-}}). Narazil som vsak na jednu vec, ktorej nerozumiem. Z manualnu a popisu som pochopil (mozno zle), ze pokial chcem pracovat s konstantami (datami) ulozenymi v programovej flashke, tak musim pouzivat specialnu kniznicu, resp. sadu prikazov z pgmspace.h . Nuz teda spravil som pokus. Zostavil som si jednoduchy program, ktory ma posielat na UART String. A to nasledovne cez nasledujuce funkcie:
void PosliZnak(unsigned char c) {
while (!(UCSRA & (1<<UDRE)));
UDR=c; }
void PosliString(char *str){
while (*str){
PosliZnak(*str);
str++;
}
}
Podla teorie, ktoru som uviedol hore, by tieto funkcie mali pracovat iba s datami z RAM. Napisal som teda do MAINu obligatny prikaz :
PosliString("Ahoj svet") ;
A cuduj sa svete, ono to skutocne posiela tento reatazec na UART. A to v tom pripade nechapem, kedy je teda nutne pristupovat k datam na flash cez specialnu kniznicu a kedy nie?? Ked toto spolahlivo funguje aj s RAMdatami aj s FLASH datami ???
Pytam sa preto, lebo by som nerad spravil osudnu chybu, ktoru si v tejto chvili mozno neuvedomujem...
Za pripomienky dakujem, prajem pekny zvysok dna.
Ondrej Pribula
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20050422/de2be1b8/attachment-0001.htm
Další informace o konferenci Hw-list