第一个单片机程序,有点问题,请移步看看

[复制链接]
2864|10
 楼主| zifeiyuuuu 发表于 2009-8-3 14:56 | 显示全部楼层 |阅读模式
单片机INT0循环计数外部的频率f1,f2,......fn(比如是85HZ), 但是在某个时刻fn会下降到65HZ以下,现在希望能够把下降前的f(n_1)存在另外一个变量中,同时保证,f(n_1)不会被fn覆盖掉, 请问要如何处理啊?  这一块实在不是很明白??

谢谢了。。。。。。。
子程序如下:
void Int_1() interrupt 2
    {
    EA=0;             //关中断,保护数据
    EA=0;
    TR1=0;
    period1=2*(TL1+Th1*256);
    fre1=1000000/period1;
    pre_fre1=fre1;              
    EA=1;TR0=1                //开中断   
   }

保存fre1,当检测到fre1下降到65HZ以下时,保证还能够知道下降之前的频率是多少?
 楼主| zifeiyuuuu 发表于 2009-8-3 15:08 | 显示全部楼层
最好是能用C给点代码,  谢谢了  ^_^.
 楼主| zifeiyuuuu 发表于 2009-8-3 15:24 | 显示全部楼层
本帖最后由 zifeiyuuuu 于 2009-8-3 17:13 编辑

void  Int_0() interrput 0
      {
           EA=0;
           EA=0;
           TR0=0;                                             //关中断保护计数值
           period0=2*(TL0+TH0*256);
           fre0=1000000/period0;
       if(fre0 >65)
              {
                   EA=1;TR0=1;
                   pre_fre0=fre0;
                   }
           else
               {rflag=1;            
                    }
这是我刚想的, 如果频率大于65HZ,则开中断,重新采样,否则把标志rflag置1, 跳出while(rflag==0);的死循环,再由 if(fre0 >65)
              {
                   EA=1;TR0=1;
                   pre_fre0=fre0;
                   }
中的pre_fre的值去做动作, 不知道这样可不可以达到我的目的(保存频率开始下降前的那个正常工作频率),希望大家给点建议。。。。。。
 楼主| zifeiyuuuu 发表于 2009-8-4 08:31 | 显示全部楼层
再顶顶。。。。。。。。。
928315 发表于 2009-8-4 23:55 | 显示全部楼层
看了半天,没有弄明白要想什么,不过可以提醒你,中断里面要改变变量的话,变量要注意vllatile  的声明方式来定义变量。
 楼主| zifeiyuuuu 发表于 2009-8-6 10:22 | 显示全部楼层
主函数中有 while(rflag==0)死循环,等待外部中断进入,在死循环中持续监测频率,当检测到频率大于65HZ(正常85,110,130,或者180HZ),则继续开中断,而出死循环的条件是频率下降到65HZ以下,由rflag标志置1出死循环,同时能够知道出中断前的正常频率(我是保存在pre_fre0中),

不知道上面的终端程序能不过能够达到我的目的,
木易洋 发表于 2009-8-6 10:30 | 显示全部楼层
你那关中断开中断的那几句没写错吗?   保存fre0>65之前的频率能不能用  if(fre0>65)  {保存}
 楼主| zifeiyuuuu 发表于 2009-8-6 17:28 | 显示全部楼层
回楼上的, 应该没写错吧。。。   保存fre0>65之前的频率能不能用  if(fre0>65)  {保存}: 我是把频率保存在pre_fre0中啊,,,,

莫非我表达的还不够清楚,,,,,?

汗。。。。。。
戒指320 发表于 2009-8-6 20:33 | 显示全部楼层
我是路过!1
 楼主| zifeiyuuuu 发表于 2009-8-8 12:07 | 显示全部楼层
DDDDDDDD
 楼主| zifeiyuuuu 发表于 2009-8-10 09:27 | 显示全部楼层
dddddddddddddddddddd
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

96

帖子

0

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