Pada dasarnya untuk mengakses I/O (input output) AVR ada beberapa register yang harus disetting terlebih dahulu, yaitu:
1. Data Register (PORTx)
2. Data Direction Register (DDRx) dan
3. Port Input Pin (PINx)
DDR bit=1
|
DDR bit=0
| |
Port bit=1
|
Output high
|
Input pull-up
|
Port bit=0
|
Output low
|
Input floating
|
- Input : DDR bit 0 dan port bit 1
- Output high : DDR bit 1 dan port bit 1
- Output low : DDR bit 1 dan port bit 0
DDRx digunakan untuk mendefinisikan port sebagai input atau output, Jika level logika pada register DDR bernilai 1 maka Port tersebut dikonfigurasikan sebagai Output. Sedangkan jika level logika pada register DDR bernilai 0 maka Port tersebut dikonfigurasikan sebagai input.
Contoh: DDRA=0xff → maka Port A sebagai Output
DDRA=0×00 → maka Port A sebagai Input
PORTx digunakan untuk mengeluarkan/menulis data ke port mikrokontroler, saat dikonfigurasikan sebagai output.
Contoh: PORTB=0xff → maka Port B = 11111111 (biner)
PORTB=0xa3 → maka Port B = 10100011 (biner)
PINx digunakan untuk mengambil/membaca data dari port mikrokontroler, saat dikonfigurasikan sebagai input.
Contoh:
PortB=0xCC //jika ditulis salam hexa
DDRB=0x0F //jika ditulis salam biner maka DDRB=0b00001111
Arti dari sintax di atas adalah PORTB(0-3) sebagai input dan PORTB(4-7) sebagai input. Sedangkan dari PORT terlihat bahwa PB(0-1)= low, PA(2-3)=high, PA(4-5) tanpa floating dan PA(6-7) dengan Rpull-up
0 komentar:
Posting Komentar