[NXP ARM] 好象arm7的运算有问题,请各位大虾帮看看

[复制链接]
 楼主| 无冕之王 发表于 2010-5-17 21:20 | 显示全部楼层 |阅读模式
void Out_5618(uint16 value)
{
         uint8 temp;
    uint8 i;
    i = 1;   //watch 看到 i 的值是 0x000000cd
    i++;     //watch 看到 i 的值是 0x000000cd
    i = i + 3;    //watch 看到 i 的值是 0x000000cd
//    i = 1 << 5;   //watch 看到 i 的值是 0x000000cd
//    IO0SET = CS_5618;
    for(i = 0; i < 16; i++)   //此时i正常,但循环里的语句没执行,只是i在增加
    {
//        data = value & 0x8000;
//        value = value << 1;
temp = 5;
        temp = temp << 2;
//        IO0SET = CLK_5618;
//        IO0CLR = CLK_5618;
    }
//    IO0CLR =  CS_5618;
}

void DA(fp32 value, uint8 volt, uint8 flag)
{
    uint16 value_I16;
    fp32 value_f32;
    value_I16 = 1;
    if(flag == ARM_DAC)
    {
        if(volt == 1)            value_f32 = 1024 / volt_range;
        else                    value_f32 = 1024 / current_range;
        value_I16 = (uint16)(value * value_f32);
        value_I16 = value_I16 << 6;
        DACR = value_I16;
    }
    else if(flag == TLC_5618)
    {
        if(volt == 1)
        {
                    value_f32 = 4096 / volt_range;
        }
        else                    value_f32 = 4096 / current_range;
        value_I16 = (uint16)(value * value_f32);
        Out_5618(value_I16);
    }
}
我在task1中调用DA函数,在DA函数中运算都是正常的,但是进入了Out_5618之后运算好象就出错了。用的是LPC2132,code 是 20K, data 是9K。请大家帮我分析分析是什么原因啊,谢谢!
火箭球迷 发表于 2010-5-18 08:53 | 显示全部楼层
有些代码被优化掉了
火箭球迷 发表于 2010-5-18 08:53 | 显示全部楼层
你从哪儿知道常量CLK_5618的值是0xE59FF018
zwll 发表于 2010-5-18 22:25 | 显示全部楼层
你从哪儿知道常量CLK_5618的值是0xE59FF018
火箭球迷 发表于 2010-5-18 08:53
datasheet吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:喜欢远行

160

主题

3331

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:喜欢远行

160

主题

3331

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部