ATmega128
Assembly Code Example
C Example
Comments
1
ldi
r16,
TWCR = (1<<TWINT)|(1<<TWSTA)|
(1<<TWINT)|(1<<TWSTA)|
(1<<TWEN)
TWCR, r16
out
(1<<TWEN)
Send START condition
2
wait1:
while (!(TWCR & (1<<TWINT)))
in
r16,TWCR
;
W ait for T W INT flag set. This indicates that the
sbrs r16,TWINT
rjmp wait1
START condition has been transmitted
3
in
r16,TWSR
if ((TWSR & 0xF8) != START)
andi r16, 0xF8
cpi r16, START
brne ERROR
ERROR();
Check value of T W I Status Register. Mask
prescaler bits. If status different from START
go to ERROR
ldi
r16, SLA_W
TWDR = SLA_W;
out
ldi
TWDR, r16
r16, (1<<TWINT) |
TWCR = (1<<TWINT) |
(1<<TWEN);
Load SLA_ W into T W DR Register. Clear
T W INT bit in T W CR to start transmission of
(1<<TWEN)
address
out
TWCR, r16
4
wait2:
while (!(TWCR & (1<<TWINT)))
in r16,TWCR
sbrs r16,TWINT
rjmp wait2
;
W ait for T W INT flag set. This indicates that the
SLA+ W has been transmitted, and
ACK/NACK has been received.
5
in
r16,TWSR
if ((TWSR & 0xF8) !=
andi r16, 0xF8
cpi r16, MT_SLA_ACK
brne ERROR
MT_SLA_ACK)
ERROR();
Check value of T W I Status Register. Mask
prescaler bits. If status different from
MT_SLA_ACK go to ERROR
ldi
out
r16, DATA
TWDR, r16
TWDR = DATA;
TWCR = (1<<TWINT) |
ldi
r16, (1<<TWINT) |
(1<<TWEN);
Load DATA into T W DR Register. Clear T W INT
bit in T W CR to start transmission of data
(1<<TWEN)
out
TWCR, r16
6
wait3:
while (!(TWCR & (1<<TWINT)))
in r16,TWCR
sbrs r16,TWINT
rjmp wait3
;
W ait for T W INT flag set. This indicates that the
DATA has been transmitted, and ACK/NACK
has been received.
7
in
r16,TWSR
if ((TWSR & 0xF8) !=
andi r16, 0xF8
cpi r16, MT_DATA_ACK
brne ERROR
MT_DATA_ACK)
ERROR();
Check value of T W I Status Register. Mask
prescaler bits. If status different from
MT_DATA_ACK go to ERROR
ldi
r16,
TWCR = (1<<TWINT)|(1<<TWEN)|
(1<<TWINT)|(1<<TWEN)|
(1<<TWSTO)
TWCR, r16
out
(1<<TWSTO);
Transmit STOP condition
Note:
For I/O registers located in extended I/O map, “IN”, “OUT”, “SBIS”, “SBIC”, “CBI”, and “SBI” instructions must be replaced with
instructions that allow access to extended I/O. Typically “LDS” and “STS” combined with “SBRS”, “SBRC”, “SBR”, and “CBR”.
211
2467X–AVR–06/11
相关PDF资料
ATMEGA64RZAPV-10AU BUNDLE ATMEGA644P/AT86RF230 TQFP
ATP101-TL-H MOSFET P-CH 30V 25A ATPAK
ATP102-TL-H MOSFET P-CH 30V 40A ATPAK
ATP103-TL-H MOSFET P-CH 30V 55A ATPAK
ATP104-TL-H MOSFET P-CH 30V 75A ATPAK
ATP106-TL-H MOSFET P-CH 40V 30A ATPAK
ATP107-TL-H MOSFET P-CH 40V 50A ATPAK
ATP108-TL-H MOSFET P-CH 40V 70A ATPAK
相关代理商/技术参数
ATMEGA128RFA1-ZUR SL514 制造商:Atmel Corporation 功能描述:
ATMEGA128RFA1-ZUR00 制造商:Atmel Corporation 功能描述:2.4GHZ 802.15.4 128K SOC REVF 制造商:Atmel Corporation 功能描述:2.4GHZ 802.15.4 128K SOC REVF T&R - Bulk 制造商:Atmel from Components Direct 功能描述:ATMEL ATMEGA128RFA1-ZUR00 MICROCONTROLLERS (MCU) 制造商:Atmel 功能描述:Atmel ATMEGA128RFA1-ZUR00 Microcontrollers (MCU) 制造商:Atmel Corporation 功能描述:MCU AVR 2.4GHZ 128K FLASH 64VQFN 制造商:Atmel Corporation 功能描述:2.4GHZ 802.15.4 128K SOC Revision F 制造商:Atmel 功能描述:2.4GHZ 802.15.4 128K SOC REVF
ATMEGA128RFR2-ZF 功能描述:IC RF TXRX+MCU 802.15.4 64-VFQFN 制造商:microchip technology 系列:- 包装:托盘 零件状态:在售 类型:TxRx + MCU 射频系列/标准:802.15.4 协议:Zigbee? 调制:DSSS, O-QPSK 频率:2.4GHz 数据速率(最大值):2Mbps 功率 - 输出:3.5dBm 灵敏度:-100dBm 存储容量:128kB 闪存,4kB EEPROM,16kB SRAM 串行接口:I2C,JTAG,SPI,USART GPIO:35 电压 - 电源:1.8 V ~ 3.6 V 电流 - 接收:5mA ~ 12.5mA 电流 - 传输:8mA ~ 14.5mA 工作温度:-40°C ~ 125°C 封装/外壳:64-VFQFN 裸露焊盘 标准包装:260
ATMEGA128RFR2-ZU 制造商:Atmel Corporation 功能描述:2.4GHZ 802.15.4 128K SOC IND 85C - Bulk
ATMEGA128RFR2-ZUR 制造商:Atmel Corporation 功能描述:2.4GHZ 802.15.4 128K SOC 85C T&R - Tape and Reel
ATMEGA128RZAV-8AU 功能描述:射频微控制器 - MCU AVR Z-Link Bundle RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:Si100x 数据总线宽度:8 bit 最大时钟频率:24 MHz 程序存储器大小:64 KB 数据 RAM 大小:4 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 85 C 封装 / 箱体:LGA-42 安装风格:SMD/SMT 封装:Tube
ATMEGA128RZAV-8MU 功能描述:射频微控制器 - MCU AVR Z-Link Bundle RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:Si100x 数据总线宽度:8 bit 最大时钟频率:24 MHz 程序存储器大小:64 KB 数据 RAM 大小:4 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 85 C 封装 / 箱体:LGA-42 安装风格:SMD/SMT 封装:Tube