100分求一个简单的程序

billeo 2007-06-04 09:52:41
一个芯片(炬力的ATT7022B)中的寄存器存有二进制数,地址是0x01~0x0c。
现在要把这些地址里的二进制数依次读出来,再判断最高位。
最高位如果是0,则对该数除以2^8,
最高位如果是1,则对该数取反加1再除以2^8,

我是菜鸟,实在不知道该怎么写啊,高手们帮帮忙,小弟谢谢了啊
...全文
266 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huashizhixin 2007-06-04
  • 打赏
  • 举报
回复
大概是这样的,没有测试的:
#define start 0x01
void main()
{

char number[12];
for(int i=0;i<12;i++)
{
number[i]=*(volatile unsigned char *)(start+i);
if(number[i]&(0x1<<7))
printf("%d\n", (int)(!number[i]+1)/2^8);
else
printf("%d\n", number[i]/2^8);
}
billeo 2007-06-04
  • 打赏
  • 举报
回复
谢谢大家啊,我明天结帖,对我有帮助的都有分
再谢谢大家
freshui 2007-06-04
  • 打赏
  • 举报
回复
炬力的 嘿嘿
:)


这是读写一个字节, 你看看能不能用上

void static inline action_writeb(UINT8 val, unsigned long reg)
{
*(volatile UINT8 *)(reg) = val;
}

static inline UINT8 action_readb(unsigned long reg)
{
return (*(volatile UINT8 *)reg);
}
jixingzhong 2007-06-04
  • 打赏
  • 举报
回复
至于数据怎么读取,
看看你手头上的帮助文档、程序例子等等的了 ...
jixingzhong 2007-06-04
  • 打赏
  • 举报
回复
type num; //这个是读取的数据num
int len=sizeof(num)*8; //计算数据的长度,即知道最高位是哪一位
if(num>>(1<<len)) //判断最高位是否为1
num = (~num +1)>>8; //如果是1,则对该数取反加1再除以2^8
else num = num>>8; // 如果是0,则对该数除以2^8
jixingzhong 2007-06-04
  • 打赏
  • 举报
回复
0x01~0x0c 这里是12个字节啊,
这是一个数据?
suyouxin 2007-06-04
  • 打赏
  • 举报
回复
呵呵,顶一个
billeo 2007-06-04
  • 打赏
  • 举报
回复
谢谢大家啊,OTL
星羽 2007-06-04
  • 打赏
  • 举报
回复
顶:)
spofmy 2007-06-04
  • 打赏
  • 举报
回复
顶一下
《完整神武新章服务端源码》是一个与游戏开发相关的资源,主要使用Delphi编程语言编写的。 Delphi是一款强大的面向对象的集成开发环境(IDE),尤其在Windows平台上的应用开发方面享有很高的声誉。 本资源包含的服务端源码是网络游戏《神武新章》的核心部分,它负责处理游戏服务器的逻辑、网络通信、数据库交互以及玩家间的游戏行为同步等关键功能。 1. **Delphi编程基础**:Delphi采用Object Pascal语言,它是一种高效且简洁的面向对象语言。 源码中可能包含类定义、继承、多态性、接口等面向对象设计概念。 理解Delphi的基本语法和面向对象特性是分析和修改源码的基础。 2. **网络编程**:服务端源码中必然涉及网络通信模块,如TCP/IP协议栈的使用,用于建立客户端和服务端之间的连接。 源码地址: https://pan.quark.cn/s/4014bf1007ee 这部分可能涉及到套接字编程,包括监听、接受连接、发送和接收数据等操作。 3. **并发处理**:由于服务器需要同时处理多个客户端的请求,因此并发处理是服务端源码中的重要部分。 Delphi提供了线程和异步编程机制,如TThread类和IO完成端口等技术,用于实现高效的并发控制。 4. **数据库交互**:游戏服务端通常需要与数据库进行交互,存储和检索玩家信息、游戏数据等。 可能使用到ADO(ActiveX Data Objects)或DirectSQL等数据库访问组件,掌握SQL语言和数据库事务处理是必要的。 5. **游戏逻辑**:这部分源码包含了游戏规则的实现,比如角色移动、战斗计算、任务系统等。 这些逻辑可能分布在多个类和函数中,通过事件驱动或消息传递机制进行协调。 6. **加密与安全**:...
本资源文件提供了通过Matlab仿真生成匀速直线运动(CV)、匀加速直线运动(CA)和匀速转弯运动(CT)三种运动模型的轨迹。仿真过程中还加入了杂波,以模拟真实环境中的噪声干扰。用户可以根据需要自行调整相关参数,以满足不同的仿真需求。 功能特点 匀速直线运动(CV):模拟物体在匀速直线运动下的轨迹。 匀加速直线运动(CA):模拟物体在匀加速直线运动下的轨迹。 匀速转弯运动(CT):模拟物体在匀速转弯运动下的轨迹。 杂波模拟:在生成的轨迹中加入杂波,以模拟真实环境中的噪声干扰。 参数可调:用户可以根据需要调整仿真中的各项参数,如速度、加速度、转弯半径等。 使用方法 下载资源文件:将本仓库中的Matlab代码文件下载到本地。 打开Matlab:在Matlab环境中打开下载的代码文件。 调整参数:根据需要调整仿真中的各项参数,如运动速度、加速度、转弯半径等。 运行仿真:运行代码,Matlab将生成相应的运动轨迹,并显示在图形窗口中。 分析结果:观察生成的轨迹,分析运动模型的表现,并根据需要进行进一步的调整和优化。 注意事项 在调整参数时,请确保参数的合理性,以避免仿真结果出现异常。 杂波的强度可以根据实际需求进行调整,以模拟不同环境下的噪声干扰。

70,034

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧