pinMode()
Arduino funktsiooni pinMode() abil seatakse siin (pin) kas sisendiks või väljundiks:
pinMode(6, INPUT);
AVR c-keeles:
DDRD &= ~(1 << 6);
DDR – tähendab Data Direction Registrit. Ja kuna Arduino (Atmega328) digital pin 6 kuulub regitrise Port D siis DDRD. Näiteks Arduino digtal pin 12 kuulub registrisse Port B ja siis oleks DDRB.
Et siin (pin) oleks sisend (input) peab selle bitti väärtus registris olema 0. Väljundi korral 1. Selleks saab kasutada bitti nihet vasakule. Esmalt peab järgivaatama, mis registrisse (Port B, Port D jne) viik (pin) kuulub ja mitmes bitt ta seal registris on. Arduino Digital pin 6 on Port D registris 6 bitt. Seega seame biti üheks ja nihutame kuuendasse pessa (1 << 6). Märk ~ muudab biti väärtuse vastupidiseks ehk nulliks.
Sisend:
DDRD &= ~(1 << 6);
Väljund:
DDRD |= (1 << 6);
digitalRead()
Arduino funktsiooni digitalRead() abil saab lugeda, kas siin (pin) on kõrge (High) või madal (Low). Et, kas nupp on alla vajutatud või ei ole. Näide loeme viigu (pin) oleku muutujasse:
int var = digitalRead(2); // Arduino Digital pin 2
AVR c-keeles:
int var = PIND & (1<<2);
PIN – tähendab Port Input Pins Registrit. Siit saab lugeda, kas siin (Pin) on kõrge või madal.
digitalWrite()
Kui siin (pin) on seatud väljundiks saab Arduino funktsiooni digitalWrite() abil, määrata selle, kas kõrgeks (High) või madalaks (Low).
digitalWrite(2, HIGH);
AVR c-keeles:
PORTD |= (1<<2);
PORT – Port Data Register on siini väljund oleku määramise register.
