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

📄 main.lst

📁 本程序是针对Infineon公司的XC167CI处理器而编写的CAN网络程序。CAN(控制局域网)协议是一种广泛的应用于汽车电子的网络协议。本程序建立了三个CAN节点
💻 LST
📖 第 1 页 / 共 2 页
字号:
  195  1          ///  EBC is disabled
  196  1        //// -----------------------------------------------------------------------
  197  1        //// End of Important Settings for the Start-Up File
  198  1        //// -----------------------------------------------------------------------
  199  1      
  200  1      
  201  1        //   -----------------------------------------------------------------------
  202  1        //   Initialization of the Peripherals:
  203  1        //   -----------------------------------------------------------------------
  204  1      
  205  1        //   initializes the TwinCAN Module (CAN)
  206  1        CAN_vInit();
  207  1      
  208  1        // USER CODE BEGIN (Init,3)
  209  1      
  210  1        // USER CODE END
  211  1      
  212  1        //   globally enable interrupts
  213  1        PSW_IEN        =  1;          
  214  1      
  215  1      } //  End of function MAIN_vInit
  216         
  217         
  218         //****************************************************************************
  219         // @Function      void MAIN_vUnlockProtecReg(void) 
  220         //
  221         //----------------------------------------------------------------------------
  222         // @Description   This function makes it possible to write one protected 
  223         //                register. After calling of this function and write on the 
  224         //                protected register is the security level set to low 
  225         //                protected mode.
  226         //
  227         //----------------------------------------------------------------------------
  228         // @Returnvalue   None
  229         //
  230         //----------------------------------------------------------------------------
  231         // @Parameters    None
  232         //
  233         //----------------------------------------------------------------------------
  234         // @Date          2006-12-10
  235         //
  236         //****************************************************************************
  237         
  238         // USER CODE BEGIN (UnlockProtecReg,1)
  239         
  240         // USER CODE END
  241         
C166 COMPILER V6.04, MAIN                                                                  12/10/2006 17:56:47 PAGE 5   

  242         void MAIN_vUnlockProtecReg(void)
  243         {
  244  1        ubyte ubPASSWORD;
  245  1      
  246  1        if((SCUSLS & 0x1800) == 0x0800)      // if low protected mode
  247  1        {
  248  2      
  249  2          ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 249 OF MAIN.C: '=': value truncated
  250  2          ubPASSWORD = ~ubPASSWORD;
  251  2          SCUSLC = 0x8E00 | ubPASSWORD;      // command 4
  252  2      
  253  2        }  // end if low protected mode
  254  1      
  255  1        if((SCUSLS & 0x1800) == 0x1800)      // if write protected mode
  256  1        {
  257  2          SCUSLC = 0xAAAA;                   // command 0
  258  2          SCUSLC = 0x5554;                   // command 1
  259  2      
  260  2          ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 260 OF MAIN.C: '=': value truncated
  261  2          ubPASSWORD = ~ubPASSWORD;
  262  2      
  263  2          SCUSLC = 0x9600 | ubPASSWORD;      // command 2
  264  2          SCUSLC = 0x0800;                   // command 3; new PASSWOR is 0x00
  265  2      
  266  2          ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 266 OF MAIN.C: '=': value truncated
  267  2          ubPASSWORD = ~ubPASSWORD;
  268  2          SCUSLC = 0x8E00 | ubPASSWORD;      // command 4
  269  2      
  270  2        }  // end if write protected mode
  271  1      
  272  1      } //  End of function MAIN_vUnlockProtecReg
  273         
  274         
  275         //****************************************************************************
  276         // @Function      void main(void) 
  277         //
  278         //----------------------------------------------------------------------------
  279         // @Description   This is the main function.
  280         //
  281         //----------------------------------------------------------------------------
  282         // @Returnvalue   None
  283         //
  284         //----------------------------------------------------------------------------
  285         // @Parameters    None
  286         //
  287         //----------------------------------------------------------------------------
  288         // @Date          2006-12-10
  289         //
  290         //****************************************************************************
  291         
  292         // USER CODE BEGIN (Main,1)
  293         int i,j;
  294         void delayms(int k)
  295         {
  296  1              int i,j;
  297  1               for(i=0;i<100;i++)
  298  1               for(j=0;j<1000*k;j++)
  299  1               {
  300  2               }
C166 COMPILER V6.04, MAIN                                                                  12/10/2006 17:56:47 PAGE 6   

  301  1      }
  302         ubyte ch1[6]="hello";
  303         ubyte ch2[6]="world";
  304         
  305         // USER CODE END
  306         
  307         void main(void)
  308         {
  309  1        // USER CODE BEGIN (Main,2)
  310  1      
  311  1        // USER CODE END
  312  1      
  313  1        MAIN_vInit();
  314  1      
  315  1        // USER CODE BEGIN (Main,4)
  316  1        DP1L=0xff;
  317  1        P1L=0xff;
  318  1      
  319  1        while(1)
  320  1        {
  321  2              if(CAN_ubRequestMsgObj(1))//检验所选择的报文是否可以访问,即检验TXRQ 
  322  2              {
  323  3                      CAN_vLoadData(1,ch1);  //将要发送的数据放入报文消息的数据区中
  324  3                 /*   if(CAN_HWOBJ[0].ubData[0]=='h') //这是验证已经加载的数据存在在报文数据区的哪个地方
  325  3                      {
  326  3                         for(k=0;k<40000;k++)
  327  3                         P1L=0x00;                                     
  328  3                      }  */
  329  3                      CAN_vTransmit(1);// set TXRQ, reset CPUUPD,然后发送数据 
  330  3                /*    if(CAN_ubNewData(0)) //这是一个验证是否发出数据的函数
  331  3                      {
  332  3                               if(CAN_HWOBJ[0].ubData[1]=='e')
  333  3                          {
  334  3                         for(k=0;k<40000;k++)
  335  3                         P1L=0x00;
  336  3                      } 
  337  3                      }  */
  338  3              }
  339  2              for(i=0;i<10000;i++)
  340  2               for(j=0;j<500;j++);
  341  2              if(CAN_ubRequestMsgObj(2))//检验所选择的报文是否可以访问,即检验TXRQ 
  342  2              {
  343  3                      CAN_vLoadData(2,ch2);  //将要发送的数据放入报文消息的数据区中
  344  3                 /*   if(CAN_HWOBJ[0].ubData[0]=='h') //这是验证已经加载的数据存在在报文数据区的哪个地方
  345  3                      {
  346  3                         for(k=0;k<40000;k++)
  347  3                         P1L=0x00;                                     
  348  3                      }  */
  349  3                      CAN_vTransmit(2);// set TXRQ, reset CPUUPD,然后发送数据 
  350  3                /*    if(CAN_ubNewData(0)) //这是一个验证是否发出数据的函数
  351  3                      {
  352  3                               if(CAN_HWOBJ[0].ubData[1]=='e')
  353  3                          {
  354  3                         for(k=0;k<40000;k++)
  355  3                         P1L=0x00;
  356  3                      } 
  357  3                      }  */
  358  3              }
  359  2              for(i=0;i<10000;i++)
  360  2          for(j=0;j<500;j++);
  361  2        }
  362  1        // USER CODE END
C166 COMPILER V6.04, MAIN                                                                  12/10/2006 17:56:47 PAGE 7   

  363  1      
  364  1      } //  End of function main
  365         
  366         
  367         
  368         // USER CODE BEGIN (MAIN_General,10)
  369         
  370         // USER CODE END
  371         


MODULE INFORMATION:   INITIALIZED  UNINITIALIZED
  CODE SIZE        =         298     --------
  NEAR-CONST SIZE  =    --------     --------
  FAR-CONST SIZE   =    --------     --------
  HUGE-CONST SIZE  =    --------     --------
  XHUGE-CONST SIZE =    --------     --------
  NEAR-DATA SIZE   =          16     --------
  FAR-DATA SIZE    =    --------     --------
  XHUGE-DATA SIZE  =    --------     --------
  IDATA-DATA SIZE  =    --------     --------
  SDATA-DATA SIZE  =    --------     --------
  BDATA-DATA SIZE  =    --------     --------
  HUGE-DATA SIZE   =    --------     --------
  BIT SIZE         =    --------     --------
  INIT'L SIZE      =          20     --------
END OF MODULE INFORMATION.


C166 COMPILATION COMPLETE.  3 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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