12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073 |
- #ifndef NRF_NFCT_H__
- #define NRF_NFCT_H__
- #include <nrfx.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define NRF_NFCT_CRC_SIZE 2
- #define NRF_NFCT_DISABLE_ALL_INT 0xFFFFFFFF
- typedef enum
- {
- NRF_NFCT_TASK_ACTIVATE = offsetof(NRF_NFCT_Type, TASKS_ACTIVATE),
- NRF_NFCT_TASK_DISABLE = offsetof(NRF_NFCT_Type, TASKS_DISABLE),
- NRF_NFCT_TASK_SENSE = offsetof(NRF_NFCT_Type, TASKS_SENSE),
- NRF_NFCT_TASK_STARTTX = offsetof(NRF_NFCT_Type, TASKS_STARTTX),
- NRF_NFCT_TASK_ENABLERXDATA = offsetof(NRF_NFCT_Type, TASKS_ENABLERXDATA),
- NRF_NFCT_TASK_GOIDLE = offsetof(NRF_NFCT_Type, TASKS_GOIDLE),
- NRF_NFCT_TASK_GOSLEEP = offsetof(NRF_NFCT_Type, TASKS_GOSLEEP),
- } nrf_nfct_task_t;
- typedef enum
- {
- NRF_NFCT_EVENT_READY = offsetof(NRF_NFCT_Type, EVENTS_READY),
- NRF_NFCT_EVENT_FIELDDETECTED = offsetof(NRF_NFCT_Type, EVENTS_FIELDDETECTED),
- NRF_NFCT_EVENT_FIELDLOST = offsetof(NRF_NFCT_Type, EVENTS_FIELDLOST),
- NRF_NFCT_EVENT_TXFRAMESTART = offsetof(NRF_NFCT_Type, EVENTS_TXFRAMESTART),
- NRF_NFCT_EVENT_TXFRAMEEND = offsetof(NRF_NFCT_Type, EVENTS_TXFRAMEEND),
- NRF_NFCT_EVENT_RXFRAMESTART = offsetof(NRF_NFCT_Type, EVENTS_RXFRAMESTART),
- NRF_NFCT_EVENT_RXFRAMEEND = offsetof(NRF_NFCT_Type, EVENTS_RXFRAMEEND),
- NRF_NFCT_EVENT_ERROR = offsetof(NRF_NFCT_Type, EVENTS_ERROR),
- NRF_NFCT_EVENT_RXERROR = offsetof(NRF_NFCT_Type, EVENTS_RXERROR),
- NRF_NFCT_EVENT_ENDRX = offsetof(NRF_NFCT_Type, EVENTS_ENDRX),
- NRF_NFCT_EVENT_ENDTX = offsetof(NRF_NFCT_Type, EVENTS_ENDTX),
- NRF_NFCT_EVENT_AUTOCOLRESSTARTED = offsetof(NRF_NFCT_Type, EVENTS_AUTOCOLRESSTARTED),
- NRF_NFCT_EVENT_COLLISION = offsetof(NRF_NFCT_Type, EVENTS_COLLISION),
- NRF_NFCT_EVENT_SELECTED = offsetof(NRF_NFCT_Type, EVENTS_SELECTED),
- NRF_NFCT_EVENT_STARTED = offsetof(NRF_NFCT_Type, EVENTS_STARTED),
- } nrf_nfct_event_t;
- typedef enum
- {
- NRF_NFCT_SHORT_FIELDDETECTED_ACTIVATE_MASK = NFCT_SHORTS_FIELDDETECTED_ACTIVATE_Msk,
- NRF_NFCT_SHORT_FIELDLOST_SENSE_MASK = NFCT_SHORTS_FIELDLOST_SENSE_Msk,
- #if defined(NFCT_SHORTS_TXFRAMEEND_ENABLERXDATA_Msk) || defined(__NRFX_DOXYGEN__)
- NRF_NFCT_SHORT_TXFRAMEEND_ENABLERXDATA_MASK = NFCT_SHORTS_TXFRAMEEND_ENABLERXDATA_Msk,
- #endif
- } nrf_nfct_short_mask_t;
- typedef enum
- {
- NRF_NFCT_INT_READY_MASK = NFCT_INTEN_READY_Msk,
- NRF_NFCT_INT_FIELDDETECTED_MASK = NFCT_INTEN_FIELDDETECTED_Msk,
- NRF_NFCT_INT_FIELDLOST_MASK = NFCT_INTEN_FIELDLOST_Msk,
- NRF_NFCT_INT_TXFRAMESTART_MASK = NFCT_INTEN_TXFRAMESTART_Msk,
- NRF_NFCT_INT_TXFRAMEEND_MASK = NFCT_INTEN_TXFRAMEEND_Msk,
- NRF_NFCT_INT_RXFRAMESTART_MASK = NFCT_INTEN_RXFRAMESTART_Msk,
- NRF_NFCT_INT_RXFRAMEEND_MASK = NFCT_INTEN_RXFRAMEEND_Msk,
- NRF_NFCT_INT_ERROR_MASK = NFCT_INTEN_ERROR_Msk,
- NRF_NFCT_INT_RXERROR_MASK = NFCT_INTEN_RXERROR_Msk,
- NRF_NFCT_INT_ENDRX_MASK = NFCT_INTEN_ENDRX_Msk,
- NRF_NFCT_INT_ENDTX_MASK = NFCT_INTEN_ENDTX_Msk,
- NRF_NFCT_INT_AUTOCOLRESSTARTED_MASK = NFCT_INTEN_AUTOCOLRESSTARTED_Msk,
- NRF_NFCT_INT_COLLISION_MASK = NFCT_INTEN_COLLISION_Msk,
- NRF_NFCT_INT_SELECTED_MASK = NFCT_INTEN_SELECTED_Msk,
- NRF_NFCT_INT_STARTED_MASK = NFCT_INTEN_STARTED_Msk,
- } nrf_nfct_int_mask_t;
- typedef enum
- {
- NRF_NFCT_ERROR_FRAMEDELAYTIMEOUT_MASK = NFCT_ERRORSTATUS_FRAMEDELAYTIMEOUT_Msk,
- #if defined(NFCT_ERRORSTATUS_NFCFIELDTOOSTRONG_Msk) || defined(__NRFX_DOXYGEN__)
- NRF_NFCT_ERROR_NFCFIELDTOOSTRONG_MASK = NFCT_ERRORSTATUS_NFCFIELDTOOSTRONG_Msk,
- #endif
- #if defined(NFCT_ERRORSTATUS_NFCFIELDTOOWEAK_Msk) || defined(__NRFX_DOXYGEN__)
- NRF_NFCT_ERROR_NFCFIELDTOOWEAK_MASK = NFCT_ERRORSTATUS_NFCFIELDTOOWEAK_Msk,
- #endif
- } nrf_nfct_error_status_t;
- typedef enum
- {
- NRF_NFCT_RX_FRAME_STATUS_CRC_MASK = NFCT_FRAMESTATUS_RX_CRCERROR_Msk,
- NRF_NFCT_RX_FRAME_STATUS_PARITY_MASK = NFCT_FRAMESTATUS_RX_PARITYSTATUS_Msk,
- NRF_NFCT_RX_FRAME_STATUS_OVERRUN_MASK = NFCT_FRAMESTATUS_RX_OVERRUN_Msk,
- } nrf_nfct_rx_frame_status_t;
- #if defined(NFCT_NFCTAGSTATE_NFCTAGSTATE_Msk) || defined(__NRFX_DOXYGEN__)
- typedef enum
- {
- NRF_NFCT_TAG_STATE_DISABLED = NFCT_NFCTAGSTATE_NFCTAGSTATE_Disabled,
- NRF_NFCT_TAG_STATE_RAMP_UP = NFCT_NFCTAGSTATE_NFCTAGSTATE_RampUp,
- NRF_NFCT_TAG_STATE_IDLE = NFCT_NFCTAGSTATE_NFCTAGSTATE_Idle,
- NRF_NFCT_TAG_STATE_RECEIVE = NFCT_NFCTAGSTATE_NFCTAGSTATE_Receive,
- NRF_NFCT_TAG_STATE_FRAME_DELAY = NFCT_NFCTAGSTATE_NFCTAGSTATE_FrameDelay,
- NRF_NFCT_TAG_STATE_TRANSMIT = NFCT_NFCTAGSTATE_NFCTAGSTATE_Transmit
- } nrf_nfct_tag_state_t;
- #endif
- #if defined (NFCT_SLEEPSTATE_SLEEPSTATE_Msk) || defined(__NRFX_DOXYGEN__)
- typedef enum
- {
- NRF_NFCT_SLEEP_STATE_IDLE = NFCT_SLEEPSTATE_SLEEPSTATE_Idle,
- NRF_NFCT_SLEEP_STATE_SLEEP_A = NFCT_SLEEPSTATE_SLEEPSTATE_SleepA
- } nrf_nfct_sleep_state_t;
- #endif
- typedef enum
- {
- NRF_NFCT_FIELD_STATE_PRESENT_MASK = NFCT_FIELDPRESENT_FIELDPRESENT_Msk,
- NRF_NFCT_FIELD_STATE_LOCK_MASK = NFCT_FIELDPRESENT_LOCKDETECT_Msk
- } nrf_nfct_field_state_t;
- typedef enum
- {
- NRF_NFCT_FRAME_DELAY_MODE_FREERUN = NFCT_FRAMEDELAYMODE_FRAMEDELAYMODE_FreeRun,
- NRF_NFCT_FRAME_DELAY_MODE_WINDOW = NFCT_FRAMEDELAYMODE_FRAMEDELAYMODE_Window,
- NRF_NFCT_FRAME_DELAY_MODE_EXACTVAL = NFCT_FRAMEDELAYMODE_FRAMEDELAYMODE_ExactVal,
- NRF_NFCT_FRAME_DELAY_MODE_WINDOWGRID = NFCT_FRAMEDELAYMODE_FRAMEDELAYMODE_WindowGrid
- } nrf_nfct_frame_delay_mode_t;
- typedef enum
- {
- NRF_NFCT_TX_FRAME_CONFIG_PARITY = NFCT_TXD_FRAMECONFIG_PARITY_Msk,
- NRF_NFCT_TX_FRAME_CONFIG_DISCARD_START = NFCT_TXD_FRAMECONFIG_DISCARDMODE_Msk,
- NRF_NFCT_TX_FRAME_CONFIG_SOF = NFCT_TXD_FRAMECONFIG_SOF_Msk,
- NRF_NFCT_TX_FRAME_CONFIG_CRC16 = NFCT_TXD_FRAMECONFIG_CRCMODETX_Msk
- } nrf_nfct_tx_frame_config_t;
- typedef enum
- {
- NRF_NFCT_RX_FRAME_CONFIG_PARITY = NFCT_RXD_FRAMECONFIG_PARITY_Msk,
- NRF_NFCT_RX_FRAME_CONFIG_SOF = NFCT_RXD_FRAMECONFIG_SOF_Msk,
- NRF_NFCT_RX_FRAME_CONFIG_CRC16 = NFCT_RXD_FRAMECONFIG_CRCMODERX_Msk
- } nrf_nfct_rx_frame_config_t;
- typedef enum
- {
- NRF_NFCT_SENSRES_NFCID1_SIZE_SINGLE =
- NFCT_SENSRES_NFCIDSIZE_NFCID1Single << NFCT_SENSRES_NFCIDSIZE_Pos,
- NRF_NFCT_SENSRES_NFCID1_SIZE_DOUBLE =
- NFCT_SENSRES_NFCIDSIZE_NFCID1Double << NFCT_SENSRES_NFCIDSIZE_Pos,
- NRF_NFCT_SENSRES_NFCID1_SIZE_TRIPLE =
- NFCT_SENSRES_NFCIDSIZE_NFCID1Triple << NFCT_SENSRES_NFCIDSIZE_Pos,
- NRF_NFCT_SENSRES_NFCID1_SIZE_DEFAULT =
- NFCT_SENSRES_NFCIDSIZE_Msk
- } nrf_nfct_sensres_nfcid1_size_t;
- typedef enum
- {
- NRF_NFCT_SENSRES_BIT_FRAME_SDD_00000 =
- NFCT_SENSRES_BITFRAMESDD_SDD00000 << NFCT_SENSRES_BITFRAMESDD_Pos,
- NRF_NFCT_SENSRES_BIT_FRAME_SDD_00001 =
- NFCT_SENSRES_BITFRAMESDD_SDD00001 << NFCT_SENSRES_BITFRAMESDD_Pos,
- NRF_NFCT_SENSRES_BIT_FRAME_SDD_00010 =
- NFCT_SENSRES_BITFRAMESDD_SDD00010 << NFCT_SENSRES_BITFRAMESDD_Pos,
- NRF_NFCT_SENSRES_BIT_FRAME_SDD_00100 =
- NFCT_SENSRES_BITFRAMESDD_SDD00100 << NFCT_SENSRES_BITFRAMESDD_Pos,
- NRF_NFCT_SENSRES_BIT_FRAME_SDD_01000 =
- NFCT_SENSRES_BITFRAMESDD_SDD01000 << NFCT_SENSRES_BITFRAMESDD_Pos,
- NRF_NFCT_SENSRES_BIT_FRAME_SDD_10000 =
- NFCT_SENSRES_BITFRAMESDD_SDD10000 << NFCT_SENSRES_BITFRAMESDD_Pos
- } nrf_nfct_sensres_bit_frame_sdd_t;
- typedef enum
- {
-
- NRF_NFCT_SENSRES_PLATFORM_CONFIG_T1T = 6 << NFCT_SENSRES_PLATFCONFIG_Pos,
-
- NRF_NFCT_SENSRES_PLATFORM_CONFIG_OTHER = 0 << NFCT_SENSRES_PLATFCONFIG_Pos
- } nrf_nfct_sensres_platform_config_t;
- typedef enum
- {
- NRF_NFCT_SELRES_CASCADE_MASK = NFCT_SELRES_CASCADE_Msk,
- NRF_NFCT_SELRES_PROTOCOL_MASK = NFCT_SELRES_PROTOCOL_Msk
- } nrf_nfct_selres_t;
- typedef enum
- {
- NRF_NFCT_SELRES_PROTOCOL_T2T = 0,
- NRF_NFCT_SELRES_PROTOCOL_T4AT = 1,
- NRF_NFCT_SELRES_PROTOCOL_NFCDEP = 2,
- NRF_NFCT_SELRES_PROTOCOL_NFCDEP_T4AT = 3,
- } nrf_nfct_selres_protocol_t;
- __STATIC_INLINE void nrf_nfct_task_trigger(nrf_nfct_task_t task);
- __STATIC_INLINE uint32_t nrf_nfct_task_address_get(nrf_nfct_task_t task);
- __STATIC_INLINE void nrf_nfct_event_clear(nrf_nfct_event_t event);
- __STATIC_INLINE bool nrf_nfct_event_check(nrf_nfct_event_t event);
- __STATIC_INLINE uint32_t nrf_nfct_event_address_get(nrf_nfct_event_t event);
- __STATIC_INLINE void nrf_nfct_shorts_enable(uint32_t short_mask);
- __STATIC_INLINE void nrf_nfct_shorts_disable(uint32_t short_mask);
- __STATIC_INLINE uint32_t nrf_nfct_shorts_get(void);
- __STATIC_INLINE void nrf_nfct_shorts_set(uint32_t short_mask);
- __STATIC_INLINE void nrf_nfct_int_enable(uint32_t int_mask);
- __STATIC_INLINE bool nrf_nfct_int_enable_check(uint32_t int_mask);
- __STATIC_INLINE uint32_t nrf_nfct_int_enable_get(void);
- __STATIC_INLINE void nrf_nfct_int_disable(uint32_t int_mask);
- __STATIC_INLINE uint32_t nrf_nfct_error_status_get(void);
- __STATIC_INLINE void nrf_nfct_error_status_clear(uint32_t error_flag);
- __STATIC_INLINE uint32_t nrf_nfct_rx_frame_status_get(void);
- __STATIC_INLINE void nrf_nfct_rx_frame_status_clear(uint32_t framestatus_flags);
- #if defined(NFCT_NFCTAGSTATE_NFCTAGSTATE_Msk) || defined(__NRFX_DOXYGEN__)
- __STATIC_INLINE nrf_nfct_tag_state_t nrf_nfct_tag_state_get(void);
- #endif
- #if defined (NFCT_SLEEPSTATE_SLEEPSTATE_Msk) || defined(__NRFX_DOXYGEN__)
- __STATIC_INLINE nrf_nfct_sleep_state_t nrf_nfct_sleep_state_get(void);
- #endif
- __STATIC_INLINE uint8_t nrf_nfct_field_status_get(void);
- __STATIC_INLINE uint16_t nrf_nfct_frame_delay_min_get(void);
- __STATIC_INLINE void nrf_nfct_frame_delay_min_set(uint16_t frame_delay_min);
- __STATIC_INLINE uint32_t nrf_nfct_frame_delay_max_get(void);
- __STATIC_INLINE void nrf_nfct_frame_delay_max_set(uint32_t frame_delay_max);
- __STATIC_INLINE nrf_nfct_frame_delay_mode_t nrf_nfct_frame_delay_mode_get(void);
- __STATIC_INLINE void nrf_nfct_frame_delay_mode_set(nrf_nfct_frame_delay_mode_t frame_delay_mode);
- __STATIC_INLINE uint8_t * nrf_nfct_rxtx_buffer_get(void);
- __STATIC_INLINE void nrf_nfct_rxtx_buffer_set(uint8_t * p_rxtx_buf,
- uint16_t max_txrx_len);
- __STATIC_INLINE uint16_t nrf_nfct_max_rxtx_length_get(void);
- __STATIC_INLINE uint8_t nrf_nfct_tx_frame_config_get(void);
- __STATIC_INLINE void nrf_nfct_tx_frame_config_set(uint8_t flags);
- __STATIC_INLINE uint16_t nrf_nfct_tx_bits_get(void);
- __STATIC_INLINE void nrf_nfct_tx_bits_set(uint16_t tx_bits);
- __STATIC_INLINE uint8_t nrf_nfct_rx_frame_config_get(void);
- __STATIC_INLINE void nrf_nfct_rx_frame_config_set(uint8_t flags);
- __STATIC_INLINE uint16_t nrf_nfct_rx_bits_get(bool crc_excluded);
- __STATIC_INLINE nrf_nfct_sensres_nfcid1_size_t nrf_nfct_nfcid1_get(uint8_t * p_nfcid1_buf);
- __STATIC_INLINE void nrf_nfct_nfcid1_set(uint8_t const * p_nfcid1_buf,
- nrf_nfct_sensres_nfcid1_size_t nfcid1_size);
- #if defined (NFCT_AUTOCOLRESCONFIG_MODE_Msk) || defined(__NRFX_DOXYGEN__)
- __STATIC_INLINE bool nrf_nfct_autocolres_is_enabled(void);
- __STATIC_INLINE void nrf_nfct_autocolres_enable(void);
- __STATIC_INLINE void nrf_nfct_autocolres_disable(void);
- #endif
- __STATIC_INLINE nrf_nfct_sensres_nfcid1_size_t nrf_nfct_sensres_nfcid1_size_get(void);
- __STATIC_INLINE void nrf_nfct_sensres_nfcid1_size_set(nrf_nfct_sensres_nfcid1_size_t nfcid1_size);
- __STATIC_INLINE nrf_nfct_sensres_bit_frame_sdd_t nrf_nfct_sensres_bit_frame_sdd_get(void);
- __STATIC_INLINE void nrf_nfct_sensres_bit_frame_sdd_set(nrf_nfct_sensres_bit_frame_sdd_t bit_frame_sdd);
- __STATIC_INLINE nrf_nfct_sensres_platform_config_t nrf_nfct_sensres_platform_config_get(void);
- __STATIC_INLINE void nrf_nfct_sensres_platform_config_set(nrf_nfct_sensres_platform_config_t platform_config);
- __STATIC_INLINE bool nrf_nfct_selsres_cascade_check(void);
- __STATIC_INLINE nrf_nfct_selres_protocol_t nrf_nfct_selsres_protocol_get(void);
- __STATIC_INLINE void nrf_nfct_selres_protocol_set(nrf_nfct_selres_protocol_t sel_res_protocol);
- #ifndef SUPPRESS_INLINE_IMPLEMENTATION
- __STATIC_INLINE void nrf_nfct_task_trigger(nrf_nfct_task_t task)
- {
- *((volatile uint32_t *)((uint8_t *)NRF_NFCT + (uint32_t)task)) = 1UL;
- }
- __STATIC_INLINE uint32_t nrf_nfct_task_address_get(nrf_nfct_task_t task)
- {
- return (uint32_t)((uint8_t *)NRF_NFCT + (uint32_t)task);
- }
- __STATIC_INLINE void nrf_nfct_event_clear(nrf_nfct_event_t event)
- {
- *((volatile uint32_t *)((uint8_t *)NRF_NFCT + (uint32_t)event)) = 0UL;
- __DSB();
- }
- __STATIC_INLINE bool nrf_nfct_event_check(nrf_nfct_event_t event)
- {
- return (bool)*(volatile const uint32_t *)((uint8_t *)NRF_NFCT + (uint32_t)event);
- }
- __STATIC_INLINE uint32_t nrf_nfct_event_address_get(nrf_nfct_event_t event)
- {
- return (uint32_t)((uint8_t *)NRF_NFCT + (uint32_t)event);
- }
- __STATIC_INLINE void nrf_nfct_shorts_enable(uint32_t short_mask)
- {
- NRF_NFCT->SHORTS |= short_mask;
- }
- __STATIC_INLINE void nrf_nfct_shorts_disable(uint32_t short_mask)
- {
- NRF_NFCT->SHORTS &= ~short_mask;
- }
- __STATIC_INLINE uint32_t nrf_nfct_shorts_get(void)
- {
- return NRF_NFCT->SHORTS;
- }
- __STATIC_INLINE void nrf_nfct_shorts_set(uint32_t short_mask)
- {
- NRF_NFCT->SHORTS = short_mask;
- }
- __STATIC_INLINE void nrf_nfct_int_enable(uint32_t int_mask)
- {
- NRF_NFCT->INTENSET = int_mask;
- }
- __STATIC_INLINE bool nrf_nfct_int_enable_check(uint32_t int_mask)
- {
- return (bool)(NRF_NFCT->INTENSET & int_mask);
- }
- __STATIC_INLINE uint32_t nrf_nfct_int_enable_get(void)
- {
- return NRF_NFCT->INTENSET;
- }
- __STATIC_INLINE void nrf_nfct_int_disable(uint32_t int_mask)
- {
- NRF_NFCT->INTENCLR = int_mask;
- }
- __STATIC_INLINE uint32_t nrf_nfct_error_status_get(void)
- {
- return NRF_NFCT->ERRORSTATUS;
- }
- __STATIC_INLINE void nrf_nfct_error_status_clear(uint32_t error_flags)
- {
- NRF_NFCT->ERRORSTATUS = error_flags;
- }
- __STATIC_INLINE uint32_t nrf_nfct_rx_frame_status_get(void)
- {
- return NRF_NFCT->FRAMESTATUS.RX;
- }
- __STATIC_INLINE void nrf_nfct_rx_frame_status_clear(uint32_t framestatus_flags)
- {
- NRF_NFCT->FRAMESTATUS.RX = framestatus_flags;
- }
- #if defined(NFCT_NFCTAGSTATE_NFCTAGSTATE_Msk) || defined(__NRFX_DOXYGEN__)
- __STATIC_INLINE nrf_nfct_tag_state_t nrf_nfct_tag_state_get(void)
- {
- return (nrf_nfct_tag_state_t)((NRF_NFCT->NFCTAGSTATE & NFCT_NFCTAGSTATE_NFCTAGSTATE_Msk) >>
- NFCT_NFCTAGSTATE_NFCTAGSTATE_Pos);
- }
- #endif
- #if defined (NFCT_SLEEPSTATE_SLEEPSTATE_Msk) || defined(__NRFX_DOXYGEN__)
- __STATIC_INLINE nrf_nfct_sleep_state_t nrf_nfct_sleep_state_get(void)
- {
- return (nrf_nfct_sleep_state_t)((NRF_NFCT->SLEEPSTATE & NFCT_SLEEPSTATE_SLEEPSTATE_Msk) >>
- NFCT_SLEEPSTATE_SLEEPSTATE_Pos);
- }
- #endif
- __STATIC_INLINE uint8_t nrf_nfct_field_status_get(void)
- {
- return (uint8_t)(NRF_NFCT->FIELDPRESENT);
- }
- __STATIC_INLINE uint16_t nrf_nfct_frame_delay_min_get(void)
- {
- return (uint16_t)((NRF_NFCT->FRAMEDELAYMIN & NFCT_FRAMEDELAYMIN_FRAMEDELAYMIN_Msk) >>
- NFCT_FRAMEDELAYMIN_FRAMEDELAYMIN_Pos);
- }
- __STATIC_INLINE void nrf_nfct_frame_delay_min_set(uint16_t frame_delay_min)
- {
- NRF_NFCT->FRAMEDELAYMIN =
- ((uint32_t)frame_delay_min << NFCT_FRAMEDELAYMIN_FRAMEDELAYMIN_Pos) &
- NFCT_FRAMEDELAYMIN_FRAMEDELAYMIN_Msk;
- }
- __STATIC_INLINE uint32_t nrf_nfct_frame_delay_max_get(void)
- {
- return (NRF_NFCT->FRAMEDELAYMAX & NFCT_FRAMEDELAYMAX_FRAMEDELAYMAX_Msk) >>
- NFCT_FRAMEDELAYMAX_FRAMEDELAYMAX_Pos;
- }
- __STATIC_INLINE void nrf_nfct_frame_delay_max_set(uint32_t frame_delay_max)
- {
- NRF_NFCT->FRAMEDELAYMAX =
- ((uint32_t)frame_delay_max << NFCT_FRAMEDELAYMAX_FRAMEDELAYMAX_Pos) &
- NFCT_FRAMEDELAYMAX_FRAMEDELAYMAX_Msk;
- }
- __STATIC_INLINE nrf_nfct_frame_delay_mode_t nrf_nfct_frame_delay_mode_get(void)
- {
- return (nrf_nfct_frame_delay_mode_t)(NRF_NFCT->FRAMEDELAYMODE &
- NFCT_FRAMEDELAYMODE_FRAMEDELAYMODE_Msk);
- }
- __STATIC_INLINE void nrf_nfct_frame_delay_mode_set(nrf_nfct_frame_delay_mode_t frame_delay_mode)
- {
- NRF_NFCT->FRAMEDELAYMODE = (uint32_t)frame_delay_mode;
- }
- __STATIC_INLINE uint8_t * nrf_nfct_rxtx_buffer_get(void)
- {
- return (uint8_t *)(NRF_NFCT->PACKETPTR);
- }
- __STATIC_INLINE void nrf_nfct_rxtx_buffer_set(uint8_t * p_rxtx_buf,
- uint16_t max_txrx_len)
- {
- NRF_NFCT->PACKETPTR = (uint32_t)p_rxtx_buf;
- NRF_NFCT->MAXLEN = ((uint32_t)max_txrx_len << NFCT_MAXLEN_MAXLEN_Pos) &
- NFCT_MAXLEN_MAXLEN_Msk;
- }
- __STATIC_INLINE uint16_t nrf_nfct_max_rxtx_length_get(void)
- {
- return (uint16_t)((NRF_NFCT->MAXLEN & NFCT_MAXLEN_MAXLEN_Msk) >> NFCT_MAXLEN_MAXLEN_Pos);
- }
- __STATIC_INLINE uint8_t nrf_nfct_tx_frame_config_get(void)
- {
- return (uint8_t)(NRF_NFCT->TXD.FRAMECONFIG);
- }
- __STATIC_INLINE void nrf_nfct_tx_frame_config_set(uint8_t flags)
- {
- NRF_NFCT->TXD.FRAMECONFIG = flags;
- }
- __STATIC_INLINE uint16_t nrf_nfct_tx_bits_get(void)
- {
- return (uint16_t)(NRF_NFCT->TXD.AMOUNT & (NFCT_TXD_AMOUNT_TXDATABITS_Msk |
- NFCT_TXD_AMOUNT_TXDATABYTES_Msk));
- }
- __STATIC_INLINE void nrf_nfct_tx_bits_set(uint16_t tx_bits)
- {
- NRF_NFCT->TXD.AMOUNT = (tx_bits & (NFCT_TXD_AMOUNT_TXDATABITS_Msk | NFCT_TXD_AMOUNT_TXDATABYTES_Msk));
- }
- __STATIC_INLINE uint8_t nrf_nfct_rx_frame_config_get(void)
- {
- return (uint8_t)(NRF_NFCT->RXD.FRAMECONFIG);
- }
- __STATIC_INLINE void nrf_nfct_rx_frame_config_set(uint8_t flags)
- {
- NRF_NFCT->RXD.FRAMECONFIG = flags;
- }
- __STATIC_INLINE uint16_t nrf_nfct_rx_bits_get(bool crc_excluded)
- {
- uint16_t rx_bits = NRF_NFCT->RXD.AMOUNT & (NFCT_RXD_AMOUNT_RXDATABITS_Msk |
- NFCT_RXD_AMOUNT_RXDATABYTES_Msk);
- return rx_bits - (crc_excluded ? (8u * NRF_NFCT_CRC_SIZE) : 0);
- }
- __STATIC_INLINE nrf_nfct_sensres_nfcid1_size_t nrf_nfct_nfcid1_get(uint8_t * p_nfcid1_buf)
- {
- uint32_t nfcid1_last = NRF_NFCT->NFCID1_LAST;
- nrf_nfct_sensres_nfcid1_size_t size =
- (nrf_nfct_sensres_nfcid1_size_t)(NRF_NFCT->SENSRES & NFCT_SENSRES_NFCIDSIZE_Msk);
- if (size != NRF_NFCT_SENSRES_NFCID1_SIZE_SINGLE)
- {
- uint32_t nfcid1_2nd_last = NRF_NFCT->NFCID1_2ND_LAST;
- if (size == NRF_NFCT_SENSRES_NFCID1_SIZE_TRIPLE)
- {
- uint32_t nfcid1_3rd_last = NRF_NFCT->NFCID1_3RD_LAST;
- *p_nfcid1_buf++ = (uint8_t)(nfcid1_3rd_last >> 16UL);
- *p_nfcid1_buf++ = (uint8_t)(nfcid1_3rd_last >> 8UL);
- *p_nfcid1_buf++ = (uint8_t)(nfcid1_3rd_last >> 0UL);
- }
- *p_nfcid1_buf++ = (uint8_t)(nfcid1_2nd_last >> 16UL);
- *p_nfcid1_buf++ = (uint8_t)(nfcid1_2nd_last >> 8UL);
- *p_nfcid1_buf++ = (uint8_t)(nfcid1_2nd_last >> 0UL);
- }
- *p_nfcid1_buf++ = (uint8_t)(nfcid1_last >> 24UL);
- *p_nfcid1_buf++ = (uint8_t)(nfcid1_last >> 16UL);
- *p_nfcid1_buf++ = (uint8_t)(nfcid1_last >> 8UL);
- *p_nfcid1_buf++ = (uint8_t)(nfcid1_last >> 0UL);
- return size;
- }
- __STATIC_INLINE void nrf_nfct_nfcid1_set(uint8_t const * p_nfcid1_buf,
- nrf_nfct_sensres_nfcid1_size_t nfcid1_size)
- {
- nrf_nfct_sensres_nfcid1_size_t size = (nfcid1_size == NRF_NFCT_SENSRES_NFCID1_SIZE_DEFAULT) ?
- NRF_NFCT_SENSRES_NFCID1_SIZE_DOUBLE : nfcid1_size;
- if (size != NRF_NFCT_SENSRES_NFCID1_SIZE_SINGLE)
- {
- if (size == NRF_NFCT_SENSRES_NFCID1_SIZE_TRIPLE)
- {
- NRF_NFCT->NFCID1_3RD_LAST = ((uint32_t)p_nfcid1_buf[0] << 16UL) |
- ((uint32_t)p_nfcid1_buf[1] << 8UL) |
- ((uint32_t)p_nfcid1_buf[2] << 0UL);
- p_nfcid1_buf += 3UL;
- }
- NRF_NFCT->NFCID1_2ND_LAST = ((uint32_t)p_nfcid1_buf[0] << 16UL) |
- ((uint32_t)p_nfcid1_buf[1] << 8UL) |
- ((uint32_t)p_nfcid1_buf[2] << 0UL);
- p_nfcid1_buf += 3UL;
- }
- NRF_NFCT->NFCID1_LAST = ((uint32_t)p_nfcid1_buf[0] << 24UL) |
- ((uint32_t)p_nfcid1_buf[1] << 16UL) |
- ((uint32_t)p_nfcid1_buf[2] << 8UL) |
- ((uint32_t)p_nfcid1_buf[3] << 0UL);
- NRF_NFCT->SENSRES = ((NRF_NFCT->SENSRES & ~NFCT_SENSRES_NFCIDSIZE_Msk) |
- (uint32_t)size);
- }
- #if defined (NFCT_AUTOCOLRESCONFIG_MODE_Msk) || defined(__NRFX_DOXYGEN__)
- __STATIC_INLINE bool nrf_nfct_autocolres_is_enabled(void)
- {
- return (NRF_NFCT->AUTOCOLRESCONFIG & NFCT_AUTOCOLRESCONFIG_MODE_Msk) ==
- (NFCT_AUTOCOLRESCONFIG_MODE_Enabled << NFCT_AUTOCOLRESCONFIG_MODE_Pos);
- }
- __STATIC_INLINE void nrf_nfct_autocolres_enable(void)
- {
- NRF_NFCT->AUTOCOLRESCONFIG =
- (NRF_NFCT->AUTOCOLRESCONFIG & ~NFCT_AUTOCOLRESCONFIG_MODE_Msk) |
- (NFCT_AUTOCOLRESCONFIG_MODE_Enabled << NFCT_AUTOCOLRESCONFIG_MODE_Pos);
- }
- __STATIC_INLINE void nrf_nfct_autocolres_disable(void)
- {
- NRF_NFCT->AUTOCOLRESCONFIG =
- (NRF_NFCT->AUTOCOLRESCONFIG & ~NFCT_AUTOCOLRESCONFIG_MODE_Msk) |
- (NFCT_AUTOCOLRESCONFIG_MODE_Disabled << NFCT_AUTOCOLRESCONFIG_MODE_Pos);
- }
- #endif
- __STATIC_INLINE nrf_nfct_sensres_nfcid1_size_t nrf_nfct_sensres_nfcid1_size_get(void)
- {
- return (nrf_nfct_sensres_nfcid1_size_t)(NRF_NFCT->SENSRES & NFCT_SENSRES_NFCIDSIZE_Msk);
- }
- __STATIC_INLINE void nrf_nfct_sensres_nfcid1_size_set(nrf_nfct_sensres_nfcid1_size_t nfcid1_size)
- {
- NRF_NFCT->SENSRES = ((NRF_NFCT->SENSRES & ~(NFCT_SENSRES_NFCIDSIZE_Msk)) | (uint32_t)nfcid1_size);
- }
- __STATIC_INLINE nrf_nfct_sensres_bit_frame_sdd_t nrf_nfct_sensres_bit_frame_sdd_get(void)
- {
- return (nrf_nfct_sensres_bit_frame_sdd_t)(NRF_NFCT->SENSRES & NFCT_SENSRES_BITFRAMESDD_Msk);
- }
- __STATIC_INLINE void nrf_nfct_sensres_bit_frame_sdd_set(nrf_nfct_sensres_bit_frame_sdd_t bit_frame_sdd)
- {
- NRF_NFCT->SENSRES = ((NRF_NFCT->SENSRES & ~(NFCT_SENSRES_BITFRAMESDD_Msk)) | (uint32_t)bit_frame_sdd);
- }
- __STATIC_INLINE nrf_nfct_sensres_platform_config_t nrf_nfct_sensres_platform_config_get(void)
- {
- return (nrf_nfct_sensres_platform_config_t)(NRF_NFCT->SENSRES & NFCT_SENSRES_PLATFCONFIG_Msk);
- }
- __STATIC_INLINE void nrf_nfct_sensres_platform_config_set(nrf_nfct_sensres_platform_config_t platform_config)
- {
- NRF_NFCT->SENSRES = ((NRF_NFCT->SENSRES & ~(NFCT_SENSRES_PLATFCONFIG_Msk)) | (uint32_t)platform_config);
- }
- __STATIC_INLINE bool nrf_nfct_selsres_cascade_check(void)
- {
- return (bool)(NRF_NFCT->SELRES & NFCT_SELRES_CASCADE_Msk);
- }
- __STATIC_INLINE nrf_nfct_selres_protocol_t nrf_nfct_selsres_protocol_get(void)
- {
- return (nrf_nfct_selres_protocol_t)((NRF_NFCT->SELRES & NFCT_SELRES_PROTOCOL_Msk) >>
- NFCT_SELRES_PROTOCOL_Pos);
- }
- __STATIC_INLINE void nrf_nfct_selres_protocol_set(nrf_nfct_selres_protocol_t sel_res_protocol)
- {
- NRF_NFCT->SELRES = (NRF_NFCT->SELRES & ~NFCT_SELRES_PROTOCOL_Msk) |
- ((uint32_t)sel_res_protocol << NFCT_SELRES_PROTOCOL_Pos);
- }
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif
|