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

📄 alamc.lst

📁 完成数据的采集
💻 LST
📖 第 1 页 / 共 2 页
字号:
###############################################################################
#                                                                             #
#                                                       04/Dec/2008  16:07:52 #
# IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION                    #
# Copyright 1999-2007 IAR Systems. All rights reserved.                       #
#                                                                             #
#    Cpu mode     =  thumb                                                    #
#    Endian       =  little                                                   #
#    Source file  =  E:\ELE\yten\pro\app\ALAMC.C                              #
#    Command line =  E:\ELE\yten\pro\app\ALAMC.C -D EMB_FLASH -lcN            #
#                    E:\ELE\yten\pro\Release\List\ -o                         #
#                    E:\ELE\yten\pro\Release\Obj\ --no_cse --no_unroll        #
#                    --no_inline --no_code_motion --no_tbaa --no_clustering   #
#                    --no_scheduling --debug --endian little --cpu Cortex-M3  #
#                    -e --fpu None --dlib_config "C:\Program Files\IAR        #
#                    Systems\Embedded Workbench 5.0                           #
#                    Evaluation\ARM\INC\DLib_Config_Normal.h" -I              #
#                    E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I   #
#                    "C:\Program Files\IAR Systems\Embedded Workbench 5.0     #
#                    Evaluation\ARM\INC\" -On                                 #
#    List file    =  E:\ELE\yten\pro\Release\List\ALAMC.lst                   #
#    Object file  =  E:\ELE\yten\pro\Release\Obj\ALAMC.o                      #
#                                                                             #
#                                                                             #
###############################################################################

E:\ELE\yten\pro\app\ALAMC.C
      1          #include"ytep.h"
      2          #include"ytepfunction.h"
      3          #define  yt_Alamc_file
      4          const	 Int16U ALA_TEM_TAB[]={0,4,8, 13,17,21,  26,30,34,  39,43,47, 52,56,60};
      5          #define	BELL_ON					GPIOA->ODR|=1
      6          #define	BELL_OFF				GPIOA->ODR&=0XFFFE
      7          ///////////////////////////////////////// 
      8          
      9          Int16U	ALAMCREGISTER(Int8U *HourMin,Int16U *p,TIM *pos,Int16U *point)
     10          {
     11          	Int16U  a,b,c,d;
     12          	static Int16U a_buf=0;
     13          	a=*point|*(point+1)|*(point+2)|*(point+3);
     14          	b=a^a_buf;
     15          	if(b==0)return 0;		//
     16          	a_buf=a;
     17          	for(c=0;c<12;++c)	
     18          	{
     19          		if((a&1)&&(b&1))
     20          			{
     21          				d=2*c;
     22          				pos->Tem[d+1]=pos->Tem[d];
     23          				pos->Tem[d]=*(p+ALA_TEM_TAB[c]);
     24          				pos->HOUR[d+1]=pos->HOUR[d];
     25          				pos->HOUR[d]=*(HourMin+1);
     26          				pos->MIN[d+1]=pos->MIN[d];
     27          				pos->MIN[d]=*HourMin;
     28          				
     29          				pos->Flag[d+1]=pos->Flag[d];
     30          				pos->Flag[d]=C_TEST_ALA_HIS;
     31          			}
     32          			a>>=1,b>>=1;
     33          	}	
     34          	return 0;
     35          }
     36          
     37          
     38          //////////////////////////////////////////
     39          
     40          Int16U    Fast_TEM_NOTS(Int16U n,Int16U m,Int16U *p,SensorRF *pos)
     41          {
     42          	static  Int16U FTimer,sw;
     43            static  Int8U	 FNOT[12][10];
     44            static  Boolean B_start=0;
     45            Int16U  a,b,c; 
     46            if(B_start==0)
     47            {
     48              B_start=1;
     49              for(a=0;a<12;++a)
     50              FNOT[a][0]=FNOT[a][1]=FNOT[a][2]=FNOT[a][3]=FNOT[a][4]=FNOT[a][5]=FNOT[a][6]=FNOT[a][7]=FNOT[a][8]=FNOT[a][9]=0xff;
     51            }
     52          	m=m*6;
     53          	if(++FTimer>=m)FTimer=0,sw=12;//温升过快的时间单位值/10
     54          	if(sw>12)sw=12;
     55                  if(sw!=0)
     56                  {
     57                    m=sw-1; 
     58                    for(a=0;a<9;++a)
     59                    FNOT[m][9-a]=FNOT[m][8-a]; 
     60          	 }
     61                  switch (sw)	
     62                  {
     63                 
     64                   
     65                  case 12:   
     66                    FNOT[m][0]=pos->ATem; 
     67                   break; 
     68                   case 11:   
     69                    FNOT[m][0]=pos->BTem; 
     70                   break;   
     71                   case 10:   
     72                    FNOT[m][0]=pos->CTem; 
     73                   break;  
     74                    case 9: 
     75                    ++pos;
     76                    FNOT[m][0]=pos->ATem; 
     77                   break; 
     78                    case 8: 
     79                    ++pos;
     80                    FNOT[m][0]=pos->BTem; 
     81                   break; 
     82                    case 7: 
     83                    ++pos;
     84                    FNOT[m][0]=pos->CTem; 
     85                   break; 
     86                    case 6: 
     87                    pos+=2;
     88                    FNOT[m][0]=pos->ATem; 
     89                   break; 
     90                    case 5: 
     91                    pos+=2;
     92                    FNOT[m][0]=pos->BTem; 
     93                   break; 
     94                    case 4: 
     95                    pos+=2;
     96                    FNOT[m][0]=pos->CTem; 
     97                   break; 
     98                    case 3: 
     99                    pos+=3;
    100                    FNOT[m][0]=pos->ATem; 
    101                   break; 
    102                    case 2: 
    103                    pos+=3;
    104                    FNOT[m][0]=pos->BTem; 
    105                   break; 
    106                    case 1: 
    107                    pos+=3;
    108                    FNOT[m][0]=pos->CTem; 
    109                   break; 
    110                  case 0:
    111                   return 0;
    112                   return 0;
    113                   }    
    114                    b=c=0XFF;
    115                    for(a=0;a<10;++a)
    116                    {
    117                      if(b==0xff)b=FNOT[m][a];
    118                      if(c==0xff)c=FNOT[m][a];
    119                      if(b<=FNOT[m][a]&&FNOT[m][a]<0xfe)b=FNOT[m][a];
    120                      if(c>=FNOT[m][a]&&FNOT[m][a]<0xfe)c=FNOT[m][a];
    121                    }
    122                     a=12-sw;
    123                     a=1<<a;
    124                     if(b!=0xff&&c!=0xff)
    125                     {
    126                       if(b>(c+n))*p|=a;
    127                      else       *p&=~a;
    128                     }
    129                     sw--;
    130                     return 0;
    131          
    132          	  
    133          		
    134          }
    135          /////////////////////////////////////////
    136          void	AlamcFault(SensorRF *A,_yt *B,Int8U *HOUR_MIN)//5s
    137          {
    138            static  Int8U ala[4][16];
    139            SensorRF *A_BUF;   
    140          	Int16U i,m,Q,V,S;
    141          	
    142            A_BUF=A;
    143          	for(i=0;i<C_RF_MAX_COUNT;++i)
    144          	{		 
    145          		if(i==0||i==3||i==6||i==9)Q=A->ATem+C_TEMP_JUST,V=A->AVol;
    146          		if(i==1||i==4||i==7||i==10)Q=A->BTem+C_TEMP_JUST,V=A->BVol;
    147          		if(i==2||i==5||i==8||i==11)Q=A->CTem+C_TEMP_JUST,V=A->CVol,A++;	
    148          		if(V>=21)S=28;
    149          		else		 S=10;	
    150          		if(Q>=(B->_TemFault+C_TEMP_JUST)&&Q<0xfe)
    151                          {
    152                            if(ala[0][i]<C_RF_MAX_COUNT)ala[0][i]++;
    153                          }
    154          		else			
    155          		if(ala[0][i]>0)
    156                          {
    157                            if(ala[0][i]>10)ala[0][i]=10;
    158                            --ala[0][i];//事件故障
    159                          }
    160          		if(Q>=(B->_TemOver+C_TEMP_JUST)&&Q<0xfe)
    161                          {
    162                            if(ala[1][i]<C_RF_MAX_COUNT)ala[1][i]++;
    163                          }
    164          		else			
    165          		if(ala[1][i]>0)//预防故障
    166          		{
    167                            if(ala[1][i]>10)ala[1][i]=10;
    168                            --ala[1][i];
    169                          }
    170          		 
    171          		if(Q>=(B->_TemRoom+A_Tembuf)&&Q<0xfe)
    172                          {
    173                            if(ala[2][i]<C_RF_MAX_COUNT)ala[2][i]++;

⌨️ 快捷键说明

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