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

📄 psoc.lst

📁 psoc_usb的代码,用来小卡测试的.没事下下来
💻 LST
📖 第 1 页 / 共 2 页
字号:
 218   1              SET_DOUT;
 219   1              EZUSB_Delay(1);
 220   1      }
 221          
 222          
 223          //*****************************************************************************
 224          //  function name:     GetCheckSum() 
 225          //  description:       Get psoc checksum 
 226          //  return:            0 success -1 fail
 227          //  note :
 228          //*****************************************************************************
 229          int GetCheckSum(void)
 230          {
 231   1              BYTE psocId = 0;
 232   1              int checksum = 0;
 233   1              xdata char param[4];
 234   1              memset (param, '\0', sizeof (param));
 235   1              
 236   1              //input output init for psoc checksum
 237   1              SETOUT_PD(0);//RESET
 238   1              SETOUT_PD(1);//CLK
 239   1              SETOUT_PD(2);//DATA
 240   1              
 241   1              //clean the disturb caused by sgpio
 242   1              PSOC_CLK(LOW);
 243   1              PSOC_DOUT(LOW);
 244   1              PSOC_RESET(LOW);
 245   1                      
 246   1              //3.3v pull, down for psoc, up for sgpio
 247   1              _3V_PULL_DOWN_ ;
 248   1              EZUSB_Delay(3);
 249   1              
 250   1              EA = 0;//disable interrupt
 251   1              
 252   1              //psoc init for psoc programme
 253   1              PSOC_RESET(HIGH);
 254   1              EZUSB_Delay(1);
 255   1              PSOC_RESET(LOW);
 256   1              
 257   1              WriteVector(vector_init_1);
 258   1              WaitSingle();
 259   1              EA = 1;//enable interrupt
 260   1              WriteVector(vector_init_2);
 261   1              WaitSingle();
 262   1              WriteVector(vector_init_3_3v);
 263   1              EZUSB_Delay(1);
 264   1              
 265   1              //for get psoc ID       
 266   1              WriteVector(vector_ID_setup);
 267   1              WaitSingle();
 268   1              WriteVector("10111111000");
 269   1              PSOC_CLK(HIGH);
 270   1              PSOC_CLK(LOW);
C51 COMPILER V8.06   PSOC                                                                  01/31/2008 22:24:27 PAGE 6   

 271   1              ReadByte();
 272   1              PSOC_CLK(HIGH);
 273   1              PSOC_CLK(LOW);
 274   1              WriteVector("110111111001");
 275   1              PSOC_CLK(HIGH);
 276   1              PSOC_CLK(LOW);
 277   1              psocId = ReadByte();
 278   1              PSOC_CLK(HIGH);
 279   1              PSOC_CLK(LOW);
 280   1              WriteVector("1");
 281   1              
 282   1              switch(psocId)
 283   1              {
 284   2                      case PSoC_CY8C27143_ID:
 285   2                      case PSoC_CY8C27243_ID:
 286   2                      case PSoC_CY8C27443_ID:
 287   2                      case PSoC_CY8C27543_ID:
 288   2                      case PSoC_CY8C27643_ID:
 289   2                              WriteVector(vector_checksum_setup_CY8C27xxx);
 290   2                              break;
 291   2      /*      
 292   2                      case PSoC_CY8C21123_ID:
 293   2                      case PSoC_CY8C21223_ID:
 294   2                      case PSoC_CY8C21323_ID:
 295   2                      case PSoC_CY8C24123_ID:
 296   2                      case PSoC_CY8C24223_ID:
 297   2                      case PSoC_CY8C24423_ID:
 298   2                              WriteVector(vector_checksum_setup_CY8C21x23_24xxx);
 299   2                              break;
 300   2                      case PSoC_CY8C21234_ID:
 301   2                      case PSoC_CY8C21334_ID:
 302   2                      case PSoC_CY8C21434_ID:
 303   2                      case PSoC_CY8C21534_ID:
 304   2                      case PSoC_CY8C21634_ID:
 305   2                              WriteVector(vector_checksum_setup_CY8C21x34);
 306   2                              break;
 307   2                      case PSoC_CY8C22113_ID:
 308   2                      case PSoC_CY8C22213_ID:
 309   2                              WriteVector(vector_checksum_setup_CY8C22xxx);
 310   2                              break;
 311   2      */
 312   2                      default:
 313   2                              break;
 314   2              }
 315   1              WaitSingle();
 316   1              WriteVector("10111111001");
 317   1              PSOC_CLK(HIGH);
 318   1              PSOC_CLK(LOW);
 319   1              checksum |= (ReadByte()<<8);
 320   1          
 321   1              PSOC_CLK(HIGH);
 322   1              PSOC_CLK(LOW);
 323   1              WriteVector("110111111000");
 324   1              PSOC_CLK(HIGH);
 325   1              PSOC_CLK(LOW);
 326   1              checksum |= ReadByte();
 327   1              
 328   1        sprintf(param," %04x",checksum);
 329   1        add_to_retlist(param);
 330   1          
 331   1              PSOC_CLK(HIGH);
 332   1              PSOC_CLK(LOW);
C51 COMPILER V8.06   PSOC                                                                  01/31/2008 22:24:27 PAGE 7   

 333   1              WriteVector("1");
 334   1      
 335   1              return RET_DONE;
 336   1      }
 337          
 338          
 339          
 340          
 341          
 342          //=============================================================================-
 343          //test sgpio
 344          //=============================================================================-
 345          int SgpioTest()
 346          {
 347   1          
 348   1          int i = 0;
 349   1          int val = 0;
 350   1          int result = 0;
 351   1          BYTE tmp = 0;
 352   1          BYTE param[16];
 353   1          
 354   1      
 355   1          memset (param, '\0', sizeof (param));
 356   1          if (get_current_cmd(param)==NULL)
 357   1          {
 358   2                  return RET_ERROR;
 359   2          }
 360   1          
 361   1          val = strtol(param,NULL,16);
 362   1          if (val > 0xfff || val <0 )
 363   1              {
 364   2                  return RET_ERROR;
 365   2          }
 366   1      
 367   1              //input output init for sgpio
 368   1              SETOUT_PD(2);//START
 369   1              SETOUT_PD(3);//CLK
 370   1              SETOUT_PD(4);//DIN
 371   1              SETIN_PD(1);//DOUT
 372   1              
 373   1              //clean the disturb caused by psoc
 374   1              SGPIO_START(LOW);
 375   1              SGPIO_CLK(LOW);
 376   1              SGPIO_DIN(LOW);
 377   1              
 378   1              //3.3v pull, down for psoc, up for sgpio
 379   1              _3V_PULL_UP_ ;
 380   1              EZUSB_Delay(3);
 381   1        //EA = 0;    // disable 8051 interrupts
 382   1          
 383   1              //clear start
 384   1        SGPIO_START(LOW);
 385   1              for(i=0; i<8; i++)
 386   1              {
 387   2                      SGPIO_CLK(HIGH);
 388   2                      PsocDelay(1);
 389   2                      SGPIO_CLK(LOW);
 390   2                      PsocDelay(1);
 391   2              }
 392   1      
 393   1              //set start 1-0
 394   1              SGPIO_START(HIGH);
C51 COMPILER V8.06   PSOC                                                                  01/31/2008 22:24:27 PAGE 8   

 395   1              SGPIO_CLK(HIGH);
 396   1              PsocDelay(1);
 397   1              SGPIO_CLK(LOW);
 398   1              PsocDelay(1);
 399   1              SGPIO_START(LOW);
 400   1      
 401   1              //set data
 402   1              for (i=0; i<12; i++) 
 403   1              {
 404   2                              //PUT DATAOUT
 405   2              if (val & (1<<i))
 406   2              {
 407   3                          SGPIO_DIN(HIGH);
 408   3                          PsocDelay(1);
 409   3            }
 410   2            else
 411   2            {
 412   3                          SGPIO_DIN(LOW);
 413   3                          PsocDelay(1);
 414   3                        }
 415   2                  
 416   2                              SGPIO_CLK(HIGH);
 417   2                              PsocDelay(1);
 418   2                              SGPIO_CLK(LOW);
 419   2                              PsocDelay(1);
 420   2          
 421   2            //GET DATAIN
 422   2            tmp = SGPIO_DOUT & 0x01;
 423   2            result |= (tmp<<i);
 424   2              }
 425   1      
 426   1        //clear start
 427   1              SGPIO_START(0);
 428   1              PsocDelay(1);
 429   1              for (i=0; i<8; i++) 
 430   1              {
 431   2                      SGPIO_CLK(HIGH);
 432   2                      PsocDelay(1);
 433   2                      SGPIO_CLK(LOW);
 434   2                      PsocDelay(1);
 435   2              }
 436   1              
 437   1        //EA = 1; // Enable 8051 interrupts
 438   1      
 439   1        sprintf(param,"(%bX)",result);
 440   1        add_to_retlist(param);
 441   1          
 442   1        return RET_DONE;    
 443   1      }
 444          
 445          //=============================================================================-
 446          //do_psoc_entry
 447          //=============================================================================-
 448          int do_psoc_entry(char *cmd)
 449          {
 450   1          int  (*cmd_func) ();
 451   1          int  ret=0;
 452   1              
 453   1          cmd_func=lookup_command_func(psoc_cmd,cmd);
 454   1          if (cmd_func!=NULL) 
 455   1          {
 456   2              ret=(*cmd_func)();
C51 COMPILER V8.06   PSOC                                                                  01/31/2008 22:24:27 PAGE 9   

 457   2              return(ret);
 458   2          }
 459   1          return RET_ERROR;
 460   1      }
 461          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    960    ----
   CONSTANT SIZE    =   3385    ----
   XDATA SIZE       =     54       4
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      40
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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