X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/0aa4cfc2f15d99f84929066c879bcdbb8d8ba81f..219a334de5f6af339e6d9a9ca0ea215c4565e778:/include/proxmark3.h?ds=inline

diff --git a/include/proxmark3.h b/include/proxmark3.h
index a2bad2c5..0431dc80 100644
--- a/include/proxmark3.h
+++ b/include/proxmark3.h
@@ -51,8 +51,11 @@
 #define UDP_CSR_BYTES_RECEIVED(x)				(((x) >> 16) & 0x7ff)
 //**************************************************************
 
-#define LOW(x)	AT91C_BASE_PIOA->PIO_CODR = (x)
-#define HIGH(x)	AT91C_BASE_PIOA->PIO_SODR = (x)
+#define LOW(x)	 AT91C_BASE_PIOA->PIO_CODR = (x)
+#define HIGH(x)	 AT91C_BASE_PIOA->PIO_SODR = (x)
+#define GETBIT(x) (AT91C_BASE_PIOA->PIO_ODSR & (x)) ? 1:0
+#define SETBIT(x, y) (y) ? (HIGH(x)):(LOW(x))
+#define INVBIT(x) SETBIT((x), !(GETBIT(x)))
 
 #define SPI_FPGA_MODE	0
 #define SPI_LCD_MODE	1
@@ -72,12 +75,16 @@
 
 #define LED_A_ON()		HIGH(GPIO_LED_A)
 #define LED_A_OFF()		LOW(GPIO_LED_A)
+#define LED_A_INV()		INVBIT(GPIO_LED_A)
 #define LED_B_ON()		HIGH(GPIO_LED_B)
 #define LED_B_OFF()		LOW(GPIO_LED_B)
+#define LED_B_INV()		INVBIT(GPIO_LED_B)
 #define LED_C_ON()		HIGH(GPIO_LED_C)
 #define LED_C_OFF()		LOW(GPIO_LED_C)
+#define LED_C_INV()		INVBIT(GPIO_LED_C)
 #define LED_D_ON()		HIGH(GPIO_LED_D)
 #define LED_D_OFF()		LOW(GPIO_LED_D)
+#define LED_D_INV()		INVBIT(GPIO_LED_D)
 #define RELAY_ON()		HIGH(GPIO_RELAY)
 #define RELAY_OFF()		LOW(GPIO_RELAY)
 #define BUTTON_PRESS()	!(AT91C_BASE_PIOA->PIO_PDSR & GPIO_BUTTON)