ATmega48 Automotive Atmel Corporation, ATmega48 Automotive Datasheet - Page 94

no-image

ATmega48 Automotive

Manufacturer Part Number
ATmega48 Automotive
Description
Manufacturer
Atmel Corporation

Specifications of ATmega48 Automotive

Flash (kbytes)
4 Kbytes
Pin Count
32
Max. Operating Frequency
16 MHz
Cpu
8-bit AVR
# Of Touch Channels
12
Hardware Qtouch Acquisition
No
Max I/o Pins
23
Ext Interrupts
24
Usb Speed
No
Usb Interface
No
Spi
2
Twi (i2c)
1
Uart
1
Graphic Lcd
No
Video Decoder
No
Camera Interface
No
Adc Channels
8
Adc Resolution (bits)
10
Adc Speed (ksps)
15
Analog Comparators
1
Resistive Touch Screen
No
Temp. Sensor
No
Crypto Engine
No
Sram (kbytes)
0.5
Eeprom (bytes)
256
Self Program Memory
NO
Dram Memory
No
Nand Interface
No
Picopower
No
Temp. Range (deg C)
-40 to 125
I/o Supply Class
2.7 to 5.5
Operating Voltage (vcc)
2.7 to 5.5
Fpu
No
Mpu / Mmu
no / no
Timers
3
Output Compare Channels
6
Input Capture Channels
1
Pwm Channels
6
32khz Rtc
Yes
Calibrated Rc Oscillator
Yes
14.3
94
Accessing 16-bit Registers
Atmel ATtiny24/44/84 [Preliminary]
TCNT1, OCR1A/B, and ICR1 are 16-bit registers that can be accessed by the Atmel
CPU via the 8-bit data bus. The 16-bit registers must be byte accessed using two read or write
operations. Each 16-bit timer has a single 8-bit register for temporary storage of the high byte
of the 16-bit access. The same temporary register is shared between all 16-bit registers within
each 16-bit timer. Accessing the low byte triggers the 16-bit read or write operation. When the
low byte of a 16-bit register is written by the CPU, the high byte stored in the temporary regis-
ter and the low byte written are both copied into the 16-bit register in the same clock cycle.
When the low byte of a 16-bit register is read by the CPU, the high byte of the 16-bit register is
copied into the temporary register in the same clock cycle as the low byte is read.
Not all 16-bit accesses use the temporary register for the high byte. Reading the OCR1A/B
16-bit registers does not involve using the temporary register.
To do a 16-bit write, the high byte must be written before the low byte. For a 16-bit read, the
low byte must be read before the high byte.
The following code examples show how to access the 16-bit timer registers, assuming that no
interrupts updates the temporary register. The same principle can be used directly for access-
ing the OCR1A/B and ICR1 registers. Note that when using C, the compiler handles the 16-bit
access.
Note:
The assembly code example returns the TCNT1 value in the r17:r16 register pair.
Assembly Code Examples
C Code Examples
...
; Set TCNT1 to 0x01FF
ldi r17,0x01
ldi r16,0xFF
out TCNT1H,r17
out TCNT1L,r16
; Read TCNT1 into r17:r16
in r16,TCNT1L
in r17,TCNT1H
...
unsigned int i;
...
/* Set TCNT1 to 0x01FF */
TCNT1 = 0x1FF;
/* Read TCNT1 into i */
i = TCNT1;
...
1. See
“About Code Examples” on page
(1)
(1)
6.
7701E–AVR–02/11
®
AVR
®

Related parts for ATmega48 Automotive