找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 949|回复: 0
打印 上一主题 下一主题
收起左侧

能不能帮忙看一下这个程序有什么问题

[复制链接]
跳转到指定楼层
楼主
ID:314444 发表于 2018-4-23 14:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在学习430AD采样的部分,在提供的学习代码上修改的,想要根据AD采样得到的电压值不同执行不同的操作。
    while(1)
    {
        LPM1;
        average = average * 3;
        if(average>0x0003)
        {
        Trans_val(average,buffer);
        buffer[3] = buffer[2];
        buffer[2] = buffer[1];
        buffer[1] = 0x2e - 0x30;
        for(i = 0; i < 4; i++)
            buffer[i] += 0x30;
        PutString0("The analog value is: ");
        PutString(buffer);
        }

        else
        {
        Hex2Dec(average,buffer);
        for(i = 0; i < 4; i++)
            buffer[i] += 0x30;
        PutString0("The digital value is: ");
        PutString(buffer);
        }
    }


/*******************************************
函数名称:ADC12ISR
功    能:ADC中断服务函数,在这里用多次平均的
          计算P6.0口的模拟电压数值
参    数:无      
返回值  :无
********************************************/
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
    static uchar index = 0;

    results[index++] = ADC12MEM0;               // Move results
    if(index == Num_of_Results)
    {
        uchar i;

        average = 0;
        for(i = 0; i < Num_of_Results; i++)
        {
            average += results[i];
        }
        average >>= 5;                            //除以32

        index = 0;
        tcnt++;
        if(tcnt == 250)      //主要是降低串口发送速度
        {
            LPM1_EXIT;
            tcnt = 0;
        }
    }
}



前面就是一些初始化的东西,现在的问题是,不管采样得到的电压值是多少,都只会执行if语句的内容,不会执行else部分。
有哪些地方没说清楚的可以再补充,希望有人帮帮我呀,不胜感激!!!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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