查看: 4472|回复: 18

[求助] MKE02使用问题

[复制链接]

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
发表于 2015-3-19 16:55:38 | 显示全部楼层 |阅读模式
MKE02程序编写AD采样部分有个变量定义为16位无符号引起程序无法运行进入到deault中断,将该变量更改为32位无符号变量程序就能正常运行,其它变量定义为16位无符号变量不会引起程序异常,不知是什么问题引起的?
我知道答案 目前已有18人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-3-19 17:25:14 | 显示全部楼层
楼主你好,请贴出问题代码,我们看看。
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
 楼主| 发表于 2015-3-20 08:29:22 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-3-19 17:25
楼主你好,请贴出问题代码,我们看看。

unsigned  short int Temp_adc;
unsigned short  int Voltage_adc;
unsigned  short int Current_adc;
unsigned   int Leage_adc;             //更改为unsigned short int 程序无法运行 不知问题所在

unsigned char Adc_Count;

unsigned  short int Temp_adc_vlaue;
unsigned short  int Voltage_adc_vlaue;
unsigned  short int Current_adc_vlaue;
unsigned   int Leage_adc_vlaue;

unsigned  short int Temp_Value;
unsigned  short int Voltage_Value;
unsigned  short int Current_Value;
unsigned  short int Leage_Value;

unsigned short int PowerVlaue;
unsigned short int PowerDegree;
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-3-20 09:04:41 | 显示全部楼层
    楼主只贴部分代码不好分析,把使用到该变量的地方都发一下。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    77

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    227
    最后登录
    2015-4-27
     楼主| 发表于 2015-3-20 09:05:50 | 显示全部楼层
    安 发表于 2015-3-20 09:04
    楼主只贴部分代码不好分析,把使用到该变量的地方都发一下。

    void AdcScan(void)
    {          
              unsigned char i;
              if (Adc_Count < 200)
              {

                        Temp_adc+=ADC_PollRead(ADC,ADC_CHANNEL_AD2);
                        Voltage_adc+=ADC_PollRead(ADC,ADC_CHANNEL_AD10);
                        Current_adc+=ADC_PollRead(ADC,ADC_CHANNEL_AD1);
                        Leage_adc+=ADC_PollRead(ADC,ADC_CHANNEL_AD11);
                              Adc_Count++;
                    }
        else
                    {        
                               Temp_adc_vlaue = Temp_adc/200;
                               Voltage_adc_vlaue = Voltage_adc/200;
                               Current_adc_vlaue = Current_adc/200;
                               Leage_adc_vlaue = Leage_adc/200;
                           
                               if (Temp_adc_vlaue < 199)
                               {
                                   Temp_adc_vlaue = 199;       
                               }
                               else if (Temp_adc_vlaue > 3888)
                               {
                                   Temp_adc_vlaue = 3888;       
                               }
                               for (i = 0;i < 166; i++)
                               {
                                   if (temp_10k >= Temp_adc_vlaue)
                                   {
                                       Temp_Value = (unsigned short int)(i + 60);
                                       break;            
                                   }       
                               }
                                     Voltage_Value = (91*Voltage_adc_vlaue + 250)/100;                                  //5*n*220*1000*10/4096/10/330                      
             Current_Value = (41*Current_adc_vlaue + 150)/100;                                //5*n*4000*10/4096/3/51     实际值的10倍
             Leage_Value = (7*Leage_adc_vlaue + 156)/50;//5*Leage_adc_vlaue/33;                            //5*n*1000*10*1000/4096/101/1000  单位为mA
                              
                               Temp_adc = 0;
                               Voltage_adc = 0;
                               Current_adc = 0;
                               Leage_adc = 0;
                               Adc_Count = 0;
                                                                                   
                    }                       
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-3-20 09:45:09 | 显示全部楼层
    看使用并没有什么问题,楼主仿真的话,会发生什么情况?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    77

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    227
    最后登录
    2015-4-27
     楼主| 发表于 2015-3-20 09:48:20 | 显示全部楼层
    安 发表于 2015-3-20 09:45
    看使用并没有什么问题,楼主仿真的话,会发生什么情况?

    仿真的时候进入到void default_isr(void)
    {
       #define VECTORNUM                     (*(volatile uint32_t*)(0xE000ED04))

      //printf("\n****default_isr entered on vector %d*****\r\n\n",VECTORNUM);
       return;
    }这个函数中
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    77

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    227
    最后登录
    2015-4-27
     楼主| 发表于 2015-3-20 10:00:03 | 显示全部楼层
    安 发表于 2015-3-20 09:45
    看使用并没有什么问题,楼主仿真的话,会发生什么情况?

    请问您是不是飞思卡尔的技术支持啊?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-3-20 10:18:18 | 显示全部楼层
    我不是飞思卡尔的技术支持,VECTORNUM这个值是多少?看看是哪个中断引起的。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    77

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    227
    最后登录
    2015-4-27
     楼主| 发表于 2015-3-20 10:33:58 | 显示全部楼层
    安 发表于 2015-3-20 10:18
    我不是飞思卡尔的技术支持,VECTORNUM这个值是多少?看看是哪个中断引起的。 ...

    #define VECTORNUM                     (*(volatile uint32_t*)(0xE000ED04))
    不是这个值吗?
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-23 04:58 , Processed in 0.108617 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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