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

📄 bsp.c

📁 ucos II 2.85源码 LPC2148keil版的
💻 C
📖 第 1 页 / 共 3 页
字号:
*********************************************************************************************************
*/

void  LED_On (CPU_INT08U led)
{
    switch (led) {
        case 0:
             IO1SET = GPIO1_LEDS;
             break;

        case 1:
             IO1SET = GPIO1_LED1;
             break;

        case 2:
             IO1SET = GPIO1_LED2;
             break;

        case 3:
             IO1SET = GPIO1_LED3;
             break;

        case 4:
             IO1SET = GPIO1_LED4;
             break;

        case 5:
             IO1SET = GPIO1_LED5;
             break;

        case 6:
             IO1SET = GPIO1_LED6;
             break;

        case 7:
             IO1SET = GPIO1_LED7;
             break;

        case 8:
             IO1SET = GPIO1_LED8;
             break;

        default:
             break;
    }
}


/*
*********************************************************************************************************
*                                             LED_Off()
*
* Description : Turn OFF any or all the LEDs on the board.
*
* Argument(s) : led     The ID of the LED to control:
*
*                       0    turn OFF all LEDs on the board
*                       1    turn OFF LED1
*                       .
*                       .
*                       .
*                       8    turn OFF LED8
*
* Return(s)   : none.
*********************************************************************************************************
*/

void  LED_Off (CPU_INT08U led)
{
    switch (led) {
        case 0:
             IO1CLR = GPIO1_LEDS;
             break;

        case 1:
             IO1CLR = GPIO1_LED1;
             break;

        case 2:
             IO1CLR = GPIO1_LED2;
             break;

        case 3:
             IO1CLR = GPIO1_LED3;
             break;

        case 4:
             IO1CLR = GPIO1_LED4;
             break;

        case 5:
             IO1CLR = GPIO1_LED5;
             break;

        case 6:
             IO1CLR = GPIO1_LED6;
             break;

        case 7:
             IO1CLR = GPIO1_LED7;
             break;

        case 8:
             IO1CLR = GPIO1_LED8;
             break;

        default:
             break;
    }
}


/*
*********************************************************************************************************
*                                             LED_Toggle()
*
* Description : TOGGLE any or all the LEDs on the board.
*
* Argument(s) : led     The ID of the LED to control:
*
*                       0    TOGGLE all LEDs on the board
*                       1    TOGGLE LED1
*                       .
*                       .
*                       .
*                       8    TOGGLE LED8
*
* Return(s)   : none.
*********************************************************************************************************
*/

void  LED_Toggle (CPU_INT08U led)
{
    CPU_INT32U  are_off;
    CPU_INT32U  are_on;


    switch (led) {
        case 0:
             are_off = ( (IO1PIN ^ GPIO1_LEDS) & GPIO1_LEDS);
             are_on  = (~(IO1PIN ^ GPIO1_LEDS) & GPIO1_LEDS);
             IO1CLR =  are_on;
             IO1SET =  are_off;

        case 1:
             if ((IO1PIN & GPIO1_LED1) == 0) {
                 IO1CLR  = GPIO1_LED1;
             } else {
                 IO1SET  = GPIO1_LED1;
             }
             break;

        case 2:
             if ((IO1PIN & GPIO1_LED2) == 0) {
                 IO1CLR  = GPIO1_LED2;
             } else {
                 IO1SET  = GPIO1_LED2;
             }
             break;

        case 3:
             if ((IO1PIN & GPIO1_LED3) == 0) {
                 IO1CLR  = GPIO1_LED3;
             } else {
                 IO1SET  = GPIO1_LED3;
             }
             break;

        case 4:
             if ((IO1PIN & GPIO1_LED4) == 0) {
                 IO1CLR  = GPIO1_LED4;
             } else {
                 IO1SET  = GPIO1_LED4;
             }
             break;

        case 5:
             if ((IO1PIN & GPIO1_LED5) == 0) {
                 IO1CLR  = GPIO1_LED5;
             } else {
                 IO1SET  = GPIO1_LED5;
             }
             break;

        case 6:
             if ((IO1PIN & GPIO1_LED6) == 0) {
                 IO1CLR  = GPIO1_LED6;
             } else {
                 IO1SET  = GPIO1_LED6;
             }
             break;

        case 7:
             if ((IO1PIN & GPIO1_LED7) == 0) {
                 IO1CLR  = GPIO1_LED7;
             } else {
                 IO1SET  = GPIO1_LED7;
             }
             break;

        case 8:
             if ((IO1PIN & GPIO1_LED8) == 0) {
                 IO1CLR  = GPIO1_LED8;
             } else {
                 IO1SET  = GPIO1_LED8;
             }
             break;
    }
}


/*
*********************************************************************************************************
*                                         PB_GetStatus()
*
* Description : Get the status of a push button on the board.
*
* Argument(s) : pb      The ID of the push button to probe
*
*                       1    probe the push button INT1
*
* Return(s)   : DEF_FALSE   if the push button is pressed
*               DEF_TRUE    if the push button is not pressed
*********************************************************************************************************
*/

CPU_BOOLEAN  PB_GetStatus (CPU_INT08U pb)
{
    CPU_BOOLEAN  status;


    status = DEF_FALSE;

    switch (pb) {
        case 1:
             if ((IO0PIN & GPIO0_INT1) == 0) {
                 return (DEF_TRUE);
             }
             break;

        default:
             break;
    }

    return (status);
}

/*
*********************************************************************************************************
*                                         ADC_Init()
*
* Description : Initializes the board's ADC.
*
* Argument(s) : none.
*
* Return(s)   : none.
*********************************************************************************************************
*/

static  void  ADC_Init (void)
{
    CPU_INT08U  div;
    CPU_INT32U  pinsel;


    div      = (BSP_CPU_PclkFreq() / 4500000) + 1;
                                                                /* Configure ADC ...                                        */
    AD0CR    = (0x02 <<  0)                                     /*  ... Sample/convert pin AD0.1 ...                        */
             | (div  <<  8)                                     /*  ... Set divider so sample freq. < 4.5 MHz ...           */
             | (   1 << 16)                                     /*  ... Use burst mode for continuous conversion ...        */
             | (0x00 << 17)                                     /*  ... Use 11 clocks per conversion for 10-bit accuracy ...*/
             | (   1 << 21);                                    /*  ... Power up the ADC.                                   */

                                                                /* Select AD0.1 function for PIN0.28                        */
    pinsel   = PINSEL1;
    pinsel  &= ~0x03000000;
    pinsel  |=  0x01000000;
    PINSEL1  =  pinsel;

    AD0CR   |=  (0x01 << 24);                                   /* Start conversion                                         */
}


/*
*********************************************************************************************************
*                                           ADC_GetStatus()
*
* Description : This function initializes the board's ADC
*
* Argument(s) : adc     The ID of the ADC to probe:
*                       1   Probe the potentiometer.
*
* Return(s)   : The numerator of the binary fraction representing the result of the latest ADC conversion.
*               This value will be a 10-bit value between 0x0000 and 0x03FF, inclusive.
*********************************************************************************************************
*/

CPU_INT16U  ADC_GetStatus (CPU_INT08U  adc)
{
    if (adc == 1) {
        return ((AD0DR1 >> 6) & 0x03FF);
    } else {
        return (0);
    }
}


/*
*********************************************************************************************************
*********************************************************************************************************
**                                          uC/OS-View FUNCTIONS
*********************************************************************************************************
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                              OSView_TmrInit()
*
* Description : Select & initialize a timer for use with uC/OS-View.
*
* Argument(s) : none.
*
* Return(s)   : none.
*********************************************************************************************************
*/

#if (OS_VIEW_MODULE > 0)
void  OSView_TmrInit (void)
{
    T1PR  = 0;
    T1TCR = 0x00000001;                                         /* Enable the timer                                         */

}
#endif


/*
*********************************************************************************************************
*                                         OSView_TmrRd()
*
* Description : Read the current counts of a 32-bit free running timer.
*
* Argument(s) : none.
*
* Return(s)   : The 32 bit counts of the timer.
*********************************************************************************************************
*/

#if (OS_VIEW_MODULE > 0)
CPU_INT32U  OSView_TmrRd (void)
{
    return ((CPU_INT32U)T1TC);

⌨️ 快捷键说明

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