📄 hal_board.h
字号:
/*******************************************************************************
Filename: hal_board.h
Description: SmartRF05 board with CCxxxxEM.
*******************************************************************************/
#ifndef HAL_BOARD_H
#define HAL_BOARD_H
#if (chip==2430)
#include "ioCC2430.h"
#elif (chip==2431)
#include "ioCC2431.h"
#elif (chip==2530 || chip==2531)
#include "ioCC2530.h"
#elif (chip==2510)
#include "ioCC2510.h"
#elif (chip==2511)
#include "ioCC2511.h"
#else
#error "Chip not supported!"
#endif
#include "hal_cc8051.h"
#include "hal_defs.h"
#include "hal_mcu.h"
/*******************************************************************************
* CONSTANTS
*/
#define BOARD_NAME "SRF05"
// SPI
#define HAL_BOARD_IO_SPI_MISO_PORT 1
#define HAL_BOARD_IO_SPI_MISO_PIN 7
#define HAL_BOARD_IO_SPI_MOSI_PORT 1
#define HAL_BOARD_IO_SPI_MOSI_PIN 6
#define HAL_BOARD_IO_SPI_CLK_PORT 1
#define HAL_BOARD_IO_SPI_CLK_PIN 5
#define HAL_BOARD_IO_EM_CS_PORT 1
#define HAL_BOARD_IO_EM_CS_PIN 4
// LCD
#define HAL_BOARD_IO_LCD_CS_PORT 1
#define HAL_BOARD_IO_LCD_CS_PIN 2
#define HAL_BOARD_IO_LCD_MODE_PORT 0
#define HAL_BOARD_IO_LCD_MODE_PIN 0
#define HAL_BOARD_IO_LCD_RST_PORT 1
#define HAL_BOARD_IO_LCD_RST_PIN 1
// LEDs
#define HAL_BOARD_IO_LED_1_PORT 1 // Green
#define HAL_BOARD_IO_LED_1_PIN 0
// LED2, LED3 and LED4 are not connected to CC2430
// Buttons
#define HAL_BOARD_IO_BTN_1_PORT 0 // Button S1
#define HAL_BOARD_IO_BTN_1_PIN 1
// Potmeter
#define HAL_POTMETER_ADC_PORT 0
#define HAL_POTMETER_ADC_CH 7
// Joystick
#define HAL_BOARD_IO_JOYSTICK_ADC_PORT 0
#define HAL_BOARD_IO_JOYSTICK_ADC_PIN 6
#define HAL_BOARD_IO_JOY_MOVE_PORT 2
#define HAL_BOARD_IO_JOY_MOVE_PIN 0
// UART
#define HAL_BOARD_IO_UART_RTS_PORT 0
#define HAL_BOARD_IO_UART_RTS_PIN 5
// Debounce
#define HAL_DEBOUNCE(expr) { int i; for (i=0; i<500; i++) { if (!(expr)) i = 0; } }
/*******************************************************************************
* MACROS
*/
// LED
#define HAL_LED_SET_1() MCU_IO_SET_HIGH(HAL_BOARD_IO_LED_1_PORT, \
HAL_BOARD_IO_LED_1_PIN)
#define HAL_LED_CLR_1() MCU_IO_SET_LOW(HAL_BOARD_IO_LED_1_PORT, \
HAL_BOARD_IO_LED_1_PIN)
#define HAL_LED_TGL_1() MCU_IO_TGL(HAL_BOARD_IO_LED_1_PORT, \
HAL_BOARD_IO_LED_1_PIN)
// Buttons
#ifdef SRF05EB_VERSION_1_3
#define HAL_BUTTON_1_PUSHED() (!MCU_IO_GET(HAL_BOARD_IO_BTN_1_PORT, \
HAL_BOARD_IO_BTN_1_PIN))
#else
#define HAL_BUTTON_1_PUSHED() (MCU_IO_GET(HAL_BOARD_IO_BTN_1_PORT, \
HAL_BOARD_IO_BTN_1_PIN))
#endif
// Joystick
#define HAL_JOYSTICK_LEVEL() (MCU_IO_GET(HAL_BOARD_IO_JOYSTICK_ADC_PORT, \
HAL_BOARD_IO_JOYSTICK_ADC_CH_PIN)
#define HAL_JOYSTICK_UP() ( halJoystickGetDir()==HAL_JOYSTICK_EVT_UP )
#define HAL_JOYSTICK_DOWN() ( halJoystickGetDir()==HAL_JOYSTICK_EVT_DOWN )
#define HAL_JOYSTICK_LEFT() ( halJoystickGetDir()==HAL_JOYSTICK_EVT_LEFT )
#define HAL_JOYSTICK_RIGHT() ( halJoystickGetDir()==HAL_JOYSTICK_EVT_RIGHT )
// UART RTS
#define HAL_RTS_SET() MCU_IO_SET_HIGH(HAL_BOARD_IO_UART_RTS_PORT, \
HAL_BOARD_IO_UART_RTS_PIN)
#define HAL_RTS_CLR() MCU_IO_SET_LOW(HAL_BOARD_IO_UART_RTS_PORT, \
HAL_BOARD_IO_UART_RTS_PIN)
#define HAL_RTS_DIR_OUT() MCU_IO_OUTPUT(HAL_BOARD_IO_UART_RTS_PORT, \
HAL_BOARD_IO_UART_RTS_PIN, 1)
// LCD SPI interface control
#define LCD_SPI_BEGIN() MCU_IO_SET_LOW(HAL_BOARD_IO_LCD_CS_PORT, HAL_BOARD_IO_LCD_CS_PIN)
#define LCD_SPI_TX(x) st( U1CSR &= ~0x02; U1DBUF = x; )
#define LCD_SPI_RX() U1DBUF
#define LCD_SPI_WAIT_RXRDY() st( while((U1CSR & 0x02) != 0x02); )
#define LCD_SPI_END() st( NOP(); NOP(); NOP(); NOP(); \
MCU_IO_SET_HIGH(HAL_BOARD_IO_LCD_CS_PORT, HAL_BOARD_IO_LCD_CS_PIN); )
// LCD pin control
#define LCD_DO_WRITE() MCU_IO_SET_HIGH(HAL_BOARD_IO_LCD_MODE_PORT, HAL_BOARD_IO_LCD_MODE_PIN)
#define LCD_DO_CONTROL() MCU_IO_SET_LOW(HAL_BOARD_IO_LCD_MODE_PORT, HAL_BOARD_IO_LCD_MODE_PIN)
#define LCD_ACTIVATE_RESET() MCU_IO_SET_LOW(HAL_BOARD_IO_LCD_RST_PORT, HAL_BOARD_IO_LCD_RST_PIN)
#define LCD_RELEASE_RESET() MCU_IO_SET_HIGH(HAL_BOARD_IO_LCD_RST_PORT, HAL_BOARD_IO_LCD_RST_PIN)
// Port initialization
#define LCD_CTRL_INIT_PORTS() st( MCU_IO_OUTPUT(HAL_BOARD_IO_LCD_CS_PORT, HAL_BOARD_IO_LCD_CS_PIN, 1); \
MCU_IO_OUTPUT(HAL_BOARD_IO_LCD_MODE_PORT, HAL_BOARD_IO_LCD_MODE_PIN, 1); \
MCU_IO_OUTPUT(HAL_BOARD_IO_LCD_RST_PORT, HAL_BOARD_IO_LCD_RST_PIN, 1); )
/*******************************************************************************
* FUNCTION PROTOTYPES
*/
void halBoardInit(void);
void halLcdSpiInit(void);
void halLcdSpiEna(void);
void halLcdSpiDis(void);
#endif
/*------------------------------------------------------------------------------
0ooo
ooo0 ( )
( ) ) /
\ ( (_/
\_) Modify By:cuiqingwei [gary]
------------------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -