首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 硬件指南 > 应用技巧 > PIC单片机C语言开发中数据类型转换中要注意的一个问题
【标  题】:PIC单片机C语言开发中数据类型转换中要注意的一个问题
【关键字】:PIC
【来  源】:http://www.cublog.cn/u/22426/showart.php?id=150517

PIC单片机C语言开发中数据类型转换中要注意的一个问题

我使用的是PIC16F873A单片机,开发环境MPLAB IDE V7.0,使用PICC编译器。在float型数据向整型数据转换的过程中会出现问题,发现转换后数据不正确。而且也有群友反映过这样的问题。
有下面这样一个求平均值的运算:
#define SEQUEUE_INSTRUCTION_MAXNUM 20
 
void CaculateADResultAverage(void)
{
   unsigned int Total=0;
   unsigned char i=0;
   //计算总和
   for(i=0;i<SEQUEUE_FEEDBACK_MAXNUM;i++)
   {
     Total+=ADFeedback[i];
   } 
   //求ADFeedback平均值
   ADFeedbackAverage=(unsigned char)((Total)/(SEQUEUE_FEEDBACK_MAXNUM));
}
 
会发现斜体部分计算出来的平均值出入很大,将其改为下面的程序
ADFeedbackAverage=(unsigned char)((float)(Total)/(SEQUEUE_FEEDBACK_MAXNUM));
这样计算结果就正确了。在从double型数据向整型数据转换的过程中采取同样的方法可以避免错误的发生。
   第一次使用PIC单片机,遇到这个问题时,发现结果不对,还以为是模拟部分没有作好,数据采集的不正确,麻烦,费了不少功夫才发现是这个问题。汗。。。
 
负载均衡软件实现方式之一 - URL重定向方式:【上一篇】
[新品] 只需6600,Yonah核心Thinkpad R60E全面上市:【下一篇】
【相关文章】
  • PicoContainer源码导读
  • PicoContainer一个轻量级IOC容器源码分析
  • SPHINX --A Topic-Reply Markup Language (Sphinx——一种主题回复标识语言) 草稿
  • Picking a random card from a deck
  • 用PIC低档单片机模拟串口通讯.
  • 为何在VB6中,"SetClipboardData CF_METAFILEPICT, hGlobal" 该句总是报溢出
  • 在PIC18单片机中使用BootLoader
  • 极速抢先:Picasa网络相册正式推出!
  • 在delphi中将datetimepicker的焦点自动定位到日期上
  • Google发布Linux下的Picasa软件
  • 【随机文章】
  • photoshop历史记录画笔工具
  • Linux编程白皮书 第二章 内存管理 2.1.1 请求调页 --2.1.5 访问控制
  • 通过更改Win2k注册表抵抗拒绝服务
  • PL的六大秘诀
  • Mysql安装
  • DOS 下多任务系统的设计与实现 (1995-7)
  • 栀子花
  • NURBS的一些东东(一)
  • 使用flash制作雪夜的作法讲解
  • MyISAM和外键支持
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.