欢迎访问ic37.com |
会员登录 免费注册
发布采购

MEGA128CAN 参数 Datasheet PDF下载

MEGA128CAN图片预览
型号: MEGA128CAN
PDF下载: 下载PDF文件 查看货源
内容描述: 微控制器,带有ISP功能的Flash和CAN控制器128K字节 [Microcontroller WITH 128K BYTES OF ISP FLASH AND CAN CONTROLLER]
分类和应用: 微控制器
文件页数/大小: 413 页 / 5507 K
品牌: ATMEL [ ATMEL ]
 浏览型号MEGA128CAN的Datasheet PDF文件第209页浏览型号MEGA128CAN的Datasheet PDF文件第210页浏览型号MEGA128CAN的Datasheet PDF文件第211页浏览型号MEGA128CAN的Datasheet PDF文件第212页浏览型号MEGA128CAN的Datasheet PDF文件第214页浏览型号MEGA128CAN的Datasheet PDF文件第215页浏览型号MEGA128CAN的Datasheet PDF文件第216页浏览型号MEGA128CAN的Datasheet PDF文件第217页  
AT90CAN128  
set. Writing a one to TWINT clears the flag. The TWI will then commence executing  
whatever operation was specified by the TWCR setting.  
In the following an assembly and C implementation of the example is given. Note that  
the code below assumes that several definitions have been made for example by using  
include-files.  
Assembly Code Example  
C Example  
Comments  
ldi  
r16, (1<<TWINT)|(1<<TWSTA)|  
TWCR = (1<<TWINT)|(1<<TWSTA)|  
1
2
(1<<TWEN)  
TWCR, r16  
(1<<TWEN)  
Send START condition  
sts  
wait1:  
while (!(TWCR & (1<<TWINT)))  
lds  
r16,TWCR  
;
Wait for TWINT flag set. This indicates that  
the START condition has been transmitted  
sbrs r16,TWINT  
rjmp wait1  
lds  
andi r16, 0xF8  
cpi r16, START  
brne ERROR  
r16,TWSR  
if ((TWSR & 0xF8) != START)  
3
Check value of TWI Status Register. Mask  
prescaler bits. If status different from START  
go to ERROR  
ERROR();  
ldi  
sts  
ldi  
sts  
r16, SLA_W  
TWDR = SLA_W;  
Load SLA_W into TWDR Register. Clear  
TWINT bit in TWCR to start transmission of  
address  
TWDR, r16  
TWCR = (1<<TWINT) | (1<<TWEN);  
r16, (1<<TWINT) | (1<<TWEN)  
TWCR, r16  
wait2:  
while (!(TWCR & (1<<TWINT)))  
4
5
Wait for TWINT flag set. This indicates that  
the SLA+W has been transmitted, and  
ACK/NACK has been received.  
lds  
r16,TWCR  
;
sbrs r16,TWINT  
rjmp wait2  
lds  
r16,TWSR  
if ((TWSR & 0xF8) != MT_SLA_ACK)  
Check value of TWI Status Register. Mask  
prescaler bits. If status different from  
MT_SLA_ACK go to ERROR  
andi r16, 0xF8  
ERROR();  
cpi  
r16, MT_SLA_ACK  
brne ERROR  
ldi  
sts  
ldi  
sts  
r16, DATA  
TWDR = DATA;  
TWDR, r16  
TWCR = (1<<TWINT) | (1<<TWEN);  
Load DATA into TWDR Register. Clear TWINT  
bit in TWCR to start transmission of data  
r16, (1<<TWINT) | (1<<TWEN)  
TWCR, r16  
wait3:  
while (!(TWCR & (1<<TWINT)))  
6
7
Wait for TWINT flag set. This indicates that  
the DATA has been transmitted, and  
ACK/NACK has been received.  
lds  
r16,TWCR  
;
sbrs r16,TWINT  
rjmp wait3  
lds  
r16,TWSR  
if ((TWSR & 0xF8) != MT_DATA_ACK)  
Check value of TWI Status Register. Mask  
prescaler bits. If status different from  
MT_DATA_ACK go to ERROR  
andi r16, 0xF8  
ERROR();  
cpi  
r16, MT_DATA_ACK  
brne ERROR  
ldi  
sts  
r16, (1<<TWINT)|(1<<TWEN)|  
TWCR = (1<<TWINT)|(1<<TWEN)|  
(1<<TWSTO);  
(1<<TWSTO)  
TWCR, r16  
Transmit STOP condition  
213  
4250E–CAN–12/04  
 复制成功!