mirror of
https://github.com/espruino/Espruino.git
synced 2025-12-08 19:06:15 +00:00
Fixed NRF_GPIO_PIN_CNF macro to work safely on port P1 without needing enclosing braces
This commit is contained in:
parent
60ea53b968
commit
28e1307fee
1
.gitignore
vendored
1
.gitignore
vendored
@ -71,3 +71,4 @@ gcc-arm-none-eabi*
|
||||
/misc
|
||||
*.user
|
||||
*.jdebug
|
||||
*.code-workspace
|
||||
|
||||
@ -33,11 +33,11 @@ void nrf_configure_uicr_flags(void);
|
||||
|
||||
/// Because Nordic's library functions don't inline on NRF52840!
|
||||
#ifdef NRF_P1
|
||||
#define NRF_GPIO_PIN_SET_FAST(PIN) if((PIN)<P0_PIN_NUM) NRF_P0->OUTSET=1<<(PIN); else NRF_P1->OUTSET=1<<((PIN)-P0_PIN_NUM);
|
||||
#define NRF_GPIO_PIN_CLEAR_FAST(PIN) if((PIN)<P0_PIN_NUM) NRF_P0->OUTCLR=1<<(PIN); else NRF_P1->OUTCLR=1<<((PIN)-P0_PIN_NUM);
|
||||
#define NRF_GPIO_PIN_WRITE_FAST(PIN,V) if((PIN)<P0_PIN_NUM) { if (V) NRF_P0->OUTSET=1<<(PIN); else NRF_P0->OUTCLR=1<<(PIN); } else { if (V) NRF_P1->OUTSET=1<<(PIN); else NRF_P1->OUTCLR=1<<(PIN); }
|
||||
#define NRF_GPIO_PIN_SET_FAST(PIN) {if((PIN)<P0_PIN_NUM) NRF_P0->OUTSET=1<<(PIN); else NRF_P1->OUTSET=1<<((PIN)-P0_PIN_NUM);}
|
||||
#define NRF_GPIO_PIN_CLEAR_FAST(PIN) {if((PIN)<P0_PIN_NUM) NRF_P0->OUTCLR=1<<(PIN); else NRF_P1->OUTCLR=1<<((PIN)-P0_PIN_NUM);}
|
||||
#define NRF_GPIO_PIN_WRITE_FAST(PIN,V) {if((PIN)<P0_PIN_NUM) { if (V) NRF_P0->OUTSET=1<<(PIN); else NRF_P0->OUTCLR=1<<(PIN); } else { if (V) NRF_P1->OUTSET=1<<(PIN); else NRF_P1->OUTCLR=1<<(PIN); }}
|
||||
#define NRF_GPIO_PIN_READ_FAST(PIN) (((PIN)<P0_PIN_NUM) ? (NRF_P0->IN >> (PIN))&1 : (NRF_P0->IN >> (PIN)) &1 )
|
||||
#define NRF_GPIO_PIN_CNF(PIN,value) ((PIN<P0_PIN_NUM) ? NRF_P0 : NRF_P1)->PIN_CNF[PIN & 31]=value;
|
||||
#define NRF_GPIO_PIN_CNF(PIN,value) {((PIN<P0_PIN_NUM) ? NRF_P0 : NRF_P1)->PIN_CNF[PIN & 31]=value;}
|
||||
#else
|
||||
#define NRF_GPIO_PIN_SET_FAST(PIN) NRF_P0->OUTSET=1<<(PIN);
|
||||
#define NRF_GPIO_PIN_CLEAR_FAST(PIN) NRF_P0->OUTCLR=1<<(PIN);
|
||||
|
||||
@ -20,11 +20,11 @@
|
||||
|
||||
/// Because Nordic's library functions don't inline on NRF52840!
|
||||
#ifdef NRF_P1
|
||||
#define NRF_GPIO_PIN_SET_FAST(PIN) if((PIN)<P0_PIN_NUM) NRF_P0->OUTSET=1<<(PIN); else NRF_P1->OUTSET=1<<((PIN)-P0_PIN_NUM);
|
||||
#define NRF_GPIO_PIN_CLEAR_FAST(PIN) if((PIN)<P0_PIN_NUM) NRF_P0->OUTCLR=1<<(PIN); else NRF_P1->OUTCLR=1<<((PIN)-P0_PIN_NUM);
|
||||
#define NRF_GPIO_PIN_WRITE_FAST(PIN,V) if((PIN)<P0_PIN_NUM) { if (V) NRF_P0->OUTSET=1<<(PIN); else NRF_P0->OUTCLR=1<<(PIN); } else { if (V) NRF_P1->OUTSET=1<<(PIN); else NRF_P1->OUTCLR=1<<(PIN); }
|
||||
#define NRF_GPIO_PIN_SET_FAST(PIN) {if((PIN)<P0_PIN_NUM) NRF_P0->OUTSET=1<<(PIN); else NRF_P1->OUTSET=1<<((PIN)-P0_PIN_NUM);}
|
||||
#define NRF_GPIO_PIN_CLEAR_FAST(PIN) {if((PIN)<P0_PIN_NUM) NRF_P0->OUTCLR=1<<(PIN); else NRF_P1->OUTCLR=1<<((PIN)-P0_PIN_NUM);}
|
||||
#define NRF_GPIO_PIN_WRITE_FAST(PIN,V) {if((PIN)<P0_PIN_NUM) { if (V) NRF_P0->OUTSET=1<<(PIN); else NRF_P0->OUTCLR=1<<(PIN); } else { if (V) NRF_P1->OUTSET=1<<(PIN); else NRF_P1->OUTCLR=1<<(PIN); }}
|
||||
#define NRF_GPIO_PIN_READ_FAST(PIN) (((PIN)<P0_PIN_NUM) ? (NRF_P0->IN >> (PIN))&1 : (NRF_P0->IN >> (PIN)) &1 )
|
||||
#define NRF_GPIO_PIN_CNF(PIN,value) ((PIN<P0_PIN_NUM) ? NRF_P0 : NRF_P1)->PIN_CNF[PIN & 31]=value;
|
||||
#define NRF_GPIO_PIN_CNF(PIN,value) {((PIN<P0_PIN_NUM) ? NRF_P0 : NRF_P1)->PIN_CNF[PIN & 31]=value;}
|
||||
|
||||
#else
|
||||
#define NRF_GPIO_PIN_SET_FAST(PIN) NRF_P0->OUTSET=1<<(PIN);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user