📄 bsp.c
字号:
*********************************************************************************************************
*/
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 + -