vyskytl se mi problém při řešení jednoho problému. Snažím se zobrazit na LCD řetezec a následně jej pozdržet na LCD cca 2s. Při běžném vykonávání programu mimo smyčku for s tím nejsou problémy, ale jakmile uvedu fci delay v smyčce for (viz. přiloha) dojde k zamrznutí a defacto se nic neděje.
Text, jenž by se měl následně zobrazit se nezobrazí.
Zkoušel jsem již vše v moji možnostech, zvláštností bylo že po odstranění fce. delay vse fungovalo sice se skutečnosti že se texty jenž se mají zobrazovat překrývali.
Začínám být zoufalý prosím poraďte.
Díky.
administrator: přejmenováno z “problémy s fci. _delay” prog.c (6.67 KB)
C-čko pre avr sa este len ucim, ale pri zbežnom kuknuti na kod mi tam chýba knižnica util/delay.h a podľa nej aj nastavenie frekvencie procesora v tvare:
Uživatelské .h soubory by měly být uvedeny s uvozovkami, ale to není problém (určuje to prioritu při hledání).
Jak píše stanleyv, <util/delay.h> tam není. Je jedno, jesli ji máš někde v projektu jinde, musí být v každém souboru, kde se z ní funkce používá (nevidím tam uživatelský .h, který by to mohl importovat).
Co se týká F_CPU, to může být definováno v nastavení projektu. Pokud je to tam, tak vpořádku.
Ohledně maximální hodnoty zpoždění: _delay_ms() by měla umět až 6.5s, ovšem za skoušku se snížením času nic nedáš.
Zaraží mě skutečnost, že jsem s tím problémy při běhu programu nikdy neměl až poté co jsem umístil delay do hlavní smyčky.
Ohledně absence deklarace knihovny jsem to nepovažoval za nutné, když při rozkliknutí všech importovaných knihoven v avr studiu, se v seznamu krom jiných iom16,…, objevuje i delay.h
Štábní kulturu zápisu deklarací knihoven zlepším .
Neměl jsem čas se problémem zabývat až dnes započal s modifikacema. Každopádně mám již problém vyřesen stačilo pouze mnou definované knihovny (SPI.H a LCD.H ve kterém byla vložena knihovna delay.h s FCU) do úvozovek . Díky všem za podnětné odpovědi .
Mám ještě jednu otázku zda je možné obecně zařízení se 4tlačítky a zobrazování na LCD a ovládání dvou portů řídit skrze MCU bez nutnosti multitaskingu?
Bohužel problémy s fcí.delay přetrvávají byl jsem v takové euforii že by to všechno mohlo fungovat a zapomněl jsem na další chod programu .
Zkoušel jsem snížit čas jak dragonsoul=>nepomohlo. Jak jsem psal výše knihovnu delay.h i s FCU mám deklarovánu v knihovně LCD.H .
Nula chyb a varování stále přetrvává.
Diky za info, s tímhle jsem měl taky kdysi problémy.
Teď mám toto ošetřeno v konfigurační paměti prostředí XP dodávané k
programátoru Presto.
JTAG mám vypnut.
To je nádhera. Co dělá kód v .h souborech?
Přemejšlim, jesli se to pokoušet opravit, nebo smazat a jít na večeři…
edit: Tak jsem tomu trochu času dal. Doplnil jsem chybějící soubory a opravil strukturu. V lcd.c jsou dvě chyby (zakomentovaný a s komentářem).
Samozřejmě s funkčností moc nepočítám, ale už je to při překladu bez chyb a varování. Svůj příští projekt na tomto prosím nezakládej.
Ohledně stavby projektu z více souborů, vzor tu: AVR Studio - Projekt s více soubory - jak includovat - #4 by piityy
Další info např. na builderu. ProgAtmega16.zip (36.9 KB)
Hlavne ze to ide co tam potom…niektore prekladace to zhltnu …a potom narazi na taky co to nezhltne …a prepise to do normalu…moj pripad…
Zaciatky boli tazke