59 #include "../inc/hw_types.h" 60 #include "../inc/hw_memmap.h" 61 #include "../inc/hw_gpio.h" 69 #ifdef DRIVERLIB_DEBUG 70 static bool dioNumberLegal(uint32_t dioNumber)
75 uint32_t numDio = 1 + ((HWREG(GPIO_BASE + GPIO_O_DESCEX) & GPIO_DESCEX_NUMDIO_M) >> GPIO_DESCEX_NUMDIO_S);
76 return (dioNumber < numDio);
85 #define GPIO_DIO_0_MASK 0x00000001 // GPIO DIO 0 mask 86 #define GPIO_DIO_1_MASK 0x00000002 // GPIO DIO 1 mask 87 #define GPIO_DIO_2_MASK 0x00000004 // GPIO DIO 2 mask 88 #define GPIO_DIO_3_MASK 0x00000008 // GPIO DIO 3 mask 89 #define GPIO_DIO_4_MASK 0x00000010 // GPIO DIO 4 mask 90 #define GPIO_DIO_5_MASK 0x00000020 // GPIO DIO 5 mask 91 #define GPIO_DIO_6_MASK 0x00000040 // GPIO DIO 6 mask 92 #define GPIO_DIO_7_MASK 0x00000080 // GPIO DIO 7 mask 93 #define GPIO_DIO_8_MASK 0x00000100 // GPIO DIO 8 mask 94 #define GPIO_DIO_9_MASK 0x00000200 // GPIO DIO 9 mask 95 #define GPIO_DIO_10_MASK 0x00000400 // GPIO DIO 10 mask 96 #define GPIO_DIO_11_MASK 0x00000800 // GPIO DIO 11 mask 97 #define GPIO_DIO_12_MASK 0x00001000 // GPIO DIO 12 mask 98 #define GPIO_DIO_13_MASK 0x00002000 // GPIO DIO 13 mask 99 #define GPIO_DIO_14_MASK 0x00004000 // GPIO DIO 14 mask 100 #define GPIO_DIO_15_MASK 0x00008000 // GPIO DIO 15 mask 101 #define GPIO_DIO_16_MASK 0x00010000 // GPIO DIO 16 mask 102 #define GPIO_DIO_17_MASK 0x00020000 // GPIO DIO 17 mask 103 #define GPIO_DIO_18_MASK 0x00040000 // GPIO DIO 18 mask 104 #define GPIO_DIO_19_MASK 0x00080000 // GPIO DIO 19 mask 105 #define GPIO_DIO_20_MASK 0x00100000 // GPIO DIO 20 mask 106 #define GPIO_DIO_21_MASK 0x00200000 // GPIO DIO 21 mask 107 #define GPIO_DIO_22_MASK 0x00400000 // GPIO DIO 22 mask 108 #define GPIO_DIO_23_MASK 0x00800000 // GPIO DIO 23 mask 109 #define GPIO_DIO_24_MASK 0x01000000 // GPIO DIO 24 mask 110 #define GPIO_DIO_25_MASK 0x02000000 // GPIO DIO 25 mask 111 #define GPIO_DIO_26_MASK 0x04000000 // GPIO DIO 26 mask 112 #define GPIO_DIO_27_MASK 0x08000000 // GPIO DIO 27 mask 113 #define GPIO_DIO_28_MASK 0x10000000 // GPIO DIO 28 mask 114 #define GPIO_DIO_29_MASK 0x20000000 // GPIO DIO 29 mask 115 #define GPIO_DIO_30_MASK 0x40000000 // GPIO DIO 30 mask 116 #define GPIO_DIO_ALL_MASK 0xFFFFFFFF // GPIO all DIOs mask 125 #define GPIO_OUTPUT_DISABLE 0x00000000 // DIO output is disabled 126 #define GPIO_OUTPUT_ENABLE 0x00000001 // DIO output is enabled 148 ASSERT(dioNumberLegal(dioNumber));
151 return ((HWREG( GPIO_BASE + GPIO_O_DIN31_0 ) >> dioNumber) & 1);
180 return (HWREG( GPIO_BASE + GPIO_O_DIN31_0 ) & dioMask);
200 ASSERT(dioNumberLegal(dioNumber));
201 ASSERT((value == 0) || (value == 1));
204 HWREGB( GPIO_BASE + GPIO_O_DOUT3_0 + dioNumber ) = value;
233 HWREG( GPIO_BASE + GPIO_O_DOUT31_0 ) = (HWREG( GPIO_BASE + GPIO_O_DOUT31_0 ) & ~dioMask) |
234 (bitVectoredValue & dioMask);
251 ASSERT(dioNumberLegal(dioNumber));
254 HWREG( GPIO_BASE + GPIO_O_DOUTSET31_0 ) = (1 << dioNumber);
278 HWREG( GPIO_BASE + GPIO_O_DOUTSET31_0 ) = dioMask;
295 ASSERT(dioNumberLegal(dioNumber));
298 HWREG( GPIO_BASE + GPIO_O_DOUTCLR31_0 ) = (1 << dioNumber);
322 HWREG( GPIO_BASE + GPIO_O_DOUTCLR31_0 ) = dioMask;
339 ASSERT(dioNumberLegal(dioNumber));
342 HWREG( GPIO_BASE + GPIO_O_DOUTTGL31_0 ) = (1 << dioNumber);
366 HWREG( GPIO_BASE + GPIO_O_DOUTTGL31_0 ) = dioMask;
388 ASSERT(dioNumberLegal(dioNumber));
391 return ((HWREG( GPIO_BASE + GPIO_O_DOE31_0 ) >> dioNumber) & 1);
420 return (HWREG( GPIO_BASE + GPIO_O_DOE31_0 ) & dioMask);
443 ASSERT(dioNumberLegal(dioNumber));
449 HWREG( GPIO_BASE + GPIO_O_DOE31_0 ) |= (1 << dioNumber);
453 HWREG( GPIO_BASE + GPIO_O_DOE31_0 ) &= ~(1 << dioNumber);
486 HWREG( GPIO_BASE + GPIO_O_DOE31_0 ) = (HWREG( GPIO_BASE + GPIO_O_DOE31_0 ) & ~dioMask) |
487 (bitVectoredOutputEnable & dioMask);
506 ASSERT(dioNumberLegal(dioNumber));
509 return ((HWREG( GPIO_BASE + GPIO_O_RIS ) >> dioNumber) & 1);
539 return (HWREG( GPIO_BASE + GPIO_O_RIS ) & dioMask);
556 ASSERT(dioNumberLegal(dioNumber));
559 HWREG( GPIO_BASE + GPIO_O_ICLR ) = (1 << dioNumber);
584 HWREG( GPIO_BASE + GPIO_O_ICLR ) = dioMask;
__STATIC_INLINE uint32_t GPIOGetOutputEnableMultiDio(uint32_t dioMask)
Gets the output enable setting of the specified DIOs.
Definition: gpio.h:414
#define GPIO_DIO_ALL_MASK
Definition: gpio.h:116
__STATIC_INLINE void GPIOSetMultiDio(uint32_t dioMask)
Sets the specified DIOs to 1 (high).
Definition: gpio.h:272
#define GPIO_OUTPUT_ENABLE
Definition: gpio.h:126
__STATIC_INLINE void GPIOClearDio(uint32_t dioNumber)
Clears a specific DIO to 0 (low).
Definition: gpio.h:292
__STATIC_INLINE uint32_t GPIOGetEventDio(uint32_t dioNumber)
Gets the event status of a specific DIO.
Definition: gpio.h:503
__STATIC_INLINE void GPIOToggleDio(uint32_t dioNumber)
Toggles a specific DIO.
Definition: gpio.h:336
__STATIC_INLINE void GPIOWriteMultiDio(uint32_t dioMask, uint32_t bitVectoredValue)
Writes masked data to the specified DIOs.
Definition: gpio.h:228
__STATIC_INLINE void GPIOSetOutputEnableMultiDio(uint32_t dioMask, uint32_t bitVectoredOutputEnable)
Configures the output enable setting for all specified DIOs.
Definition: gpio.h:481
__STATIC_INLINE void GPIOClearEventDio(uint32_t dioNumber)
Clears the IO event status of a specific DIO.
Definition: gpio.h:553
#define ASSERT(expr)
Definition: debug.h:71
__STATIC_INLINE void GPIOSetOutputEnableDio(uint32_t dioNumber, uint32_t outputEnableValue)
Sets output enable of a specific DIO.
Definition: gpio.h:440
__STATIC_INLINE uint32_t GPIOReadDio(uint32_t dioNumber)
Reads a specific DIO.
Definition: gpio.h:145
__STATIC_INLINE void GPIOToggleMultiDio(uint32_t dioMask)
Toggles the specified DIOs.
Definition: gpio.h:360
__STATIC_INLINE uint32_t GPIOGetOutputEnableDio(uint32_t dioNumber)
Gets the output enable status of a specific DIO.
Definition: gpio.h:385
__STATIC_INLINE void GPIOSetDio(uint32_t dioNumber)
Sets a specific DIO to 1 (high).
Definition: gpio.h:248
#define GPIO_OUTPUT_DISABLE
Definition: gpio.h:125
__STATIC_INLINE void GPIOWriteDio(uint32_t dioNumber, uint32_t value)
Writes a value to a specific DIO.
Definition: gpio.h:197
#define __STATIC_INLINE
Definition: cmsis_gcc.h:47
__STATIC_INLINE void GPIOClearEventMultiDio(uint32_t dioMask)
Clears the IO event status on the specified DIOs.
Definition: gpio.h:578
__STATIC_INLINE uint32_t GPIOGetEventMultiDio(uint32_t dioMask)
Gets the event status of the specified DIOs.
Definition: gpio.h:533
__STATIC_INLINE uint32_t GPIOReadMultiDio(uint32_t dioMask)
Reads the input value for the specified DIOs.
Definition: gpio.h:174
__STATIC_INLINE void GPIOClearMultiDio(uint32_t dioMask)
Clears the specified DIOs to 0 (low).
Definition: gpio.h:316