智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2413|回复: 13
打印 上一主题 下一主题

怎么读取十六位的寄存器呢?

[复制链接]

49

主题

272

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1387

优秀会员奖章活跃会员奖章

威望
709
贡献
354
兑换币
388
注册时间
2013-9-12
在线时间
162 小时
毕业学校
广东石油化工学院
跳转到指定楼层
1#
发表于 2013-11-19 20:55:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
就比如TCNTH和TCNTL,如果不是同时读取的话,可能数据已经变了,那要怎么同时读取两个寄存器呢?,书本上说要按字访问,请问什么叫按字访问呢,求教!!

1

主题

142

帖子

0

精华

高级会员

Rank: 4

积分
674
QQ
威望
361
贡献
183
兑换币
251
注册时间
2013-11-10
在线时间
65 小时
14#
发表于 2013-11-20 22:20:24 | 只看该作者
回复 支持 反对

使用道具 举报

3

主题

563

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3808

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章

QQ
威望
1710
贡献
906
兑换币
1148
注册时间
2013-8-24
在线时间
596 小时
13#
发表于 2013-11-20 15:18:51 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

21

主题

896

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4068
威望
2252
贡献
1296
兑换币
1483
注册时间
2012-7-30
在线时间
260 小时
毕业学校
克莱德大学
12#
发表于 2013-11-19 23:01:51 | 只看该作者
由编译器实现的,跟C语言没关系。
word x;
x = TCNT;
就可以了。
回复 支持 反对

使用道具 举报

9

主题

145

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1623

活跃会员奖章优秀会员奖章

威望
744
贡献
447
兑换币
497
注册时间
2013-10-6
在线时间
216 小时
毕业学校
长春理工大学
11#
发表于 2013-11-19 21:56:45 | 只看该作者
"沉沉睡去. 发表于 2013-11-19 21:37
TCNTH和TCNTL是两个八位寄存器啊=。=,哪里是一个十六位寄存器呢

TCNT是一个16位寄存器,可以把它分成TCNTH和TCNTL两个字节,那么这两个字节可以分别看成两个八位寄存器,现在的问题是单片机可以一次处理十六位,那可以直接一次读出TCNT,不用分开读,如果一次只能处理八位数据,那就必须且只能分两次,如果一次只能处理四位,那就必须处理四次。
回复 支持 反对

使用道具 举报

24

主题

492

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13138
威望
5341
贡献
1645
兑换币
2222
注册时间
2012-3-9
在线时间
3076 小时
毕业学校
嘉兴学院
10#
发表于 2013-11-19 21:45:02 | 只看该作者
"沉沉睡去. 发表于 2013-11-19 21:37
TCNTH和TCNTL是两个八位寄存器啊=。=,哪里是一个十六位寄存器呢

看底层可以变成TCNT的  就像SCI0BD一样的
回复 支持 反对

使用道具 举报

49

主题

272

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1387

优秀会员奖章活跃会员奖章

威望
709
贡献
354
兑换币
388
注册时间
2013-9-12
在线时间
162 小时
毕业学校
广东石油化工学院
9#
 楼主| 发表于 2013-11-19 21:37:52 | 只看该作者
本帖最后由 "沉沉睡去. 于 2013-11-19 21:48 编辑
ww1993 发表于 2013-11-19 21:22
附加一句TCNTH和TCNTL不是两个寄存器,是一个,只是人为的说成是高八位和低八位


回复 支持 反对

使用道具 举报

18

主题

694

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8526

活跃会员奖章优秀会员奖章

威望
4770
贡献
1202
兑换币
2431
注册时间
2013-5-15
在线时间
1277 小时
8#
发表于 2013-11-19 21:25:30 | 只看该作者
学习了!
回复 支持 反对

使用道具 举报

9

主题

145

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1623

活跃会员奖章优秀会员奖章

威望
744
贡献
447
兑换币
497
注册时间
2013-10-6
在线时间
216 小时
毕业学校
长春理工大学
7#
发表于 2013-11-19 21:22:41 | 只看该作者
ww1993 发表于 2013-11-19 21:20
xs128是16位单片机,应该有16位的数据寄存器,直接一次读出十六位应该没问题,不分高低字节,具体实现不知 ...

附加一句TCNTH和TCNTL不是两个寄存器,是一个,只是人为的说成是高八位和低八位
回复 支持 反对

使用道具 举报

9

主题

145

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1623

活跃会员奖章优秀会员奖章

威望
744
贡献
447
兑换币
497
注册时间
2013-10-6
在线时间
216 小时
毕业学校
长春理工大学
6#
发表于 2013-11-19 21:20:35 | 只看该作者
"沉沉睡去. 发表于 2013-11-19 21:07
嗯,这个我知道,可是要怎么才能一次访问十六位呢?

xs128是16位单片机,应该有16位的数据寄存器,直接一次读出十六位应该没问题,不分高低字节,具体实现不知道,还没用过,呵呵
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 19:13 , Processed in 0.117579 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表