打印
[NXP ARM]

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

[复制链接]
1715|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
无冕之王|  楼主 | 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

粉丝