HardwareProfile.h
上传用户:yztclw
上传日期:2022-08-05
资源大小:44k
文件大小:8k
源码类别:

USB编程

开发平台:

C++ Builder

  1. // HardwareProfile.h
  2. #ifndef _HARDWAREPROFILE_H_
  3. #define _HARDWAREPROFILE_H_
  4. #if defined( __PIC32MX__)
  5. #endif
  6. //#define USE_USB_PLL
  7. #if defined (__C30__)
  8.     // Various clock values
  9.     #define GetSystemClock()            32000000UL
  10.     #define GetPeripheralClock()        (GetSystemClock())
  11.     #define GetInstructionClock()       (GetSystemClock() / 2)
  12. #elif defined( __PIC32MX__)
  13.     #define USB_A0_SILICON_WORK_AROUND
  14.     //#define RUN_AT_48MHZ
  15.     //#define RUN_AT_24MHZ
  16.     #define RUN_AT_60MHZ
  17.     // Various clock values
  18.     #if defined(RUN_AT_48MHZ)
  19.         #define GetSystemClock()            48000000UL
  20.         #define GetPeripheralClock()        48000000UL
  21.         #define GetInstructionClock()       (GetSystemClock() / 2) ???
  22.     #elif defined(RUN_AT_24MHZ)
  23.         #define GetSystemClock()            24000000UL
  24.         #define GetPeripheralClock()        24000000UL
  25.         #define GetInstructionClock()       (GetSystemClock() / 2) ???
  26.     #elif defined(RUN_AT_60MHZ)    
  27.         #define GetSystemClock()            60000000UL
  28.         #define GetPeripheralClock()        30000000UL  // Will be divided down
  29.         #define GetInstructionClock()       (GetSystemClock() / 2) ???
  30.     #else
  31.         #error Choose a speed
  32.     #endif        
  33. #endif
  34. // Define the baud rate constants
  35. #define BAUDRATE2       57600 //19200
  36. #define BRG_DIV2        4 //16
  37. #define BRGH2           1 //0
  38. #define DEMO_TIMEOUT_LIMIT  0xF000
  39. #if defined(__PIC24F__) || defined(__PIC24H__)
  40.     #include <p24fxxxx.h>
  41.     #include <uart2.h>
  42. #else
  43.     #include <p32xxxx.h>
  44.     #include <plib.h>
  45.     #include <uart2.h>
  46. #endif
  47. /** TRIS ***********************************************************/
  48. #define INPUT_PIN           1
  49. #define OUTPUT_PIN          0
  50. #if defined (__C30__)
  51. // LCD Module I/O pins
  52. #define LCD_DATA0_TRIS (TRISEbits.TRISE0) // Multiplexed with LED6
  53. #define LCD_DATA0_IO (LATEbits.LATE0)
  54. #define LCD_DATA1_TRIS (TRISEbits.TRISE1)
  55. #define LCD_DATA1_IO (LATEbits.LATE1)
  56. #define LCD_DATA2_TRIS (TRISEbits.TRISE2)
  57. #define LCD_DATA2_IO (LATEbits.LATE2)
  58. #define LCD_DATA3_TRIS (TRISEbits.TRISE3) // Multiplexed with LED3
  59. #define LCD_DATA3_IO (LATEbits.LATE3)
  60. #define LCD_DATA4_TRIS (TRISEbits.TRISE4) // Multiplexed with LED2
  61. #define LCD_DATA4_IO (LATEbits.LATE4)
  62. #define LCD_DATA5_TRIS (TRISEbits.TRISE5)
  63. #define LCD_DATA5_IO (LATEbits.LATE5)
  64. #define LCD_DATA6_TRIS (TRISEbits.TRISE6)
  65. #define LCD_DATA6_IO (LATEbits.LATE6)
  66. #define LCD_DATA7_TRIS (TRISEbits.TRISE7)
  67. #define LCD_DATA7_IO (LATEbits.LATE7)
  68. #define LCD_RD_WR_TRIS (TRISDbits.TRISD5)
  69. #define LCD_RD_WR_IO (LATDbits.LATD5)
  70. #define LCD_RS_TRIS (TRISBbits.TRISB15)
  71. #define LCD_RS_IO (LATBbits.LATB15)
  72. #define LCD_E_TRIS (TRISDbits.TRISD4)
  73. #define LCD_E_IO (LATDbits.LATD4)
  74.     /** LED ************************************************************/
  75.     #define mInitAllLEDs()  {TRISA = 0; LATA = 0;}
  76.     
  77.     #define mLED_3              LATAbits.LATA0
  78.     #define mLED_4              LATAbits.LATA1
  79.     #define mLED_5              LATAbits.LATA2
  80.     #define mLED_6              LATAbits.LATA3
  81.     #define mLED_7              LATAbits.LATA4
  82.     #define mLED_8              LATAbits.LATA5
  83.     #define mLED_9              LATAbits.LATA6
  84.     #define mLED_10             LATAbits.LATA7
  85.     
  86.     #define mLED_3_On()         mLED_3  = 1;
  87.     #define mLED_4_On()         mLED_4  = 1;
  88.     #define mLED_5_On()         mLED_5  = 1;
  89.     #define mLED_6_On()         mLED_6  = 1;
  90.     #define mLED_7_On()         mLED_7  = 1;
  91.     #define mLED_8_On()         mLED_8  = 1;
  92.     #define mLED_9_On()         mLED_9  = 1;
  93.     #define mLED_10_On()        mLED_10 = 1;
  94.     
  95.     #define mLED_3_Off()        mLED_3  = 0;
  96.     #define mLED_4_Off()        mLED_4  = 0;
  97.     #define mLED_5_Off()        mLED_5  = 0;
  98.     #define mLED_6_Off()        mLED_6  = 0;
  99.     #define mLED_7_Off()        mLED_7  = 0;
  100.     #define mLED_8_Off()        mLED_8  = 0;
  101.     #define mLED_9_Off()        mLED_9  = 0;
  102.     #define mLED_10_Off()       mLED_10 = 0;
  103.     
  104.     #define mLED_3_Toggle()     mLED_3  = !mLED_3;
  105.     #define mLED_4_Toggle()     mLED_4  = !mLED_4;
  106.     #define mLED_5_Toggle()     mLED_5  = !mLED_5;
  107.     #define mLED_6_Toggle()     mLED_6  = !mLED_6;
  108.     #define mLED_7_Toggle()     mLED_7  = !mLED_7;
  109.     #define mLED_8_Toggle()     mLED_8  = !mLED_8;
  110.     #define mLED_9_Toggle()     mLED_9  = !mLED_9;
  111.     #define mLED_10_Toggle()    mLED_10 = !mLED_10;
  112. #elif defined(__PIC32MX__)
  113.     #define tris_usb_bus_sense  TRISBbits.TRISB5    // Input
  114. //    
  115. //    #if defined(USE_USB_BUS_SENSE_IO)
  116. //    #define USB_BUS_SENSE       PORTBbits.RB5
  117. //    #else
  118.     #define USB_BUS_SENSE       1
  119. //    #endif
  120. //    
  121.     #define tris_self_power     TRISAbits.TRISA2    // Input
  122. //    
  123. //    #if defined(USE_SELF_POWER_SENSE_IO)
  124. //    #define self_power          PORTAbits.RA2
  125. //    #else
  126.     #define self_power          1
  127. //    #endif
  128.     
  129.     // External Transceiver Interface
  130.     #define tris_usb_vpo        TRISBbits.TRISB3    // Output
  131.     #define tris_usb_vmo        TRISBbits.TRISB2    // Output
  132.     #define tris_usb_rcv        TRISAbits.TRISA4    // Input
  133.     #define tris_usb_vp         TRISCbits.TRISC5    // Input
  134.     #define tris_usb_vm         TRISCbits.TRISC4    // Input
  135.     #define tris_usb_oe         TRISCbits.TRISC1    // Output
  136.     
  137.     #define tris_usb_suspnd     TRISAbits.TRISA3    // Output
  138.     
  139.     /** LED ************************************************************/
  140.     #define mInitAllLEDs()  {TRISA = 0; LATA = 0;}
  141.     
  142.     #define mLED_3              LATAbits.LATA0
  143.     #define mLED_4              LATAbits.LATA1
  144.     #define mLED_5              LATAbits.LATA2
  145.     #define mLED_6              LATAbits.LATA3
  146.     #define mLED_7              LATAbits.LATA4
  147.     #define mLED_8              LATAbits.LATA5
  148.     #define mLED_9              LATAbits.LATA6
  149.     #define mLED_10             LATAbits.LATA7
  150.     
  151.     #define mLED_3_On()         mLED_3  = 1;
  152.     #define mLED_4_On()         mLED_4  = 1;
  153.     #define mLED_5_On()         mLED_5  = 1;
  154.     #define mLED_6_On()         mLED_6  = 1;
  155.     #define mLED_7_On()         mLED_7  = 1;
  156.     #define mLED_8_On()         mLED_8  = 1;
  157.     #define mLED_9_On()         mLED_9  = 1;
  158.     #define mLED_10_On()        mLED_10 = 1;
  159.     
  160.     #define mLED_3_Off()        mLED_3  = 0;
  161.     #define mLED_4_Off()        mLED_4  = 0;
  162.     #define mLED_5_Off()        mLED_5  = 0;
  163.     #define mLED_6_Off()        mLED_6  = 0;
  164.     #define mLED_7_Off()        mLED_7  = 0;
  165.     #define mLED_8_Off()        mLED_8  = 0;
  166.     #define mLED_9_Off()        mLED_9  = 0;
  167.     #define mLED_10_Off()       mLED_10 = 0;
  168.     
  169.     #define mLED_3_Toggle()     mLED_3  = !mLED_3;
  170.     #define mLED_4_Toggle()     mLED_4  = !mLED_4;
  171.     #define mLED_5_Toggle()     mLED_5  = !mLED_5;
  172.     #define mLED_6_Toggle()     mLED_6  = !mLED_6;
  173.     #define mLED_7_Toggle()     mLED_7  = !mLED_7;
  174.     #define mLED_8_Toggle()     mLED_8  = !mLED_8;
  175.     #define mLED_9_Toggle()     mLED_9  = !mLED_9;
  176.     #define mLED_10_Toggle()    mLED_10 = !mLED_10;
  177.     
  178.     /** SWITCH *********************************************************/
  179.     #define mInitAllSwitches()  mPORTDSetPinsDigitalIn(IOPORT_BIT_6|IOPORT_BIT_7)
  180.     #define mInitSwitch3()      mPORTDSetPinsDigitalIn(IOPORT_BIT_7)
  181.     #define mInitSwitch6()      mPORTDSetPinsDigitalIn(IOPORT_BIT_6)
  182.     #define sw3                 mPORTDReadBit(IOPORT_BIT_6)
  183.     #define sw6                 mPORTDReadBit(IOPORT_BIT_7)
  184.     /** POT ************************************************************/
  185.     #define mInitPOT()          TRISAbits.TRISA0=1;AD1CON0=0x01;AD1CON2=0x3C;
  186.     
  187.     /** SPI : Chip Select Lines ****************************************/
  188.     #define tris_cs_temp_sensor TRISBbits.TRISB2    // Output
  189.     #define cs_temp_sensor      LATBbits.LATB2
  190.     
  191.     #define tris_cs_sdmmc       TRISBbits.TRISB3    // Output
  192.     #define cs_sdmmc            LATBbits.LATB3
  193.     
  194.     /** SD/MMC *********************************************************/
  195.     #define TRIS_CARD_DETECT    TRISBbits.TRISB4    // Input
  196.     #define CARD_DETECT         PORTBbits.RB4
  197.     
  198.     #define TRIS_WRITE_DETECT   TRISAbits.TRISA4    // Input
  199.     #define WRITE_DETECT        PORTAbits.RA4
  200. #endif
  201. #endif