打印

picc是如何书写整型数据转换为两个字符型数据?

[复制链接]
2905|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
weimao228|  楼主 | 2011-4-11 16:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在研究PIC的c语言,发现只了解了下基本的语言,比如说顺序循环啊,条件循环啊之类的。一遇到一些问题就不知道如何下手。
比如说现在单片机内存里定义的TMR1L和TMR1H是字符型的,也就是char型。在程序设计中要对TMR1的定时初值进行修改,利用整型unsigned int 进行计算。
eg:R1=R0*10.现在的,接下来就是要把R1的低8位给TMR1L,高8位赋给TMR1H.
这部分的程序该如何写呢?
沙发
kvdong| | 2011-4-11 21:26 | 只看该作者
TRM1L=R1&0xff;
TRM1H=R1>>8;

如上。

或者用联合体定义你的R1
union uinttouchar{
    unsigned int ui;
    unsigned char uc[2];
}R1;

R1.ui=R0*10;
TMR1L=R1.uc[0];
TMR1H=R1.uc[1];

使用特权

评论回复
板凳
yewuyi| | 2011-4-11 23:19 | 只看该作者
uint Time1Buf;
Time1Buf=(TRM1H<<8)+TRM1L;

使用特权

评论回复
地板
weimao228|  楼主 | 2011-4-12 12:53 | 只看该作者
TRM1L=R1&0xff;
TRM1H=R1>>8;

如上。

或者用联合体定义你的R1
union uinttouchar{
    unsigned int ui;
    unsigned char uc[2];
}R1;

R1.ui=R0*10;
TMR1L=R1.uc[0];
TMR1H=R1.uc[1]; ...
kvdong 发表于 2011-4-11 21:26
哇 我用简单的那两句。问题解决了。谢谢你啊!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

60

帖子

1

粉丝