| 数据搜索系统,热门电子元器件搜索 |
|
ATmega16HVB 数据表(PDF) 167 Page - ATMEL Corporation |
|
|
|||||||||||||||||||||||||||||
ATmega16HVB 数据表(HTML) 167 Page - ATMEL Corporation |
|
167 / 273 page ![]() 167 8042A–AVR–07/09 ATmega16HVB/32HVB Note: 1. See ”About Code Examples” on page 8. Assembly code example(1) C example(1) Comments 1 ldi r16, (1<<TWINT)|(1<<TWSTA)| (1<<TWEN) out TWCR, r16 TWCR = (1<<TWINT)|(1<<TWSTA)| (1<<TWEN) Send START condition 2 wait1: in r16,TWCR sbrs r16,TWINT rjmp wait1 while (!(TWCR & (1<<TWINT))) ; Wait for TWINT flag set. This indicates that the START condition has been transmitted 3 in r16,TWSR andi r16, 0xF8 cpi r16, START brne ERROR if ((TWSR & 0xF8) != START) ERROR(); Check value of TWI Status Register. Mask prescaler bits. If status different from START go to ERROR 4 ldi r16, SLA_W out TWDR, r16 ldi r16, (1<<TWINT) | (1<<TWEN) out TWCR, r16 TWDR = SLA_W; TWCR = (1<<TWINT) | (1<<TWEN); Load SLA_W into TWDR Register. Clear TWINT bit in TWCR to start transmission of address wait2: in r16,TWCR sbrs r16,TWINT rjmp wait2 while (!(TWCR & (1<<TWINT))) ; Wait for TWINT flag set. This indicates that the SLA+W has been transmitted, and ACK/NACK has been received. 5 in r16,TWSR andi r16, 0xF8 cpi r16, MT_SLA_ACK brne ERROR if ((TWSR & 0xF8) != MT_SLA_ACK) ERROR(); Check value of TWI Status Register. Mask prescaler bits. If status different from MT_SLA_ACK go to ERROR ldi r16, DATA out TWDR, r16 ldi r16, (1<<TWINT) | (1<<TWEN) out TWCR, r16 TWDR = DATA; TWCR = (1<<TWINT) | (1<<TWEN); Load DATA into TWDR Register. Clear TWINT bit in TWCR to start transmission of data 6 wait3: in r16,TWCR sbrs r16,TWINT rjmp wait3 while (!(TWCR & (1<<TWINT))) ; Wait for TWINT flag set. This indicates that the DATA has been transmitted, and ACK/NACK has been received. 7 in r16,TWSR andi r16, 0xF8 cpi r16, MT_DATA_ACK brne ERROR if ((TWSR & 0xF8) != MT_DATA_ACK) ERROR(); Check value of TWI Status Register. Mask prescaler bits. If status different from MT_DATA_ACK go to ERROR ldi r16, (1<<TWINT)|(1<<TWEN)| (1<<TWSTO) out TWCR, r16 TWCR = (1<<TWINT)|(1<<TWEN)| (1<<TWSTO); Transmit STOP condition |
|
链接网址 |
| ALLDATASHEET是否为您带来帮助? [ DONATE ] |
关于 Alldatasheet | 广告服务 | 联系我们 | 隐私政策 | 数据表链接 | 链接交换 | 制造商名单 All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |