Datasheet

C Code Example
(1)
unsigned char i;
:.
/* Define pull-ups and set outputs high */
/* Define directions for port pins */
PORTB = (1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0);
DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);
/* Insert nop for synchronization*/
_NOP();
/* Read port pins */
i = PINB;
:.
Note:  1. For the assembly program, two temporary registers are used to minimize the time from pull-ups
are set on pins 0, 1, 6, and 7, until the direction bits are correctly set, defining bit 2 and 3 as low and
redefining bits 0 and 1 as strong high drivers.
18.2.3. Digital Input Enable and Sleep Modes
As shown in figure Figure 18-2 General Digital I/O(1) on page 93, the digital input signal can be clamped
to ground at the input of the Schmitt Trigger. The signal denoted SLEEP in the figure, is set by the MCU
Sleep Controller in Power-down mode, Power-save mode, and Standby mode to avoid high power
consumption if some input signals are left floating, or have an analog signal level close to V
CC
/2.
SLEEP is overridden for port pins enabled as external interrupt pins. If the external interrupt request is not
enabled, SLEEP is active also for these pins. SLEEP is also overridden by various other alternate
functions as described in Alternate Port Functions on page 96.
If a logic high level (“one”) is present on an Asynchronous External Interrupt pin configured as “Interrupt
on Rising Edge, Falling Edge, or Any Logic Change on Pin” while the external interrupt is not enabled, the
corresponding External Interrupt Flag will be set when resuming from the above mentioned sleep modes,
as the clamping in these sleep modes produces the requested logic change.
18.2.4. Unconnected Pins
If some pins are unused, it is recommended to ensure that these pins have a defined level. Even though
most of the digital inputs are disabled in the deep sleep modes as described above, floating inputs should
be avoided to reduce current consumption in all other modes where the digital inputs are enabled (Reset,
Active mode and Idle mode).
The simplest method to ensure a defined level of an unused pin, is to enable the internal pull-up. In this
case, the pull-up will be disabled during reset. If low power consumption during reset is important, it is
recommended to use an external pull-up or pull-down. Connecting unused pins directly to V
CC
or GND is
not recommended, since this may cause excessive currents if the pin is accidentally configured as an
output.
18.3. Alternate Port Functions
Most port pins have alternate functions in addition to being general digital I/Os. The following figure
shows how the port pin control signals from the simplified Figure 18-2 General Digital I/O(1) on page 93
can be overridden by alternate functions. The overriding signals may not be present in all port pins, but
the figure serves as a generic description applicable to all port pins in the AVR microcontroller family.
Atmel ATmega64A [DATASHEET]
Atmel-8160E-ATmega64A_Datasheet_Complete-09/2015
96