Atmel opstarten 3: Binky een-poort, PIN, DDR en LED (9 / 12 stap)

Stap 9: BLINKIE één-betekenis van de verklaringen van de codering

De referenties bieden sommige zeer goede boeken en artikelen voor het leren van C en C++ voor de Atmel MCUs [5-8, 11]. De items onder in wezen dezelfde volgorde als in de Binky één programma gevonden.

  1. #include: een compiler-richtlijn tot opneming van een headerbestand in de code met de opgegeven functies en methoden. Allermeest naar de header-bestanden kunnen worden bekeken door het plaatsen van de muiscursor over de naam en rechts te klikken en te selecteren "Ga naar uitvoering".

  • AVR/io.h: bestaat uit andere headerbestanden (dat wil zeggen, de uitbreidingen van .h) voor de specifieke MCU [17]. De headerbestanden Neem zoekwoorden zoals DDRB, PORTB, PB0, TIMSK en TCNT0. Blijkbaar worden niet io.h weergegeven met de 'Ga naar uitvoering"beschreven in punt 1 hierboven.

  • util/delay.h: methoden voor het vertragen van de uitvoering van het programma. Bevat een milliseconden van de vertraging en een andere voor microseconden.

  • #define x y: A compiler richtlijn te vervangen door de tekst y wanneer de tekst x is ontmoeting in het programma. Vaak worden de compiler definities gehanteerd zodat het programma kan gemakkelijk worden gewijzigd zonder het zoeken door de gehele code voor alle plaatsen te wijzigen van een parameter wanneer nodig.

  • #define F_CPU 8000000UL: de compiler 8000000UL voor de tekst 'F_CPU' als aangetroffen in de code worden vervangen. Opmerking: het headerbestand delay.h vereist de F_CPU vóór het importeren van delay.h aangezien het delay.h bestand de F_CPU gebruikt bepaald worden. De 8000000UL verwijst naar de kloksnelheid. In ons geval gebruiken we 8MHz geselecteerd door de zekeringen. F_CPU van de 16000000 zou echter juist voor een 16MHz kristal bijvoorbeeld. De UL aan het eind verwijst naar ' lang ' geheel getal zonder voorteken.

  • int main(void): main is een functie die elk C- en C++-programma moet nemen. De uitvoering van het programma begint bij de 'main' functie. Het sleutelwoord 'int' geeft aan dat 'main' integer (16bits) kan terugkeren. Functies hebben argumenten in haakjes (). In dit geval 'nietig' geeft aan dat de functie maakt geen gebruik van een parameter. Als we hadden het trefwoord void voorafgaand aan de naam van de functie zoals bijvoorbeeld in 'ongeldig main(void)' dan zou de functie retourneert geen waarde - het zou een subroutine.

  • Accolades {}: Het bereik van de code bepalen van de functie 'hoofd' is ingesloten in {}. In feite, de meeste C en C++ codering structuren (bijvoorbeeld 'Schakel' en 'als') gebruik accolades {} om aan te geven van hun toepassingsgebied. Zorg ervoor dat deze op te nemen!

  • Puntkomma's: De verklaringen van de codering wordt afgesloten met het ";". De verklaring kan lopen over verschillende tekstregels zo nodig.

  • _delay_ms(x): een methode (dat wil zeggen, functie) die is gedefinieerd in delay.h dat vertraging van de uitvoering van het programma door x milliseconden. In ons geval, x = 1000 en dus de vertraging is 1000mS dat 1 seconde is. Merken tha de haakjes surround de parameter x.

  • DDRB = 0b00000001: Data richting Register voor poort B. B0 zal een vermogen en de rest zal ingangen. Voor de ATTiny 2313A is de B0 Pin12.

  • PORTB = 0b1: Sets B0 op 1 wat zich naar Vcc op de fysieke vertaalt pin (12) overeenkomt met B0. Een eenvoudiger manier om te schrijven deze verklaring is PORTB = 1; of PORTB = 0x01;

  • PORTB = 0X00; B0 ingesteld op 0, wat zich naar 0v vertaalt op het fysieke pin (12) dat overeenkomt met B0. Dit kan ook geschreven worden als PORTB = 0;

  • while(x): de MCU zal het uitvoeren van de verklaringen van de tussen de daaropvolgende twee overeenkomt accolades {} zo lang als de instructie x geldt. De x konden ondervragen of twee variabelen een en b zijn gelijke zoals een == b (Let op de dubbele gelijken). In ons geval willen we de LED continu knipperen dus de instructies tussen de accolades moeten continu uitvoeren. Kunnen we schrijven ' while(true == true)' waar '==' is de operator van de C/C++ controleren logisch gelijkheid (een enkele '=' betekent iets toewijzen aan een variabele zoals z = 3). De instructie 'while(true==true)' zou de oneindige lus veroorzaken dat wij sinds 'true willen' is altijd true. In ons geval is 1 een 'echte' genomen. Zo zal 'while(1)' het oneindige lus veroorzaken, omdat dit de korte besnoeiing voor het schrijven van 'while (true)' dat een snelkoppeling is voor het schrijven van 'while(true=true)'.

  • Gerelateerde Artikelen

    Atmel opstarten 5: Levenslijn

    Atmel opstarten 5: Levenslijn

    M. A. Parker c2015De levenslijn is een eenvoudige schakeling op basis van de Atmel ATTiny2313A microcontroller eenheid (MCU) die functioneert als een plaatsvervanger klokbron voor een doel MCU uitgevallen gesmolten door klok ten onrechte instellen ze
    Atmel opstarten 1: Atmel Studio en programmeur

    Atmel opstarten 1: Atmel Studio en programmeur

    M. A. Parker c2015Installeren Atmel Studio (AS) en een programmeur belichamen de eerste stappen [0] op het pad aan het gebruik van een afzonderlijke eenheid voor Atmel AVR Microcontroller MCU [1] in tegenstelling tot de MCU-on-a-board zoals Arduino [
    Atmel opstarten 2: Microcontroller-schakelingen en zekeringen

    Atmel opstarten 2: Microcontroller-schakelingen en zekeringen

    M. A. Parker c2015Circuits en zekeringen construeert een eenvoudige maar belangrijke circuit op de experimentator breadboard die zal worden gebruikt als het fundamentele platform voor vele microcontroller projecten en voor het instellen van de parame
    Atmel opstarten 4: BLINKIE twee-Switches, Pull-Up weerstanden en bits Ops

    Atmel opstarten 4: BLINKIE twee-Switches, Pull-Up weerstanden en bits Ops

    Figuur 1: Voorbeeld schakelopties waarmee kunnen de MCU pull-up resisters, Front: foto-weerstand, foto-transistor, drukknop; Achterzijde: voorbeeld van de cijfertoetsen.M. A. Parker c2015Blinky twee toont aan hoe de MCU gemakkelijk kan lezen van de s
    Hack een HC SR04 op een 3-pin sensor

    Hack een HC SR04 op een 3-pin sensor

    Ik hoop dat jullie allemaal hebben gehoord van dat dure-maar-geweldig parallax ping))) sensor. Ik kan niet een van hen het mijn budget ontploffing in uiterst kleine kleine stukjes puin rondzweven kopen (30$ ik bedoel). Dus wat doe je? letterlijk kapp
    Hoe maak een 9-pins serieel naar Ethernet-kabel

    Hoe maak een 9-pins serieel naar Ethernet-kabel

    deze instructies zal u tonen hoe maak een 9-pins serieel naar Ethernet-kabel. Seriële kabels worden gebruikt om te controleren en configureren van apparaten met seriële poorten. Bij het ene uiteinde converteren naar Ethernet, kan het signaal verder r
    Hoe te lezen veel schakelaars met een MCU-Pin

    Hoe te lezen veel schakelaars met een MCU-Pin

    hebben u ooit geweest chugging weg op een project(en) en het project houdt groeit en groeit, terwijl u er meer dingen aan toevoegen (wij noemen dat een Feaping-Creaturism)?  Op een recente project, ik was het bouwen van een frequentie meter en een vi
    How-to: Schil een Bowling pin...

    How-to: Schil een Bowling pin...

    Dus een vriend van mij een fanatieke bowler is. Hij heeft zelfs een part time baan onderhoud aan een lokale steegje doen... Hij bracht me een dozijn pinnen de andere dag en ik ben niet precies zeker wat te doen met hen, maar ik ben een houten turner
    Hoe maak je een kleding Pin mij

    Hoe maak je een kleding Pin mij

    In dit instructable, leert u hoe maak je een kleding Pin-mijn die is geweldig voor, grappen. Het "klappen omhoog" met een klein effect. Het zal schrikken de heck van vervelende roomates, of alle andere mensen die u wilt schrikken.Stap 1: Verzame
    Bouwen van een digital pin-hole camera

    Bouwen van een digital pin-hole camera

    ik altijd al wilde proberen het maken van foto's met een pinhole camera, maar het was een van die dingen die ik nooit helemaal heb rond om. Nu met digitale camera's zijn makkelijk.Je moet een digitale single lens reflex (SLR) camera met een verwissel
    Hoe maak je een Push Pin portret

    Hoe maak je een Push Pin portret

    wij zijn gonna make fotorealistische push pin portretten.We zullen in de plaatsing van onze pin laten leiden door een lage resolutie geïndexeerde kleur GIF-afbeelding, die wij in Photoshop maken zullen. Het GIF wordt gebruikt een beperkt palet beperk
    Lenzen voor een Digital pin hole camera

    Lenzen voor een Digital pin hole camera

    dit Instructable is niet om je te leren hoe maak je een pin gat, het is het maken van lenzen voor de pin hole die u al hebt gemaakt.U MOET:Een oude DVD-speler die u voor onderdelen vernietigen kan,Hulpprogramma's voor het openen van de DVD-speler,Kar
    RaspberryPi: Meerdere knoppen op een Digital Pin

    RaspberryPi: Meerdere knoppen op een Digital Pin

    Als je ooit jezelf bijna geen GPIO pinnen op een RaspberryPi kun je dat meerdere drukknop schakelaars op een enkele pin met behulp van deze methode te vinden. Het wordt een variabele ingesteld door de timing van het opladen van een condensator door m
    IN/OUT op een poort

    IN/OUT op een poort

    IN / OUT op een poort is een poort-saving ideeën.Eigenlijk heb ik solliciteerde en het voelde heel goed. Mijn toepassingen toegepast op koffiezetapparaten. Benieuwd naar de opmerkingen van u ontvangen.Stap 1: Stap 2: Stap 3:Stap 4:Stap 5:Toepassingsp