查看: 3374|回复: 10

[其他] 毕业设计用Freescale,遇到问题了,求大神们帮忙(跪求)!

[复制链接]

该用户从未签到

1

主题

6

帖子

0

新手上路

Rank: 1

积分
25
最后登录
2015-6-15
发表于 2015-5-25 17:57:53 | 显示全部楼层 |阅读模式
毕业设计做的是机车智能电表的改进这个题目,手上有一个学长做好的程序,现在是想修改一段程序,让主机设置的随机延时时间变成通过从机数据长度来确定延时时间,表示以前从来没学过这个软件,根本不会编写啊 ,这个语言也不会,求哪个大神帮下忙,要 毕业的学渣孩子真的好惨,不会做,可是马上又要写毕业论文了。
       以下是一些程序代码的截图:

部分代码截图

部分代码截图


老师给我的软件是Freescale Codewarrior S12(X) V5.0版本的。如果有哪个大神愿意花一点点时间帮我看下程序,修改下程序,就联系下小弟,我把整个程序发给你。真的是感激不尽,可怜下要毕业的学渣孩子吧,跪谢。

我知道答案 目前已有10人回答
回复

使用道具 举报

  • TA的每日心情

    2016-10-20 09:45
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    80

    主题

    1038

    帖子

    5

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2223
    最后登录
    2023-11-20
    发表于 2015-5-25 20:37:50 | 显示全部楼层
    主要还是算法,其他都没撒!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-12 10:22
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    15

    主题

    386

    帖子

    0

    高级会员

    Rank: 4

    积分
    541
    最后登录
    2018-6-28
    发表于 2015-5-25 21:27:25 | 显示全部楼层
    没用过,帮不到你
    falajf
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-5-24 10:39
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    140

    主题

    2087

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3913
    最后登录
    2020-5-24
    发表于 2015-5-26 12:50:17 | 显示全部楼层
                   上传全部程序
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    25
    最后登录
    2015-6-15
     楼主| 发表于 2015-5-26 13:51:14 | 显示全部楼层

    您好 ,您把你邮箱发给我,我发你邮箱把,跪谢了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    25
    最后登录
    2015-6-15
     楼主| 发表于 2015-5-26 13:56:22 | 显示全部楼层

    您好,这块就是无线传输的程序,改的要求就是将主机随机设置的延时时间变成通过判断从机需要发送的数据长度来进行延时,数据越长,延时越短。


    #pragma CODE_SEG DEFAULT
    UINT8 checkxor(UINT8 datbuf[],UINT16 checknum)
    //数据求异或校验结果,datbuf[]=数据缓存,checknum=求校验和的字节个数
    {
    UINT16 wori,chxor=0;
    for(wori=0;wori<checknum;wori++)
    {
      chxor=chxor^datbuf[wori];//异或
    }
    return chxor;
    }
    void prepdata(UINT8 worknum)
    //准备返回的数据并启动发送,worknum=任务序号
    {
    UINT8 btem,bflg=0;
    switch(worknum)
    {
      case 0://请求连接
      {
       trbuff1[0]=0x55;//通信头
       trbuff1[1]=0x55;
       trbuff1[2]=0x00;//任务序号
       trbuff1[3]=zjhm;//主机号码低
       trbuff1[4]=zjhm>>8;//主机号码高
       trbuff1[5]=jchm;//机车号码低
       trbuff1[6]=jchm>>8;//机车号码高
       trbuff1[7]=checkxor(trbuff1,7);//校验
       trtotal1=8;//返回数据个数
      }break;
      case 1://建立连接
      {
       trbuff1[0]=0x55;//通信头
       trbuff1[1]=0x55;
       trbuff1[2]=0x01;//任务序号
       trbuff1[3]=jchm;//机车号码低
       trbuff1[4]=jchm>>8;//机车号码高
       trbuff1[5]=icpage;//页码低
       trbuff1[6]=icpage>>8;//页码高
       trbuff1[7]=0xFF;
       trbuff1[8]=checkxor(trbuff1,8);//校验
       trtotal1=9;//返回数据个数
      }break;
      case 2://传送数据
      {
       trbuff1[0]=0x55;//通信头
       trbuff1[1]=0x55;
       trbuff1[2]=0x02;//任务序号
       trbuff1[3]=jchm;//机车号码低
       trbuff1[4]=jchm>>8;//机车号码高
       fallrd(icpageb,trbuff1,5);//读出数据
       trbuff1[269]=checkxor(trbuff1,269);//校验
       trtotal1=270;//返回数据个数
      }break;
      case 3://结束确认
      {
       trbuff1[0]=0x55;//通信头
       trbuff1[1]=0x55;
       trbuff1[2]=0x03;//任务序号
       trbuff1[3]=jchm;//机车号码低
       trbuff1[4]=jchm>>8;//机车号码高
       trbuff1[5]=checkxor(trbuff1,5);//校验
       trtotal1=6;//返回数据个数
      }break;
      default:
      {
       bflg=0x01;
      }break;
    }
    if(bflg==0) //数据正确,发送
    {
      trnum1=0;//计数器清零
      btem=Sci1.scisr1.byte;
      Sci1.scidrl.byte=trbuff1[0];//发送
      Sci1.scicr2.bit.tcie=1;//允许发送中断
      trnum1++;//发送个数加一
      disram[6]=disram[6]|0x01;//无线通信指示灯
      display(disram,CSTXSGS);
    }
    }
    void wirlescom()
    {
    Byte i;
    if(wirelflg==0x01)//接收到命令
    {
      wirelflg=0;//清标志
      if(icpage>1) //数据量足够
      {
       switch(rvbuff1[2])//任务序号
       {
        case 0://主机广播
        {
         if(checkxor(rvbuff1,5)==rvbuff1[5])//校验正确
         {
          if(((rvbuff1[3]*256)+rvbuff1[4])==zjhm)//主机号码正确
          {
           /* 设置侦听标志位 */
           TestNum = 0;
            wxzdsel = WireLis;     //Used in the interrupt procedure
           /* 延迟随机时间 */
         //  SysCntBak = SysCnt%100; //for test
           //  datam(num);//更新显示内容   //for test
              //  display(disram,CSTXSGS);   //for test
           for( i = 0; i < SysCnt%100; i ++ )
           {                                                            3
             timedelay( 10 );
             cplwdi(&Pim.pth.byte,&pthbak);
             if( Idleflg != 0 )
             {
               TestNum = 0;
               break;        
             }
           }
           if( Idleflg == 0 )
           {
              wxzdsel = WXSTA;
              TestNum = 0;
              prepdata(0);//返回数据                        
           }
           else
           {
              wxzdsel = WXSTA;
              Idleflg = 0;           
           }                         //MAX 990ms
          }
         }
        }break;
        case 1://建立连接
        {
         if(checkxor(rvbuff1,5)==rvbuff1[5])//校验正确
         {
          if(((rvbuff1[3]*256)+rvbuff1[4])==jchm)//机车号码正确
          {
           prepdata(1);//返回数据
          }
         }
        }break;
        case 2://传送数据
        {
         if(checkxor(rvbuff1,7)==rvbuff1[7])//校验正确
         {
          if(((rvbuff1[3]*256)+rvbuff1[4])==jchm)//机车号码正确
          {
           icpageb=(rvbuff1[5]*256)+rvbuff1[6];//页码
           prepdata(2); //返回数据
          }
         }
        }break;
        case 3://结束确认
        {
         if(checkxor(rvbuff1,5)==rvbuff1[5])//校验正确
         {
          if(((rvbuff1[3]*256)+rvbuff1[4])==jchm)//机车号码正确
          {
           prepdata(3);//返回数据
           rstflg=0x01;//复位标志
          }
         }
        }break;
        default:break;
       }
      }
    }
    else if(trendflg==0x01) //发送完毕标志
    {
      trendflg=0; //清除标志
      disram[6]=disram[6]&0xFE;//无线通信指示灯
      display(disram,CSTXSGS);
      if(rstflg==0x01)//复位标志
      {
       ferase(0);//擦除前两页
       ferase(1);
       disend();//显示结束
       display(disram,CSTXSGS);
    //   Sci1.scicr2.bit.rie=0;//停止接收
       for(;;)//等待复位
       {}
      }
    }     
    }
    #pragma CODE_SEG DEFAULT
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    25
    最后登录
    2015-6-15
     楼主| 发表于 2015-5-26 14:17:49 | 显示全部楼层

    大神,这是全部程序,我打包给你了。

    dbnew.rar

    432.57 KB, 下载次数: 0, 下载积分: 威望 1

    全部程序

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-1-8 10:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    4

    主题

    36

    帖子

    1

    中级会员

    Rank: 3Rank: 3

    积分
    364
    最后登录
    2020-9-13
    发表于 2015-5-26 14:24:48 | 显示全部楼层
    哎,看楼主这情况, 真是难为你了呀
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    25
    最后登录
    2015-6-15
     楼主| 发表于 2015-5-26 16:05:03 | 显示全部楼层
    Brady 发表于 2015-5-26 14:24
    哎,看楼主这情况, 真是难为你了呀

    能帮帮我么。要死了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-7-13 18:31
  • 签到天数: 127 天

    连续签到: 1 天

    [LV.7]常住居民III

    19

    主题

    1229

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    6124
    最后登录
    2024-12-19
    发表于 2015-5-26 22:57:40 | 显示全部楼层
    看这样子是,楼主你是前期不努力,临时抱佛脚啊
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-12 20:38 , Processed in 0.208842 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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