Börjar Arduino (hamnar, Pins och programmering) (5 / 6 steg)
Steg 5: Programmering portar
Fördelarna med att använda portar: snabbare än gående per stift, tar upp mindre kod för ett mindre program
Nackdelar: Svårare att använda och felsöka
Jag valde godtyckligt port D som min port.
Några grundläggande saker att tänka på för att använda portar
Variabler (X bör ersättas med bokstaven rätt port)
DDRX--Data riktning registrera-bestämmer hur data ska flyta för varje stift på port (0 är ingång, 1 utgång)
PORTX--Data registrera--innehar vilka data är att vara utgång/ingång till stift
PINX--Input stift register
Stiften i registret är ordnade från lägre siffra = minst signifikanta biten till flest - mest signifikanta biten (så det skulle vara PORTD för att få stift 0-3 till lika 0 och 4-7 till lika 1 = B11110000)
Exempelkod
int fördröjningstid = 333; Det bättre kodning stil för att inte ha någon hårdkodade konstanter som i föregående exempel
byte portD_HIGH = B11111000;
byte portD_LOW = B00000000;
void setup()
{
DDRD = DDRD | B11111100; Ställer in stiften för utdata
en titt på vad vi gjorde
den | symbolen används som bitvis eller (om antingen bit är 1, resultatet blir 1)
Detta går igenom registret, ORing varje bit med binärfilen till höger om den |
B gör kompilatorn läsa 11111100 som binära
Så Sammanfattningsvis det sätter stift 2-7 till utgång och lämnar 1 och 2 (som ibland
har speciella funktioner) ensam
}
void loop()
{
PORTD = portD_HIGH; uppsättningar pin ledPin hög (så stift 13 är satt till 1)
Delay(delayTime); Waits 333ms eller ~1/3 SEK
PORTD = portD_LOW; uppsättningar pin ledPin till låg (så stift 13 är nu lika med 0)
Delay(delayTime); väntar en annan 333 ms
} //end av loop subrutinen, så det kommer nu gå tillbaka till början
Alla 5 lysdioder bör nu blinkande muntert bort.