📄 app_receiver.c
字号:
sfr IEN2 = 0x9A;sfr S1CON = 0x9B;sbit RFERRIE = 0xA8;sbit URX0IE = 0xAA;sfr SLEEP = 0xBE;sfr U0BUF = 0xC1;sfr U0BAUD = 0xC2;sfr U0UCR = 0xC4;sfr U0GCR = 0xC5;sfr CLKCON = 0xC6;sfr RFD = 0xD9;sfr RFST = 0xE1;sfr T1CNTL = 0xE2;sfr T1CNTH = 0xE3;sbit UTX0IF = 0xE9;sfr RFIF = 0xE9;sfr PERCFG = 0xF1;sfr P1_DIR = 0xFE;sfr P0_ALT = 0xF3;//typedef uint16_t uint16_t xdata;//typedef uint8_t uint8_t xdata;//typedef uint16_t uint16_t code;//typedef uint8_t uint8_t code;enum __nesc_unnamed4259 { CC2430_RFPWR_ADI_RADIO_PD = 0x4, CC2430_RFPWR_RREG_RADIO_PD = 0x3, CC2430_RFPWR_RREG_DELAY = 0x0, CC2430_RFPWR_RREG_DELAY_MASK = 0x7};enum __nesc_unnamed4260 { CC2430_RREG_DELAY_0 = 0x0, CC2430_RREG_DELAY_31 = 0x1, CC2430_RREG_DELAY_63 = 0x2, CC2430_RREG_DELAY_125 = 0x3, CC2430_RREG_DELAY_250 = 0x4, CC2430_RREG_DELAY_500 = 0x5, CC2430_RREG_DELAY_1000 = 0x6, CC2430_RREG_DELAY_2000 = 0x7};enum __nesc_unnamed4261 { CC2430_MDMCTRL0L_AUTOCRC = 0x5, CC2430_MDMCTRL0L_AUTOACK = 0x4};enum __nesc_unnamed4262 { CC2430_MDMCTRL0H_FRAME_FILT = 0x6, CC2430_MDMCTRL0H_RESERVED_FRAME_MODE = 0x5, CC2430_MDMCTRL0H_PAN_COORDINATOR = 0x4, CC2430_MDMCTRL0H_ADDR_DECODE = 0x3, CC2430_MDMCTRL0H_CCA_HYST = 0x0};enum __nesc_unnamed4263 { CC2430_RFSTATUS_TX_ACTIVE = 0x4, CC2430_RFSTATUS_FIFO = 0x3, CC2430_RFSTATUS_FIFOP = 0x2, CC2430_RFSTATUS_SFD = 0x1, CC2430_RFSTATUS_CCA = 0x0};typedef uint8_t __nesc_atomic_t;static /*inline*/ void __nesc_disable_interrupt(void);static /*inline*/ void __nesc_enable_interrupt(void); /*inline*/ __nesc_atomic_t __nesc_atomic_start(void ) ; /*inline*/ void __nesc_atomic_end(__nesc_atomic_t oldSreg) ;enum __nesc_unnamed4264 { CC2430_SLEEP_OSC32K_CALDIS = 7, CC2430_SLEEP_XOSC_STB = 6, CC2430_SLEEP_HFRC_STB = 5, CC2430_SLEEP_DIV = 3, CC2430_SLEEP_OSC_PD = 2, CC2430_SLEEP_MODE = 0, CC2430_SLEEP_MODE_MASK = 3};enum __nesc_unnamed4265 { CC2430_SLEEP_POWERMODE_0 = 0, CC2430_SLEEP_POWERMODE_1 = 1, CC2430_SLEEP_POWERMODE_2 = 2, CC2430_SLEEP_POWERMODE_3 = 3};enum __nesc_unnamed4266 { CC2430_CLKCON_OSC32K = 7, CC2430_CLKCON_OSC = 6, CC2430_CLKCON_TICKSPD = 3, CC2430_CLKCON_CLKSPD = 0, CC2430_CLKCON_TICKSPD_MASK = 0x38};enum cc2430_tick_spd_t { CC2430_TICKF_DIV_1 = 0x0 << CC2430_CLKCON_TICKSPD, CC2430_TICKF_DIV_2 = 0x1 << CC2430_CLKCON_TICKSPD, CC2430_TICKF_DIV_4 = 0x2 << CC2430_CLKCON_TICKSPD, CC2430_TICKF_DIV_8 = 0x3 << CC2430_CLKCON_TICKSPD, CC2430_TICKF_DIV_16 = 0x4 << CC2430_CLKCON_TICKSPD, CC2430_TICKF_DIV_32 = 0x5 << CC2430_CLKCON_TICKSPD, CC2430_TICKF_DIV_64 = 0x6 << CC2430_CLKCON_TICKSPD, CC2430_TICKF_DIV_128 = 0x7 << CC2430_CLKCON_TICKSPD};enum __nesc_unnamed4267 { CC2430_T1CTL_CH2IF = 0x7, CC2430_T1CTL_CH1IF = 0x6, CC2430_T1CTL_CH0IF = 0x5, CC2430_T1CTL_OVFIF = 0x4, CC2430_T1CTL_DIV = 0x2, CC2430_T1CTL_MODE = 0x0, CC2430_T1CTL_MODE_MASK = 0x3, CC2430_T1CTL_DIV_MASK = 0xc, CC2430_T1CTL_IF_MASK = 0xf0};enum cc2430_timer1_mode_t { CC2430_TIMER1_MODE_OFF = 0x0 << CC2430_T1CTL_MODE, CC2430_TIMER1_MODE_FREE = 0x1 << CC2430_T1CTL_MODE, CC2430_TIMER1_MODE_MODULO = 0x2 << CC2430_T1CTL_MODE, CC2430_TIMER1_MODE_UPDOWN = 0x3 << CC2430_T1CTL_MODE};enum cc2430_timer1_if_t { CC2430_T1_CH2IF = 1 << CC2430_T1CTL_CH2IF, CC2430_T1_CH1IF = 1 << CC2430_T1CTL_CH1IF, CC2430_T1_CH0IF = 1 << CC2430_T1CTL_CH0IF, CC2430_T1_OVFIF = 1 << CC2430_T1CTL_OVFIF};enum cc2430_timer1_prescaler_t { CC2430_TIMER1_DIV_1 = 0x0 << CC2430_T1CTL_DIV, CC2430_TIMER1_DIV_8 = 0x1 << CC2430_T1CTL_DIV, CC2430_TIMER1_DIV_32 = 0x2 << CC2430_T1CTL_DIV, CC2430_TIMER1_DIV_128 = 0x3 << CC2430_T1CTL_DIV};enum __nesc_unnamed4268 { CC2430_T1CCTLx_CPSEL = 0x7, CC2430_T1CCTLx_IM = 0x6, CC2430_T1CCTLx_CMP = 0x3, CC2430_T1CCTLx_MODE = 0x2, CC2430_T1CCTLx_CAP = 0x0};enum cc2430_timerMAC_mode_t { CC2430_TIMERMAC_MODE_IDLE = 0x0, CC2430_TIMERMAC_MODE_RUN = 0x1};enum cc2430_timerMAC_T2CNF_t { CC2430_T2CNF_CMPIF = 0x7, CC2430_T2CNF_PERIF = 0x6, CC2430_T2CNF_OFCMPIF = 0x5, CC2430_T2CNF_CMSEL = 0x3, CC2430_T2CNF_SYNC = 0x1, CC2430_T2CNF_RUN = 0x0};enum cc2430_timerMAC_T2PEROF2_t { CC2430_T2PEROF2_CMPIM = 0x7, CC2430_T2PEROF2_PERIM = 0x6, CC2430_T2PEROF2_OFCMPIM = 0x5};enum cc2430_timerMAC_if_t { CC2430_TMAC_CMPIF = 1 << CC2430_T2CNF_CMPIF, CC2430_TMAC_PERIF = 1 << CC2430_T2CNF_PERIF, CC2430_TMAC_OFCMPIF = 1 << CC2430_T2CNF_OFCMPIF};enum cc2430_timerMAC_interval_t { CC2430_TIMERWDT_32768 = 0, CC2430_TIMERWDT_8192 = 1, CC2430_TIMERWDT_512 = 2, CC2430_TIMERWDT_64 = 3};enum __nesc_unnamed4269 { CC2430_TIMIF_OVFIM = 0x6};enum cc2430_timer34_if_t { CC2430_TIMIF_T4CH1IF = 0x5, CC2430_TIMIF_T4CH0IF = 0x4, CC2430_TIMIF_T4OVFIF = 0x3, CC2430_TIMIF_T3CH1IF = 0x2, CC2430_TIMIF_T3CH0IF = 0x1, CC2430_TIMIF_T3OVFIF = 0x0};enum cc2430_timer3_4_mode_t { CC2430_TIMER3_4_MODE_FREE = 0x0, CC2430_TIMER3_4_MODE_DOWN = 0x1, CC2430_TIMER3_4_MODE_MODULO = 0x2, CC2430_TIMER3_4_MODE_UPDOWN = 0x3};enum __nesc_unnamed4270 { CC2430_T34CTL_DIV = 0x5, CC2430_T34CTL_START = 0x4, CC2430_T34CTL_OVFIM = 0x3, CC2430_T34CTL_WDTIF = 0x3, CC2430_T34CTL_CLR = 0x2, CC2430_T34CTL_MODE = 0x0, CC2430_T34CTL_MODE_MASK = 0x3, CC2430_T34CTL_DIV_MASK = 0xe0};enum cc2430_timer3_4_prescaler_t { CC2430_TIMER3_4_DIV_1 = 0x0 << CC2430_T34CTL_DIV, CC2430_TIMER3_4_DIV_2 = 0x1 << CC2430_T34CTL_DIV, CC2430_TIMER3_4_DIV_4 = 0x2 << CC2430_T34CTL_DIV, CC2430_TIMER3_4_DIV_8 = 0x3 << CC2430_T34CTL_DIV, CC2430_TIMER3_4_DIV_16 = 0x4 << CC2430_T34CTL_DIV, CC2430_TIMER3_4_DIV_32 = 0x5 << CC2430_T34CTL_DIV, CC2430_TIMER3_4_DIV_64 = 0x6 << CC2430_T34CTL_DIV, CC2430_TIMER3_4_DIV_128 = 0x7 << CC2430_T34CTL_DIV};enum __nesc_unnamed4271 { CC2430_WDCTL_CLR = 0x4, CC2430_WDCTL_EN = 0x3, CC2430_WDCTL_MODE = 0x2, CC2430_WDCTL_INT = 0x0, CC2430_WDCTL_INT_MASK = 0x3};enum cc2430_timerWDT_mode_t { CC2430_TIMERWDT_MODE_WDT = 0x0 << CC2430_WDCTL_MODE, CC2430_TIMERWDT_MODE_TIMER = 0x1 << CC2430_WDCTL_MODE};typedef uint8_t TMilli;typedef uint8_t T32khz;typedef uint8_t TMicro;typedef uint16_t mac_addr_t;typedef uint8_t ieee_mac_addr_t[8];enum fcf_stuff { FCF_FT_BEACON = 0x0000, FCF_FT_DATA = 0x0001, FCF_FT_ACK = 0x0002, FCF_FT_MAC_COMMAND = 0x0003, FCF_FT_MASK = 0x0007, FCF_SECENC = 0x0008, FCF_FRAMEPENDING = 0x0010, FCF_ACKREQ = 0x0020, FCF_INTRAPAN = 0x0040, FCF_DST_NO_ADDR = 0x0000, FCF_DST_SHORT_ADDR = 0x0800, FCF_DST_LONG_ADDR = 0x0C00, FCF_DST_ADDR_MASK = 0x0C00, FCF_SRC_NO_ADDR = 0x0000, FCF_SRC_SHORT_ADDR = 0x8000, FCF_SRC_LONG_ADDR = 0xC000, FCF_SRC_ADDR_MASK = 0xC000, FCS_CRC_OK_MASK = 0x80, FCS_CORRELATION_MASK = 0x7F};typedef struct __nesc_unnamed4272 { int8_t rssi; uint8_t correlation;} fsc_t;struct packet { uint8_t length; uint16_t fcf; uint8_t _data_seq_no; mac_addr_t dest; mac_addr_t src; uint8_t _data[122 - 2 * sizeof(mac_addr_t )]; fsc_t fcs;} /*__attribute((packed))*/ ;typedef struct packet packet_t;enum __nesc_unnamed4273 { LEDS_LED0 = 1 << 0, LEDS_LED1 = 1 << 1, LEDS_LED2 = 1 << 2, LEDS_LED3 = 1 << 3, LEDS_LED4 = 1 << 4, LEDS_LED5 = 1 << 5, LEDS_LED6 = 1 << 6, LEDS_LED7 = 1 << 7};typedef uint8_t cc2420_status_t;typedef nx_struct cc2420_header_t { nxle_uint8_t length; nxle_uint16_t fcf; nxle_uint8_t dsn; nxle_uint16_t destpan; nxle_uint16_t dest; nxle_uint16_t src; nxle_uint8_t type;} /*__attribute__((packed))*/ cc2420_header_t;typedef nx_struct cc2420_footer_t { nxle_uint8_t i;} /*__attribute__((packed))*/ cc2420_footer_t;typedef nx_struct cc2420_meta_data_t { nx_uint8_t tx_power; nx_uint8_t rssi; nx_uint8_t lqi; nx_bool crc; nx_bool ack; nx_uint16_t time;} /*__attribute__((packed))*/ cc2420_meta_data_t;typedef nx_struct cc2420_packet_t { cc2420_header_t packet; nx_uint8_t _data[42];} /*__attribute__((packed))*/ cc2420_packet_t;enum __nesc_unnamed4274 { MAC_HEADER_SIZE = sizeof(cc2420_header_t ) - 1, MAC_FOOTER_SIZE = sizeof(uint16_t ), MAC_PACKET_SIZE = MAC_HEADER_SIZE + 28 + MAC_FOOTER_SIZE};enum cc2420_enums { CC2420_TIME_ACK_TURNAROUND = 7, CC2420_TIME_VREN = 20, CC2420_TIME_SYMBOL = 2, CC2420_BACKOFF_PERIOD = 20 / CC2420_TIME_SYMBOL, CC2420_ACK_WAIT_DELAY = 128};enum cc2420_status_enums { CC2420_STATUS_RSSI_VALID = 1 << 1, CC2420_STATUS_LOCK = 1 << 2, CC2420_STATUS_TX_ACTIVE = 1 << 3, CC2420_STATUS_ENC_BUSY = 1 << 4, CC2420_STATUS_TX_UNDERFLOW = 1 << 5, CC2420_STATUS_XOSC16M_STABLE = 1 << 6};enum cc2420_config_reg_enums { CC2420_SNOP = 0x00, CC2420_SXOSCON = 0x01, CC2420_STXCAL = 0x02, CC2420_SRXON = 0x03, CC2420_STXON = 0x04, CC2420_STXONCCA = 0x05, CC2420_SRFOFF = 0x06, CC2420_SXOSCOFF = 0x07, CC2420_SFLUSHRX = 0x08, CC2420_SFLUSHTX = 0x09, CC2420_SACK = 0x0a, CC2420_SACKPEND = 0x0b, CC2420_SRXDEC = 0x0c, CC2420_SRXENC = 0x0d, CC2420_SAES = 0x0e, CC2420_MAIN = 0x10, CC2420_MDMCTRL0 = 0x11, CC2420_MDMCTRL1 = 0x12, CC2420_RSSI = 0x13, CC2420_SYNCWORD = 0x14, CC2420_TXCTRL = 0x15, CC2420_RXCTRL0 = 0x16, CC2420_RXCTRL1 = 0x17, CC2420_FSCTRL = 0x18, CC2420_SECCTRL0 = 0x19, CC2420_SECCTRL1 = 0x1a, CC2420_BATTMON = 0x1b, CC2420_IOCFG0 = 0x1c, CC2420_IOCFG1 = 0x1d, CC2420_MANFIDL = 0x1e, CC2420_MANFIDH = 0x1f, CC2420_FSMTC = 0x20, CC2420_MANAND = 0x21, CC2420_MANOR = 0x22, CC2420_AGCCTRL = 0x23, CC2420_AGCTST0 = 0x24, CC2420_AGCTST1 = 0x25, CC2420_AGCTST2 = 0x26, CC2420_FSTST0 = 0x27, CC2420_FSTST1 = 0x28, CC2420_FSTST2 = 0x29, CC2420_FSTST3 = 0x2a, CC2420_RXBPFTST = 0x2b, CC2420_FMSTATE = 0x2c, CC2420_ADCTST = 0x2d, CC2420_DACTST = 0x2e, CC2420_TOPTST = 0x2f, CC2420_TXFIFO = 0x3e, CC2420_RXFIFO = 0x3f};enum cc2420_ram_addr_enums { CC2420_RAM_TXFIFO = 0x000, CC2420_RAM_RXFIFO = 0x080, CC2420_RAM_KEY0 = 0x100, CC2420_RAM_RXNONCE = 0x110, CC2420_RAM_SABUF = 0x120, CC2420_RAM_KEY1 = 0x130, CC2420_RAM_TXNONCE = 0x140, CC2420_RAM_CBCSTATE = 0x150, CC2420_RAM_IEEEADR = 0x160, CC2420_RAM_PANID = 0x168, CC2420_RAM_SHORTADR = 0x16a};enum cc2420_nonce_enums { CC2420_NONCE_BLOCK_COUNTER = 0, CC2420_NONCE_KEY_SEQ_COUNTER = 2, CC2420_NONCE_FRAME_COUNTER = 3, CC2420_NONCE_SOURCE_ADDRESS = 7, CC2420_NONCE_FLAGS = 15};enum cc2420_main_enums { CC2420_MAIN_RESETn = 15, CC2420_MAIN_ENC_RESETn = 14, CC2420_MAIN_DEMOD_RESETn = 13, CC2420_MAIN_MOD_RESETn = 12, CC2420_MAIN_FS_RESETn = 11, CC2420_MAIN_XOSC16M_BYPASS = 0};enum cc2420_mdmctrl0_enums { CC2420_MDMCTRL0_RESERVED_FRAME_MODE = 13, CC2420_MDMCTRL0_PAN_COORDINATOR = 12, CC2420_MDMCTRL0_ADR_DECODE = 11, CC2420_MDMCTRL0_CCA_HYST = 8, CC2420_MDMCTRL0_CCA_MOD = 6, CC2420_MDMCTRL0_AUTOCRC = 5, CC2420_MDMCTRL0_AUTOACK = 4, CC2420_MDMCTRL0_PREAMBLE_LENGTH = 0};enum cc2420_mdmctrl1_enums { CC2420_MDMCTRL1_CORR_THR = 6, CC2420_MDMCTRL1_DEMOD_AVG_MODE = 5, CC2420_MDMCTRL1_MODULATION_MODE = 4, CC2420_MDMCTRL1_TX_MODE = 2, CC2420_MDMCTRL1_RX_MODE = 0};enum cc2420_rssi_enums { CC2420_RSSI_CCA_THR = 8, CC2420_RSSI_RSSI_VAL = 0};enum cc2420_syncword_enums { CC2420_SYNCWORD_SYNCWORD = 0};enum cc2420_txctrl_enums { CC2420_TXCTRL_TXMIXBUF_CUR = 14, CC2420_TXCTRL_TX_TURNAROUND = 13, CC2420_TXCTRL_TXMIX_CAP_ARRAY = 11, CC2420_TXCTRL_TXMIX_CURRENT = 9, CC2420_TXCTRL_PA_CURRENT = 6, CC2420_TXCTRL_RESERVED = 5, CC2420_TXCTRL_PA_LEVEL = 0};enum cc2420_rxctrl0_enums { CC2420_RXCTRL0_RXMIXBUF_CUR = 12, CC2420_RXCTRL0_HIGH_LNA_GAIN = 10, CC2420_RXCTRL0_MED_LNA_GAIN = 8, CC2420_RXCTRL0_LOW_LNA_GAIN = 6, CC2420_RXCTRL0_HIGH_LNA_CURRENT = 4, CC2420_RXCTRL0_MED_LNA_CURRENT = 2, CC2420_RXCTRL0_LOW_LNA_CURRENT = 0};enum cc2420_rxctrl1_enums { CC2420_RXCTRL1_RXBPF_LOCUR = 13, CC2420_RXCTRL1_RXBPF_MIDCUR = 12, CC2420_RXCTRL1_LOW_LOWGAIN = 11, CC2420_RXCTRL1_MED_LOWGAIN = 10, CC2420_RXCTRL1_HIGH_HGM = 9, CC2420_RXCTRL1_MED_HGM = 8, CC2420_RXCTRL1_LNA_CAP_ARRAY = 6, CC2420_RXCTRL1_RXMIX_TAIL = 4, CC2420_RXCTRL1_RXMIX_VCM = 2, CC2420_RXCTRL1_RXMIX_CURRENT = 0};enum cc2420_rsctrl_enums { CC2420_FSCTRL_LOCK_THR = 14, CC2420_FSCTRL_CAL_DONE = 13, CC2420_FSCTRL_CAL_RUNNING = 12, CC2420_FSCTRL_LOCK_LENGTH = 11, CC2420_FSCTRL_LOCK_STATUS = 10, CC2420_FSCTRL_FREQ = 0};enum cc2420_secctrl0_enums {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -