Stap 5: Inleiding tot de ATMEL Studio IDE
Ga terug in ATMEL Studio 6, en op de startpagina, klik op 'nieuw project'. Aan de linkerkant van het venster dat opent, klikt u op C/C++ omdat wij zal het schrijven van onze code in C. Kies vervolgens in het midden van het venster, 'GCC C uitvoerbaar Project' (zie foto 2). GCC is de C-compiler dat onze code in een HEX bestand de AVR vertalen zal kan begrijpen. Typ een naam voor het project uit, kies een locatie en klik op 'OK'. Een ander nieuw venster verschijnt waarin u wordt het apparaat u gebruikt (pic 3.) Kies ATMega328P en voordat u op OK klikt, zoek aan de rechterkant van het venster. Hier kunt u downloaden van het apparaat gegevensblad en leren over ondersteunde hulpprogramma's. Klik op 'OK' en we zullen eindelijk de ATMEL Studio IDE (geïntegreerde ontwikkelomgeving - pic 4.)
Aan de rechterkant vindt u het "solution explorer" venster. Dit is handig voor het weergeven van de bestanden die worden gebruikt in uw project. Het grote venster in het midden is de *. C-bestand al open voor u om te beginnen met het schrijven van de code. Dat gaat echt alles wat we nodig om dit project, maar u moet gaan naar het helpmenu en kijk rond. Het brengt u naar ATMEL's site waar u een ton van informatie vindt over het gebruik van deze software. In het bijzonder opzoeken wat info over de AVR-simulator. Het is eigenlijk een software-versie van een AVR-chip die kunt uw programma testen en tonen u vele runtime-Staten van de chip. Het is vrij koel, maar ik zal niet met betrekking tot het hier omdat we niet echt nodig voor dit project.
In het hoofdvenster, zal er sommige groene tekst met de projectnaam, de datum, en de auteur spullen aan de top. Elke bit van de tekst in het groen is een commentaar. Wanneer u typt een "/ /" alles die op die regel volgt zal in een commentaar. OF, u kunt beginnen met een opmerking met "/ *" en sluit deze later met "* /". Op die manier kunt u opmerkingen die heel gemakkelijk oppakken van meerdere regels hebben. Het is ook handig tijdens de foutopsporing om te "uitcommentariëren" lastig coderegels te testen zonder hen en gemakkelijk '' ze uncommenten later.
De instructie '#include' is de eerste echte code die we zien. Hij draagt de compiler te nemen (Stel dat!) de bestanden die na de instructie '#include' komt. < Avr/io.h > is in dit geval een hex bestand dat geeft de compiler specifieke informatie over de verschillende AVR chips die we kunnen gebruiken.
int main(void) - Dit is het hoofdprogramma lichaam, Nou ja, het begin van het toch. "Main()'" is eigenlijk een functie (meer over functies later) die moet worden in elk programma en bevat alles in ons programma. Andere functies kunnen worden aangeroepen vanuit binnen Main() waardoor de stroom van het programma te verlaten Main(), maar als de andere functie is zijn werk voltooid, het moet terugkeren naar Main() voort te zetten.
while(1) is een oneindige lus, waar onze belangrijkste code zal worden uitgevoerd over en over en over. De '1' is de voorwaarde om de lus te lopen en kan ook bestaan uit een expressie zoals: while(a == 1) in welk geval de lus wordt voortgezet totdat 'a' het niet bij een meer haalt. Wij willen onze lus te voeren voor eeuwig, dus while(1) zal dat voor ons doen. De compiler de expressie tussen haakjes na de 'while' bekijkt en evalueert het als ofwel wordt true of false. Op basis daarvan de lus zal blijven als de waarde true. Als we willen om uit te voeren voor eeuwig, we slaan de expressie en vertel de compiler dat het waar altijd is door een '1'.
in de programmering van dit type zijn er vele manieren om te zeggen fundamenteel het zelfde ding in verschillende contexten. EX. '1' is 'logische hoog' is 'true' is 'set' en '0' is 'logische laag' is ingesteld op 'false' is 'duidelijk'... het kan krijgen een beetje verwarrend, maar... Nou, het is gewoon verwarrend. ---verwijst naar dat PDF boek ik gekoppeld aan hierboven 'C programmeren voor Microcontrollers.' Het heeft alle info die u wilt sommige zin uit C. ***
Merkte u de accolades "{}"? Dit zijn hoe we vertellen de compiler voor de behandeling van alle lijnen van code die zijn vervat in de accolades als één blok samen worden uitgevoerd. Bijvoorbeeld, zal de while(1) lus continu alle instructies opgenomen binnen de accolades onmiddellijk na while(1) uitvoeren. Als er geen accolades, de while lus zou alleen uitvoeren de eerste instructie na de while(1) over en voorbij. Aandacht besteden aan deze accolades. telkens als er een open accolade ' {', moet er een nauwe accolade'} ' gekoppeld. Als u een nauwe accolade mist, zal de compiler zoekt u naar de volgende nauwe accolade die worden aangetroffen en voeren alles tussen de twee als een blok... Het verlaten van een van deze uit is een goede manier om jezelf te vinden tijd doorbrengen je hoofd proberen te achterhalen waarom het programma niet wat je denkt dat het moet krabben!
while(1) {thisishowthecompilerseeswhatyoutype; it'shardforapersontoread, butthecompilerlikesit;}
Dat was moeilijk te lezen was het niet? Dat is waarom de while(1) en de bijbehorende accolades zijn tabbed over rechts. Wanneer de accolades en het blok die zij bevatten zijn met tabs, is het veel gemakkelijker te identificeren van de code als een blok. Deze opmaak doet niets voor de compiler; het is alleen om de code gemakkelijker voor mensen om te lezen. Kun je extra spaties, tabs en regeleinden alle gewenste; ze zijn onzichtbaar voor de compiler. Het is een goede gewoonte voor het opmaken van uw code op deze manier en het toevoegen van veel commentaren. Een jaar vanaf nu zult u nooit onthouden wat u dacht toen u schreef die nieuwe functie, en de opmerkingen/opmaak zal helpen u om de snelheid sneller terug te brengen.
Nu zijn we klaar om te beginnen met het toevoegen van onze eigen code aan het programma. In de volgende stap zullen we kijken naar de voltooide code in secties om te begrijpen zo gemakkelijk mogelijk maken.