atmega323l ATMEL Corporation, atmega323l Datasheet - Page 119

no-image

atmega323l

Manufacturer Part Number
atmega323l
Description
Atmega323 8-bit Avr Microcontroller With 32k Bytes Of In-system Programmable Flash
Manufacturer
ATMEL Corporation
Datasheet
1457G–AVR–09/03
wait12:in
wait13:in
;<Wait for next data transmission or do something else>
sbrs r16, TWINT
rjmp wait12
in
cpi
brne ERROR
in
nop
ldi
out
sbrs r16, TWINT
rjmp wait13
in
cpi
brne ERROR
in
nop
ldi
out
r16,TWCR
r16, TWSR
r16, SR_DATA_ACK
r16, TWDR
r16, (1<<TWINT) | (1<<TWEN)
TWCR, r16
r16,TWCR
r16, TWSR
r16, SR_DATA_NACK
r16, TWDR
r16, (1<<TWINT) | (1<<TWEA) | (1<<TWEN)
TWCR, r16
; ACK should be returned after receiving first
; data byte
; Wait for TWINT Flag set. This indicates that
; data has been received and ACK returned
; Check value of TWI Status Register. If status
; different from SR_DATA_ACK, go to ERROR
; Input received data from TWDR.
;<do something with received data>
; Clear TWINT bit in TWCR to start reception of
; data. Not setting TWEA causes NACK to be
; returned after reception of next data byte
; Wait for TWINT Flag set. This indicates that
; data has been received and NACK returned
; Check value of TWI Status Register. If status
; different from SR_DATA_NACK, go to ERROR
; Input received data from TWDR.
;<do something with received data>
; Clear TWINT bit in TWCR to start reception of
; data. Setting TWEA causes TWI unit to enter
; not addressed Slave mode with recognition of
; own SLA
ATmega323(L)
119

Related parts for atmega323l