?? apphardwareapi.h
字號(hào):
/***************************************************************************** * * MODULE: Application Hardware API * * COMPONENT: $RCSfile: AppHardwareApi.h,v $ * * VERSION: $Name: zed003_cd $ * * REVISION: $Revision: 1.22 $ * * DATED: $Date: 2006/03/01 17:04:23 $ * * STATUS: $State: Exp $ * * AUTHOR: CJG * * DESCRIPTION: * Abstraction of the hardware peripherals available on the 802.15.4 chip * that are not used directly for 802.15.4, such as UARTs and timers. * * LAST MODIFIED BY: $Author: moz $ * $Modtime: $ * **************************************************************************** * * (c) Copyright JENNIC Ltd 2006 * ****************************************************************************/#ifndef AHI_H_INCLUDED#define AHI_H_INCLUDED#if defined __cplusplusextern "C" {#endif/****************************************************************************//*** Include Files ***//****************************************************************************/#include <jendefs.h>/****************************************************************************//*** Macro Definitions ***//****************************************************************************//* Device enumerations */#define E_AHI_WAKE_TIMER_0 0#define E_AHI_WAKE_TIMER_1 1#define E_AHI_DAC_0 0#define E_AHI_DAC_1 1#define E_AHI_COMPARATOR_0 0#define E_AHI_COMPARATOR_1 1#define E_AHI_UART_0 0#define E_AHI_UART_1 1#define E_AHI_TIMER_0 0#define E_AHI_TIMER_1 1/* Value enumerations: wake timer */#define E_AHI_WAKE_TIMER_MASK_0 1#define E_AHI_WAKE_TIMER_MASK_1 2/* Value enumerations: Analogue Peripherals */#define E_AHI_ADC_SRC_ADC_1 0#define E_AHI_ADC_SRC_ADC_2 1#define E_AHI_ADC_SRC_ADC_3 2#define E_AHI_ADC_SRC_ADC_4 3#define E_AHI_ADC_SRC_TEMP 4#define E_AHI_ADC_SRC_VOLT 5#define E_AHI_AP_REGULATOR_ENABLE TRUE#define E_AHI_AP_REGULATOR_DISABLE FALSE#define E_AHI_AP_SAMPLE_2 0#define E_AHI_AP_SAMPLE_4 1#define E_AHI_AP_SAMPLE_6 2#define E_AHI_AP_SAMPLE_8 3#define E_AHI_AP_CLOCKDIV_2MHZ 0#define E_AHI_AP_CLOCKDIV_1MHZ 1#define E_AHI_AP_CLOCKDIV_500KHZ 2#define E_AHI_AP_CLOCKDIV_250KHZ 3#define E_AHI_AP_INPUT_RANGE_2 TRUE#define E_AHI_AP_INPUT_RANGE_1 FALSE#define E_AHI_AP_GAIN_2 TRUE#define E_AHI_AP_GAIN_1 FALSE#define E_AHI_AP_EXTREF TRUE#define E_AHI_AP_INTREF FALSE#define E_AHI_ADC_CONVERT_ENABLE TRUE#define E_AHI_ADC_CONVERT_DISABLE FALSE#define E_AHI_AP_INT_ENABLE TRUE#define E_AHI_AP_INT_DISABLE FALSE#define E_AHI_DAC_RETAIN_ENABLE TRUE#define E_AHI_DAC_RETAIN_DISABLE FALSE/* Value enumerations: Comparator */#define E_AHI_COMP_HYSTERESIS_0MV 0#define E_AHI_COMP_HYSTERESIS_5MV 1#define E_AHI_COMP_HYSTERESIS_10MV 2#define E_AHI_COMP_HYSTERESIS_20MV 3#define E_AHI_COMPARATOR_MASK_0 1#define E_AHI_COMPARATOR_MASK_1 2#define E_AHI_COMP_SEL_EXT 0x00#define E_AHI_COMP_SEL_DAC 0x01#define E_AHI_COMP_SEL_BANDGAP 0x10/* Value enumerations: UART */#define E_AHI_UART_RATE_4800 0#define E_AHI_UART_RATE_9600 1#define E_AHI_UART_RATE_19200 2#define E_AHI_UART_RATE_38400 3#define E_AHI_UART_RATE_76800 4#define E_AHI_UART_RATE_115200 5#define E_AHI_UART_WORD_LEN_5 0#define E_AHI_UART_WORD_LEN_6 1#define E_AHI_UART_WORD_LEN_7 2#define E_AHI_UART_WORD_LEN_8 3#define E_AHI_UART_FIFO_LEVEL_1 0#define E_AHI_UART_FIFO_LEVEL_4 1#define E_AHI_UART_FIFO_LEVEL_8 2#define E_AHI_UART_FIFO_LEVEL_14 3#define E_AHI_UART_LS_ERROR 0x80#define E_AHI_UART_LS_TEMT 0x40#define E_AHI_UART_LS_THRE 0x20#define E_AHI_UART_LS_BI 0x10#define E_AHI_UART_LS_FE 0x08#define E_AHI_UART_LS_PE 0x04#define E_AHI_UART_LS_OE 0x02#define E_AHI_UART_LS_DR 0x01#define E_AHI_UART_MS_DCTS 0x01#define E_AHI_UART_INT_MODEM 0#define E_AHI_UART_INT_TX 1#define E_AHI_UART_INT_RXDATA 2#define E_AHI_UART_INT_RXLINE 3#define E_AHI_UART_INT_TIMEOUT 6/* Value enumerations: Serial Interface */#define E_AHI_SPIM_MSB_FIRST FALSE#define E_AHI_SPIM_LSB_FIRST TRUE#define E_AHI_SPIM_TXPOS_EDGE FALSE#define E_AHI_SPIM_TXNEG_EDGE TRUE#define E_AHI_SPIM_RXPOS_EDGE FALSE#define E_AHI_SPIM_RXNEG_EDGE TRUE#define E_AHI_SPIM_INT_ENABLE TRUE#define E_AHI_SPIM_INT_DISABLE FALSE#define E_AHI_SPIM_AUTOSLAVE_ENBL TRUE#define E_AHI_SPIM_AUTOSLAVE_DSABL FALSE#define E_AHI_SPIM_SLAVE_ENBLE_0 0x1#define E_AHI_SPIM_SLAVE_ENBLE_1 0x2#define E_AHI_SPIM_SLAVE_ENBLE_2 0x4#define E_AHI_SPIM_SLAVE_ENBLE_3 0x8#define E_AHI_SI_INT_AL 0x20#define E_AHI_IP_MAX_MSG_SIZE 0x3F#define E_AHI_IP_TXPOS_EDGE FALSE#define E_AHI_IP_TXNEG_EDGE TRUE#define E_AHI_IP_RXPOS_EDGE FALSE#define E_AHI_IP_RXNEG_EDGE TRUE#define E_AHI_IP_BIG_ENDIAN TRUE#define E_AHI_IP_LITTLE_ENDIAN FALSE/* Value enumerations: Timer */#define E_AHI_TIMER_INT_PERIOD 1#define E_AHI_TIMER_INT_RISE 2/* Value enumerations: Tick Timer */#define E_AHI_TICK_TIMER_DISABLE 0x00 /* Disable tick timer */#define E_AHI_TICK_TIMER_RESTART 0x01 /* Restart timer when match occurs */#define E_AHI_TICK_TIMER_STOP 0x02 /* Stop timer when match occurs */#define E_AHI_TICK_TIMER_CONT 0x03 /* Timer does not stop when match occurs *//* Value enumerations: DIO */#define E_AHI_DIO0_INT 0x00000001#define E_AHI_DIO1_INT 0x00000002#define E_AHI_DIO2_INT 0x00000004#define E_AHI_DIO3_INT 0x00000008#define E_AHI_DIO4_INT 0x00000010#define E_AHI_DIO5_INT 0x00000020#define E_AHI_DIO6_INT 0x00000040#define E_AHI_DIO7_INT 0x00000080#define E_AHI_DIO8_INT 0x00000100#define E_AHI_DIO9_INT 0x00000200#define E_AHI_DIO10_INT 0x00000400#define E_AHI_DIO11_INT 0x00000800#define E_AHI_DIO12_INT 0x00001000#define E_AHI_DIO13_INT 0x00002000#define E_AHI_DIO14_INT 0x00004000#define E_AHI_DIO15_INT 0x00008000#define E_AHI_DIO16_INT 0x00010000#define E_AHI_DIO17_INT 0x00020000#define E_AHI_DIO18_INT 0x00040000#define E_AHI_DIO19_INT 0x00080000#define E_AHI_DIO20_INT 0x00100000/* Version number of module */#define AHI_VERSION 0x00010008/****************************************************************************//*** Type Definitions ***//****************************************************************************/#ifndef AHI_DEVICE_ENUM#define AHI_DEVICE_ENUM/* Device types, used to identify interrupt source */typedef enum{ E_AHI_DEVICE_TICK_TIMER = 0, /* Tick timer */ E_AHI_DEVICE_SYSCTRL = 2, /* System controller */ E_AHI_DEVICE_BBC, /* Baseband controller */ E_AHI_DEVICE_AES, /* Encryption engine */ E_AHI_DEVICE_PHYCTRL, /* Phy controller */ E_AHI_DEVICE_UART0, /* UART 0 */ E_AHI_DEVICE_UART1, /* UART 1 */ E_AHI_DEVICE_TIMER0, /* Timer 0 */ E_AHI_DEVICE_TIMER1, /* Timer 1 */ E_AHI_DEVICE_SI, /* Serial Interface (2 wire) */ E_AHI_DEVICE_SPIM, /* SPI master */ E_AHI_DEVICE_INTPER, /* Intelligent peripheral */ E_AHI_DEVICE_ANALOGUE /* Analogue peripherals */} teAHI_Device;/* Individual interrupts */typedef enum{ E_AHI_SYSCTRL_WK0 = 26, /* Wake timer 0 */ E_AHI_SYSCTRL_WK1 = 27 /* Wake timer 1 */} teAHI_Item;#endiftypedef void (*PR_HWINT_APPCALLBACK)(uint32 u32Device, uint32 u32ItemBitmap);typedef uint32 tSpiConfiguration;/****************************************************************************//*** Exported Functions ***//****************************************************************************//****************************************************************************//*** ROM Function Pointer typedefs ***//*** ***//*** These typedefs are used as prototype definitions for the functions ***//*** that live in ROM. ***//****************************************************************************//* Initialisation */typedef uint32 (*tpru32AHI_InitRom)(void);/* System controller */typedef uint8 (*tpru8AHI_PowerStatus)(void);typedef void (*tprvAHI_ProtocolPower)(bool_t);typedef void (*tprvAHI_MemoryHold)(bool_t);typedef void (*tprvAHI_CpuDoze)(void);typedef void (*tprvAHI_PowerDown)(bool_t);typedef void (*tprvAHI_SysCtrlRegisterCallback)(PR_HWINT_APPCALLBACK);/* ADC/DAC */typedef void (*tprvAHI_ApConfigure)( bool_t, bool_t, uint8, uint8, bool_t);typedef bool_t (*tprbAHI_APRegulatorEnabled)(void);typedef void (*tprvAHI_APRegisterCallback)(PR_HWINT_APPCALLBACK);typedef void (*tprvAHI_AdcEnable)(bool_t, bool_t, uint8);typedef void (*tprvAHI_AdcDisable)(void);typedef void (*tprvAHI_AdcStartSample)(void);typedef bool_t (*tprbAHI_AdcPoll)(void);typedef uint16 (*tpru16AHI_AdcRead)(void);typedef void (*tprvAHI_DacEnable)(uint8, bool_t, bool_t, uint16);typedef bool_t (*tprbAHI_DacPoll)(void);typedef void (*tprvAHI_DacOutput)(uint8, uint16);typedef void (*tprvAHI_DacDisable)(uint8);/* Comparators */typedef void (*tprvAHI_ComparatorEnable)(uint8, uint8, uint8);typedef void (*tprvAHI_ComparatorDisable)(uint8);typedef void (*tprvAHI_ComparatorIntEnable)(uint8, bool_t, bool_t);typedef void (*tprvAHI_ComparatorWakeEnable)(uint8, bool_t, bool_t);typedef uint8 (*tpru8AHI_ComparatorStatus)(void);typedef uint8 (*tpru8AHI_ComparatorWakeStatus)(void);/* Wake timers */
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -