打印

cy21434 框架处理

[复制链接]
2235|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxs|  楼主 | 2008-12-25 17:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
高手们,请帮我看看下面的程序框架结构是否正确? 
本来目前在做的项目配置如下:
CSD(3个模拟模块,3个数字模块)、ADC10(1个数字,2个模拟)、timer8(1个数字)所以time8放在基本配置里,ADC10第二重配置,CSD第三重配置。由于time8要计时,怕动态配置影响到时钟。所以时钟采用的是32K的。
该控制器为了省电,还用到了SLEEPTIME.

PCB板上有个POWER键,上电后程序就处于睡眠状态,按POWER键后开机唤醒睡眠,再按POWER键就关机,又进入睡眠扫描状态。程序框架如下:

void  main()
{   
      LoadConfig_Base();       //Load BaseConfig           
      M8C_EnableGInt;          //Main Interrupt enable             
      Timer8_EnableInt();     //Timer Interrupt enable               
      Timer8_Start();           //Timer Start     
  while(1)
    {    
      LoadConfig_CapSense_CSD();       //Load CSD Model Config 
      M8C_EnableGInt;
      CSD_Start();   
      CSD_ScanAllSensors();
      CSD_UpdateAllBaselines();
      { ....   }                       //中间为判断并设置按键标志位
      CSD_Stop();
      if(sleep_mode_bit==1)      //睡眠标志位,关机中,1S扫一次,计算按键的时间1s*3(a)

        {key_active();}             
      else
        {   
          if(time_flag_20ms==1)     //开机中,20ms扫一次,计算按键的时间20ms*150(a)
           {
            time_flag_20ms=0;    
            key_active();         
           } 
         }
     UnloadConfig_CapSense_CSD();      //Unload CSD Model Config    
     if(sleep_mode_bit==1)                //关机中运行
      {
        Timer8_DisableInt(); //Timer Interrupt disable               
         Timer8_Stop();          //Timer Stop  
         M8C_ClearWDTAndSleep;
         M8C_EnableIntMask(INT_MSK0, INT_MSK0_SLEEP);     
         M8C_Sleep;                      //睡眠时间为1S
         Timer8_EnableInt();       //Timer Interrupt enable   
         Timer8_WritePeriod(14);             
         Timer8_Start(); 
       }
     else                       //开机中运行
     {
    LoadConfig_ADC();    //Load  ADC Model Config 
         M8C_EnableGInt; 
        ADC10_Start(ADC10_FULLRANGE);      //ADC Measure Range  
        {.....  }     //AD 处理
        ADC10_Stop(); 
        UnloadConfig_ADC();
     }  
关机:睡眠1S--唤醒---扫描(加载CSD,再卸载)——再睡眠1S——    (一直循环)
开机:睡眠中断失效,20ms(timer8)扫描(加载CSD,再卸载)---加载ADC,再卸载--循环
大概的流程就是这样,不知可否?请指点
        
沙发
xxs|  楼主 | 2008-12-29 10:20 | 只看该作者

自己顶一下先。

使用特权

评论回复
板凳
xxs|  楼主 | 2009-1-2 14:40 | 只看该作者

怎么没有人回复啊?

怎么没有人回复俺的问题,请大家多多帮忙,谢谢。

使用特权

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

本版积分规则

xxs

5

主题

13

帖子

0

粉丝