fix input logic (pull-up) + add GPIO notes

This commit is contained in:
Pratik
2026-04-03 17:14:04 +11:00
parent 2c9714c851
commit ba12279c6a
3 changed files with 273 additions and 1 deletions

View File

@@ -0,0 +1,88 @@
# Digital INPUT OUTPUT
There are three registers which initialize Digital INPUT and DIGITAL OUTPUT port:
1. DDRB
2. DDRC
3. DDRD
Each pin is 1 bit of DDRx.
Here P means Port
Example: PC → Port C
Microcontroller pins are grouped as:
1. PORTB → PB0PB7
2. PORTC → PC0PC6
3. PORTD → PD0PD7
---
## Important
- In Arduino Uno, PC7 does not exist
→ PORTC is only PC0PC6
- PB6 and PB7 are used by 16MHz crystal
→ DO NOT USE
- PC6 is RESET pin
→ DO NOT USE as GPIO
→ can reset system
- PD0 and PD1 are Serial pins (RX TX)
→ used for USB upload and debugging
→ DO NOT USE during development
---
## SPI (just remember)
- PB3 → MOSI
- PB4 → MISO
- PB5 → SCK
→ used for SPI and programming
→ can be used as GPIO but avoid if SPI used
→ PB5 has onboard LED
---
## I2C (just remember)
- PC4 → SDA
- PC5 → SCL
→ used for I2C communication
---
## Safe pins for Digital I/O
- PORTD → PD2PD7
- PORTB → PB0PB2 (PB3PB5 usable but SPI)
- PORTC → PC0PC5 (PC4 PC5 shared with I2C)
---
## Use with care
- PB3 PB4 PB5 → SPI pins
- PC4 PC5 → I2C pins
---
## Final
Best pins to use:
PD2PD7
PB0PB2
PC0PC5
Avoid:
PB6 PB7 → crystal
PC6 → reset
PD0 PD1 → serial