⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pulse.c

📁 CHIPCON公司射频芯片CC1100驱动程序
💻 C
字号:

#pragma vector=PORT1_VECTOR
__interrupt void port1_ISR (void)
{   
   unsigned char i;
   
   if(wakeup_status==wake_no){
     
     wakeup_source=pulse_wakeup;
     count_main=0;
     count_main_max=20;
     
   }
   if(P1IN&PULSE_A) {
 
   return;
  
   }
     
     
     
   for(i=0;i++;i<400){
     
       if(P1IN&PULSE_A){
		 
         return;
       }	 

   }
   if(P1IN&PULSE_B){
     
     count_vlave=0;
     timer_status |= valve_delay;
     timer_status |= voice_delay;
     count_voice=0;
     if((count_main_max-count_main)<200){
       count_main_max=220;
       count_main=0;
     }
     return;
   }	
   
   if(pulse_status==0){
     
     return;
   }
   
   pulse_status=0;
   
   #if 1
   addbit=0x00;
   water_data[water_consump+1]=bcd_add(water_data[water_consump+1],0x10);
   water_data[water_consump+2]=bcd_add(water_data[water_consump+2],0x00);
   water_data[water_consump+3]=bcd_add(water_data[water_consump+3],0x00);
   water_data[water_consump+4]=bcd_add(water_data[water_consump+4],0x00);
   #endif
   IntFlag[0] |= IntFlag_pulseA;
   

}



#pragma vector=PORT1_VECTOR
__interrupt void port1_ISR (void)
{   
   unsigned char i;
   
   if(wakeup_status==wake_no){
     
     wakeup_source=pulse_wakeup;
     count_main=0;
     count_main_max=20;
     
   }
   if(P1IN&PULSE_B) {
 
   return;
  
   }
     
     
     
   for(i=0;i++;i<400){
     
       if(P1IN&PULSE_B){
		 
         return;
       }	 

   }
   if(P1IN&PULSE_A){
     
     count_vlave=0;
     timer_status |= valve_delay;
     timer_status |= voice_delay;
     count_voice=0;
     if((count_main_max-count_main)<200){
       count_main_max=220;
       count_main=0;
     }
     return;
   }	
   
   if(pulse_status==1){
     
     return;
   }
   
   pulse_status=1;
   IntFlag[1] |= IntFlag_pulseB;
   

}


//BCD加一计算
unsigned char bcd_add(unsigned char source_1,unsigned char source_2)
{
   unsigned char  add_reg[3];
   add_reg[0]=(source_1&0x0f)+addbit+source_2&0x0f;
   
   if (add_reg[0]>=0x0a){
    
       add_reg[0]-=0x0a;
       add_reg[2]=0x10;
   
   }
   else{
       
       add_reg[2]=0x00;
   }

   add_reg[1]= (source_1&0xf0)+add_reg[2]+source_2&0xf0;
   
   if (add_reg[1]>0x90){
     
      add_reg[1]=0x00;
      addbit=0x01;
   }
   else{
     
      addbit=0x00;
   }
   
   add_reg[2]=add_reg[0]|add_reg[1];
   return(add_reg[2]);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -