打印

求助

[复制链接]
879|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lovezichao|  楼主 | 2013-7-4 15:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AD, dc, ADC, se
用pic12f675,发现程序进入到else if(result1<=982)执行完后,需要很长时间才能再进来。
求大神看看程序哪里有问题。。。。
void main()
{
        set_tris_a (0x1d);                              //01 1101  A1 A5输出口
        setup_wdt(WDT_72MS);                     
        //ADC初始化
        setup_adc_ports(sAN0|sAN2|sAN3|VSS_VDD);
        setup_adc(ADC_CLOCK_DIV_64);     
        setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2|RTCC_8_BIT);   
        setup_timer_1 (T1_INTERNAL|T1_DIV_BY_2);
        //enable_interrupts(INT_TIMER1);            //启动定时器1
        enable_interrupts(INT_RTCC);
        enable_interrupts(GLOBAL);
        while(1)
        {
                //SW1_H();
                //delay_ms(10);
                SW1_L();
                //OUT_H();
                SET_ADC_CHANNEL(0);
                //delay_ms(500);
                //result1=(READ_ADC(ADC_START_AND_READ)+READ_ADC(ADC_START_AND_READ)+READ_ADC(ADC_START_AND_READ)+READ_ADC(ADC_START_AND_READ))>>2;
                //delay_ms(50);
                result1=READ_ADC(ADC_START_AND_READ);
                if(result1>982)//BT 14.4V
                //if(result1<982)
                {
                        SW1_L();
                        result1=(READ_ADC(ADC_START_AND_READ)+READ_ADC(ADC_START_AND_READ)+READ_ADC(ADC_START_AND_READ)+READ_ADC(ADC_START_AND_READ))>>2;
                        if(result1>982)
                        {
                                SW1_L();
                        }
                }
                else if(result1<=982)
                {
                        enable_interrupts(INT_TIMER1);
                        while(time2<jishu)
                        {
                                SW1_H();
                                //OUT_L();
                                //delay_ms(100);
                                //enable_interrupts(INT_TIMER1);
                        }
                        time2=0;
                }                       
        }
}
沙发
yewuyi| | 2013-7-5 14:02 | 只看该作者
你的代码写的很乱。

看代码的情况,应该是有临界代码造成的。

使用特权

评论回复
板凳
xyz549040622| | 2013-7-5 14:18 | 只看该作者
yewuyi 发表于 2013-7-5 14:02
你的代码写的很乱。

看代码的情况,应该是有临界代码造成的。

叶工说的很对,我前几天碰到这种情况,比如你定义的115位的数组,我程序中寻找116位,就会造成时间很长的现象,lz把这个极限值改为中间值,看会不会出现这种情况

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lovezichao + 1 赞一个!
地板
lovezichao|  楼主 | 2013-7-5 15:00 | 只看该作者
xyz549040622 发表于 2013-7-5 14:18
叶工说的很对,我前几天碰到这种情况,比如你定义的115位的数组,我程序中寻找116位,就会造成时间很长的 ...

Thank you

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

225

帖子

4

粉丝