搜索
bottom↓
回复: 13

在马潮的atmega16书中,有个问题请教

[复制链接]

出0入0汤圆

发表于 2009-10-16 18:24:24 | 显示全部楼层 |阅读模式
在USART那章中
设置波特率
UBRRH=(unsigned char)(baud>>8);
UBRRL=(unsigned char)(baud);
我的问题就是baud是12位,
第一句右移8位是取高四位
第二句为什么是12位呢?应该是低8位啊??????????????????????????????????

出0入0汤圆

发表于 2009-10-16 18:56:20 | 显示全部楼层
打那么多的问号是什么意思?

学过C语言程序设计的课程吗?手边应该有本C的参考书把,那么请你看书找这些问号的答案。

char是什么数据类型,几位?那么(unsigned char)(baud); 得到什么数?

出0入0汤圆

发表于 2009-10-16 19:19:54 | 显示全部楼层
哈哈哈哈, 的确,的确, 就好像你给PORTA口赋一个Int32的数值其实也可以的

出0入0汤圆

 楼主| 发表于 2009-10-16 20:35:48 | 显示全部楼层
#include"reg52.h"
#define BAUD_SETTING  9600
#define BAUD_H (unsigned char)(BAUD_SETTING>>8)
#define BAUD_L (unsigned char)(BAUD_SETTING)
void main()
{
unsigned char a,b;
a=BAUD_H;
b=BAUD_L;
while(1);
}

我用这个程序测试过了,的确第二句是取低八位,不过用关键字来取数值范围,我倒不常见,算长见识了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

出0入0汤圆

发表于 2009-10-17 17:27:24 | 显示全部楼层
在网上找一下,什么叫“类型显式强制转换”,有什么规律。这个不是我发明创造的。

出0入0汤圆

发表于 2009-10-27 14:54:08 | 显示全部楼层
LZ拿本谭大爷的书 翻到第二章,里面有一节专门介绍运算符看看就清楚了

出0入0汤圆

发表于 2009-10-27 17:16:56 | 显示全部楼层
为PC编写C代码的,主要是碰到低到高的转换(8转换成16或32位),而且是隐式转换,在表达式里(由编译器)自动完成转换。

而为单片机编写C代码,由于RAM资源和提高效率,通常尽量使用小的变量,这是就需要使用“类型显式强制转换”的方法了。

出0入0汤圆

发表于 2009-10-27 17:18:51 | 显示全部楼层
LZ是外行

出0入0汤圆

发表于 2009-10-29 19:14:49 | 显示全部楼层
真没礼貌和教养,你当你是谁?鄙视之

出0入0汤圆

发表于 2009-10-29 19:20:49 | 显示全部楼层
楼上没必要说那么明白,让他出社会后慢慢学习做人

出0入0汤圆

 楼主| 发表于 2009-10-30 09:06:05 | 显示全部楼层
真是好笑,一个已经解决的问题,竟然还有这么多人回复,首先我要说明一下,我不是不懂类型转换,我所说的不常见是指这个12位的数加个unsigned char ,就取后面8位,因为我一般看见的是定义一个类型如int s,float t,然后s=(int)(t....)这种格式,况且那个式子有2个uchar,第一个没问题,我怎么晓得第二个暗藏玄机,没听过思维定式吗?一时想不出来也很正常,然后听别人一说,就明白了。对于那些言语恶劣的人,难道你们就没提过问题?尤其对于那种积分一点点,在这指手划脚的人,你们有本事就去帮别人解决问题,少在这帖子里唧唧歪歪。本来不想说这么多的,登陆后打开我的主题,发现这帖置顶,打开后看见骂声一片,才写的。。

出0入0汤圆

发表于 2009-10-30 11:37:12 | 显示全部楼层
同情楼上的遭遇,以后有问题还是不要在这论坛上讨论马老的书。因为马老的书是给高手们看,像你我这类入门级(他们觉得)不单得不到鼓励。还会受到打击

出0入0汤圆

发表于 2009-10-30 14:22:41 | 显示全部楼层
我能理解LZ的,对于没到高手水平的人来说,他遇到问题实在想不通身边又没有其他人可帮助时,才来论坛里问问的,因为感觉论坛里有真正热心指教的高手存在。赶快加油努力啊

出0入0汤圆

发表于 2009-11-1 14:09:19 | 显示全部楼层
“尤其对于那种积分一点点,在这指手划脚的人,你们有本事就去帮别人解决问题,少在这帖子里唧唧歪歪。”楼主不要认为积分一点点的就不是高手,不要忘了,真人不露相啊!这里藏龙卧虎的有的是。像我等初学者向别人请教时基本的礼貌还是要有的,别人也没有义务解答你的问题是吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-2 09:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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