?? config.h
字號(hào):
/******************************************************************************
* *
* **** ****** ****
* **** ******** ****
* **** **** **** ****
* **** **** **** **** wxl
* ******* *******
* ***** ***** 成都無線龍通訊科技有限公司
* *
*******************************************************************************
Filename: uart.c 文 件 名: uart.c
Target: cc2510 使用芯片: cc2510
Author: WXL 程 序 員: 無線龍
data: 1/12-2007 日 期: 1/12-2007
******************************************************************************/
/******************************************************************************
Description:
Hardware Abstraction Layer, Utility Library.
******************************************************************************/
#ifndef HAL_H
#define HAL_H
#ifdef CC1110
#include "ioCC1110.h"
#endif
#ifdef CC2510
#include "ioCC2510.h"
#endif
/******************************************************************************
******************* Commonly used types *******************
******************************************************************************/
typedef unsigned char BOOL;
// Data
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
// Unsigned numbers
typedef unsigned char UINT8;
typedef unsigned char INT8U;
typedef unsigned short UINT16;
typedef unsigned short INT16U;
typedef unsigned long UINT32;
typedef unsigned long INT32U;
// Signed numbers
typedef signed char INT8;
typedef signed short INT16;
typedef signed long INT32;
//-----------------------------------------------------------------------------
// Common values
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef NULL
#define NULL 0
#endif
#ifndef HIGH
#define HIGH 1
#endif
#ifndef LOW
#define LOW 0
#endif
#define K_UP 0X20
#define K_DOWN 0X21
#define K_LIFT 0X22
#define K_RIGHT 0X23
#define K_CANCEL 0X24
#define K_OK 0X25
/******************************************************************************
******************* Port functions/macros *******************
******************************************************************************/
// Macros for simplifying access to I/O pin setup and usage
//*****************************************************************************
// Macros for configuring IO peripheral location:
// Example usage:
// IO_PER_LOC_TIMER1_AT_PORT0_PIN234();
// IO_PER_LOC_TIMER4_AT_PORT2_PIN03();
// IO_PER_LOC_USART1_AT_PORT0_PIN2345();
#define IO_PER_LOC_TIMER1_AT_PORT0_PIN234() do { PERCFG = (PERCFG&~0x40)|0x00; } while (0)
#define IO_PER_LOC_TIMER1_AT_PORT1_PIN012() do { PERCFG = (PERCFG&~0x40)|0x40; } while (0)
#define IO_PER_LOC_TIMER3_AT_PORT1_PIN34() do { PERCFG = (PERCFG&~0x20)|0x00; } while (0)
#define IO_PER_LOC_TIMER3_AT_PORT1_PIN67() do { PERCFG = (PERCFG&~0x20)|0x20; } while (0)
#define IO_PER_LOC_TIMER4_AT_PORT1_PIN01() do { PERCFG = (PERCFG&~0x10)|0x00; } while (0)
#define IO_PER_LOC_TIMER4_AT_PORT2_PIN03() do { PERCFG = (PERCFG&~0x10)|0x10; } while (0)
#define IO_PER_LOC_SPI1_AT_PORT0_PIN2345() do { PERCFG = (PERCFG&~0x02)|0x00; } while (0)
#define IO_PER_LOC_SPI1_AT_PORT1_PIN4567() do { PERCFG = (PERCFG&~0x02)|0x02; } while (0)
#define IO_PER_LOC_SPI0_AT_PORT0_PIN2345() do { PERCFG = (PERCFG&~0x01)|0x00; } while (0)
#define IO_PER_LOC_SPI0_AT_PORT1_PIN2345() do { PERCFG = (PERCFG&~0x01)|0x01; } while (0)
#define IO_PER_LOC_UART1_AT_PORT0_PIN2345() do { PERCFG = (PERCFG&~0x02)|0x00; } while (0)
#define IO_PER_LOC_UART1_AT_PORT1_PIN4567() do { PERCFG = (PERCFG&~0x02)|0x02; } while (0)
#define IO_PER_LOC_UART0_AT_PORT0_PIN2345() do { PERCFG = (PERCFG&~0x01)|0x00; } while (0)
#define IO_PER_LOC_UART0_AT_PORT1_PIN2345() do { PERCFG = (PERCFG&~0x01)|0x01; } while (0)
// Actual MCU pin configuration:
//
// Peripheral I/O signal Alt1 Alt2
// -------------------------------------------
// Timer1 channel0 P0.2 P1.2
// Timer1 channel1 P0.3 P1.1
// Timer1 channel2 P0.4 P1.0
// Timer3 channel0 P1.3 P1.6
// Timer3 channel1 P1.4 P1.7
// Timer4 channel0 P1.0 P2.0
// Timer4 channel1 P1.1 P2.3
// USART0 TXD/MOSI P0.3 P1.5
// USART0 RXD/MISO P0.2 P1.4
// USART0 RTS/SCK P0.5 P1.3
// USART0 CTS/SS_N P0.4 P1.2
// USART1 TXD/MOSI P0.4 P1.6
// USART1 RXD/MISO P0.5 P1.7
// USART1 RTS/SCK P0.3 P1.5
// USART1 CTS/SS_N P0.2 P1.4
// Macros for configuring IO direction:
// Example usage:
// IO_DIR_PORT_PIN(0, 3, IO_IN); // Set P0_3 to input
// IO_DIR_PORT_PIN(2, 1, IO_OUT); // Set P2_1 to output
#define IO_DIR_PORT_PIN(port, pin, dir) \
do { \
if (dir == IO_OUT) \
P##port##DIR |= (0x01<<(pin)); \
else \
P##port##DIR &= ~(0x01<<(pin)); \
}while(0)
// Where port={0,1,2}, pin={0,..,7} and dir is one of:
#define IO_IN 0
#define IO_OUT 1
// Macros for configuring IO input mode:
// Example usage:
// IO_IMODE_PORT_PIN(0,0,IO_IMODE_PUD);
// IO_IMODE_PORT_PIN(2,0,IO_IMODE_TRI);
// IO_IMODE_PORT_PIN(1,3,IO_IMODE_PUD);
#define IO_IMODE_PORT_PIN(port, pin, imode) \
do { \
if (imode == IO_IMODE_TRI) \
P##port##INP |= (0x01<<(pin)); \
else \
P##port##INP &= ~(0x01<<(pin)); \
} while (0)
// where imode is one of:
#define IO_IMODE_PUD 0 // Pull-up/pull-down
#define IO_IMODE_TRI 1 // Tristate
// Macro for configuring IO drive mode:
// Example usage:
// IIO_PUD_PORT(0, IO_PULLUP);
// IIO_PUD_PORT(1, IO_PULLDOWN);
// IIO_PUD_PORT(2, IO_PULLUP);
#define IO_PUD_PORT(port, pud) \
do { \
if (pud == IO_PULLDOWN) \
P2INP |= (0x01 << (port+5)); \
else \
P2INP &= ~(0x01 << (port+5));\
} while (0)
#define IO_PULLUP 0
#define IO_PULLDOWN 1
// Macros for function select (General purpose I/O / Peripheral function):
// Example usage:
// IO_FUNC_PORT0_PIN0(0, 0, IO_FUNC_PERIPH);
// IO_FUNC_PORT0_PIN1(0, 1, IO_FUNC_GIO);
// IO_FUNC_PORT2_PIN3(2, 3, IO_FUNC_PERIPH);
#define IO_FUNC_PORT_PIN(port, pin, func) \
do { \
if((port == 2) && (pin == 3)){ \
if (func) { \
P2SEL |= 0x02; \
} else { \
P2SEL &= ~0x02; \
} \
} \
else if((port == 2) && (pin == 4)){ \
if (func) { \
P2SEL |= 0x04; \
} else { \
P2SEL &= ~0x04; \
} \
} \
else{ \
if (func) { \
P##port##SEL |= (0x01<<(pin)); \
} else { \
P##port##SEL &= ~(0x01<<(pin));\
} \
} \
} while (0)
// where func is one of:
#define IO_FUNC_GIO 0 // General purpose I/O
#define IO_FUNC_PERIPH 1 // Peripheral function
// Macros for configuring the ADC input:
// Example usage:
// IO_ADC_PORT0_PIN(0, IO_ADC_EN);
// IO_ADC_PORT0_PIN(4, IO_ADC_DIS);
// IO_ADC_PORT0_PIN(6, IO_ADC_EN);
#define IO_ADC_PORT0_PIN(pin, adcEn) \
do { \
if (adcEn) \
ADCCFG |= (0x01<<pin); \
else \
ADCCFG &= ~(0x01<<pin); } \
while (0)
// where adcEn is one of:
#define IO_ADC_EN 1 // ADC input enabled
#define IO_ADC_DIS 0 // ADC input disab
/******************************************************************************
******************* Common USART functions/macros *******************
*******************************************************************************
The macros in this section are available for both SPI and UART operation.
******************************************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -