Zdravim,
Vlasta, mozem Ti zodpovedne povedat, ze ked som zacinal s C, tak cca 5-6 rokov dozadu som si na toalete cital Herouta a bol som z toho mierne povedane vydeseny. Najma mnozstvo velmi podobnych zatvoriek mi robilo program na prvy pohlad neprehladny. Potom som sa donutil cca 1/2 roka datloval Heroutove priklady - pre mna absolutne nezaujimave, ja som chcel plikat LEDkou a nie vypisovat capiny na monitore
- a nakoniec som sa odvazil nainstalovat si AVRstudio a skusal som neico na fyzickom hw. A vtedy sa to stalo. No skratka uplna parada. ![:slight_smile: :slight_smile:](/images/emoji/twitter/slight_smile.png?v=9)
Za par dni som nadobudol vedomosti a skusenosti mnohonasobne prevysujuce toho predchadzajuceho pol roka samoucelneho datlovania do PC.
Kazda zmena sw sa hned prejavila na spravani sa zariadenia. Samozrejme, ze som v prvom tyzdni “odhalil” asi 5 chyb prekladaca - a z mojho poladu velmi elementarnych - kym som pochopil, ze problem nebol v prekladaci ale medzi stolickou a klavesnicou. Cim dalej tym viac som si overoval, ze to C-cko je fakt dobre a hutne vymyslene a okrem vnorenia poznamky do poznamky mi na nom nic nechyba.
Testoval som ako sa prelozia take ci onake C-ckovske konstrukcie a ci je preklad naozaj optimalny. Doteraz som namatkovo nenarazil na ziaden kod, ktory by som vedel napisat zasadne lepsie ako to spravil prekladac a pravdu povediac uz som to ani velmi velmi dlho nekontroloval.
Ako priklad uvadzam, ze v cistom jazyku C som naprogramoval aplikaciu, ktora na procesore ATtiny85 na 8MHz interneho RC oscilatora zvlada robit sucasne na dvoch 10b AD kanaloch 50 vzoriek (do 25-tej harmonickej) v ramci 50Hz vstupneho signalu a online v realnom case vypocitavat strednu a efektivnu hodnotu vstupneho signalu, zistovat maxima efektivnych hodnot v siestich casovych pasmach v rozmedzi od 6ms do jednej minuty. To vsetko v 32b matematike aj s vypoctami (nie tabulkovymi hodnotami) (x)*(x) a sqrt(x).
Namerane vysledky lezu von cez plne sw emulovanu I2C linku aj s ochranou protokolu pomocou 8b CRC. Meriam zaroven cas, kolko procesor nema co robit a div sa svete je to cca 44% jeho strojoveho casu. Obmedzenie na rychlost vytvara 10b AD prevodnik.
Priebezne som si prezeral rozne materialy na ucenie C-cka k jednocipom.
Preto by som vsetkym zaujemcom o zacatie C-cka vrele odporucal material uvedeny tu:
mikrocontroller.net/articles … C-Tutorial
s lepsim tutorialom na jednocipy som sa nestretol. Mne osobne sa velmi dobre pracovalo s knizkou od Kadleca (programovaci jazyk C, alebo taky podobny nazov), ale pokial viem uz sa neda zohnat.
Ale opat pripomynam, C-cko je naozaj ale fakt naozaj velmi jednoduchy jazyk. Treba si len nainstalovat AVRstudio (odporucam verzie nizsie ako 5) potom Winavr, co je prekladac C-cka pre AVR a po naslednom spusteni AVRstudia Ti program ponukne ci chces spravit program v ASM alebo v C. Vyber si C, pomenuj si projekt, vyber si procesor a do novovzniknuteho
napis:
#include <avr/io.h>
#include <stdint.h>
int main(void)
{
while(1)
{
;
}
}
a mas prvy program hotovy. Sice nic nerobi, lebo sa jedna o nekonecnu prazdnu slucku, ale je plne funkcny a mozes sa tesit ze ho prekladac prelozil.
Potom si tam dopis
#include <avr/io.h>
#include <stdint.h>
static uint16_t a, b, c;
int main(void)
{
a = 1;
b = 2;
while(1)
{
a = a +1;
c = a + b;
}
}
V simulatore, ktory je sucastou AVRstudia si program mozes krokovat ako po C-ckovych instrukciach tak aj po instrukciach strojoveho kodu. Staci otvorit prislusne okno. Zistuj, ako sa meni v pamati obsah premennych a matematicke ulohy mozes postune robit komplikovanejsimi.
Ak sa dostanes az sem a stale Ta to bude bavit, uz si “chyteny” ![:slight_smile: :slight_smile:](/images/emoji/twitter/slight_smile.png?v=9)
Osobne sa viem programovanim jednocipov v C zivit, ale na ilustraciu musim uviest, ze napriklad na stranke www.build.cz v sekcii C/C++ nielenze nerozumiem mnohym odpovediam, ale casto ani otazkam na ktore tieto odpovede prichadzaju ![:slight_smile: :slight_smile:](/images/emoji/twitter/slight_smile.png?v=9)
Tak sa tesim na Tvoje skusenosti. Urcite pomozu vo vybere literatury a postupu aj dalsim C-cka chtivym zaciatocnikom.
OPRAVA: Dakujem Piityymu za upozornenie, samozrejme spomynana stranka je www.builder.cz ![:slight_smile: :slight_smile:](/images/emoji/twitter/slight_smile.png?v=9)