diff --git a/speeduino/src/DigitalWriteFast/digitalWriteFast.h b/speeduino/src/DigitalWriteFast/digitalWriteFast.h deleted file mode 100644 index b2676a7d..00000000 --- a/speeduino/src/DigitalWriteFast/digitalWriteFast.h +++ /dev/null @@ -1,217 +0,0 @@ -/* - Optimized digital functions for AVR microcontrollers - by Watterott electronic (www.watterott.com) - based on http://code.google.com/p/digitalwritefast - */ - -#ifndef __digitalWriteFast_h_ -#define __digitalWriteFast_h_ 1 - -#define ERROR_SEQUENCE 0b10101010 //digitalReadFast will return this value if pin number is not constant -// general macros/defines -#ifndef BIT_READ -# define BIT_READ(value, bit) ((value) & (1UL << (bit))) -#endif -#ifndef BIT_SET -# define BIT_SET(value, bit) ((value) |= (1UL << (bit))) -#endif -#ifndef BIT_CLEAR -# define BIT_CLEAR(value, bit) ((value) &= ~(1UL << (bit))) -#endif -#ifndef BIT_WRITE -# define BIT_WRITE(value, bit, bitvalue) (bitvalue ? BIT_SET(value, bit) : BIT_CLEAR(value, bit)) -#endif - -#ifndef SWAP -#define SWAP(x,y) do{ (x)=(x)^(y); (y)=(x)^(y); (x)=(x)^(y); }while(0) -#endif - -// workarounds for ARM microcontrollers -#if (!defined(__AVR__) || defined(ARDUINO_ARCH_SAM)) -#ifndef PROGMEM -# define PROGMEM -#endif -#ifndef PGM_P -# define PGM_P const char * -#endif -#ifndef PSTR -# define PSTR(str) (str) -#endif - -#ifndef memcpy_P -# define memcpy_P(dest, src, num) memcpy((dest), (src), (num)) -#endif -#ifndef strcpy_P -# define strcpy_P(dst, src) strcpy((dst), (src)) -#endif -#ifndef strcat_P -# define strcat_P(dst, src) strcat((dst), (src)) -#endif -#ifndef strcmp_P -# define strcmp_P(a, b) strcmp((a), (b)) -#endif -#ifndef strcasecmp_P -# define strcasecmp_P(a, b) strcasecmp((a), (b)) -#endif -#ifndef strncmp_P -# define strncmp_P(a, b, n) strncmp((a), (b), (n)) -#endif -#ifndef strncasecmp_P -# define strncasecmp_P(a, b, n) strncasecmp((a), (b), (n)) -#endif -#ifndef strstr_P -# define strstr_P(a, b) strstr((a), (b)) -#endif -#ifndef strlen_P -# define strlen_P(a) strlen((a)) -#endif -#ifndef sprintf_P -# define sprintf_P(s, f, ...) sprintf((s), (f), __VA_ARGS__) -#endif - -#ifndef pgm_read_byte -# define pgm_read_byte(addr) (*(const unsigned char *)(addr)) -#endif -#ifndef pgm_read_word -# define pgm_read_word(addr) (*(const unsigned short *)(addr)) -#endif -#ifndef pgm_read_dword -# define pgm_read_dword(addr) (*(const unsigned long *)(addr)) -#endif - -#endif - - -// digital functions -// --- Arduino Mega --- -#if (defined(ARDUINO_AVR_MEGA) || \ - defined(ARDUINO_AVR_MEGA1280) || \ - defined(ARDUINO_AVR_MEGA2560) || \ - defined(__AVR_ATmega1280__) || \ - defined(__AVR_ATmega1281__) || \ - defined(__AVR_ATmega2560__) || \ - defined(__AVR_ATmega2561__)) - -#define UART_RX_PIN (0) //PE0 -#define UART_TX_PIN (1) //PE1 - -#define I2C_SDA_PIN (20) -#define I2C_SCL_PIN (21) - -#define SPI_HW_SS_PIN (53) //PB0 -#define SPI_HW_MOSI_PIN (51) //PB2 -#define SPI_HW_MISO_PIN (50) //PB3 -#define SPI_HW_SCK_PIN (52) //PB1 - -#define __digitalPinToPortReg(P) \ -(((P) >= 22 && (P) <= 29) ? &PORTA : \ -((((P) >= 10 && (P) <= 13) || ((P) >= 50 && (P) <= 53)) ? &PORTB : \ -(((P) >= 30 && (P) <= 37) ? &PORTC : \ -((((P) >= 18 && (P) <= 21) || (P) == 38) ? &PORTD : \ -((((P) >= 0 && (P) <= 3) || (P) == 5) ? &PORTE : \ -(((P) >= 54 && (P) <= 61) ? &PORTF : \ -((((P) >= 39 && (P) <= 41) || (P) == 4) ? &PORTG : \ -((((P) >= 6 && (P) <= 9) || (P) == 16 || (P) == 17) ? &PORTH : \ -(((P) == 14 || (P) == 15) ? &PORTJ : \ -(((P) >= 62 && (P) <= 69) ? &PORTK : &PORTL)))))))))) - -#define __digitalPinToDDRReg(P) \ -(((P) >= 22 && (P) <= 29) ? &DDRA : \ -((((P) >= 10 && (P) <= 13) || ((P) >= 50 && (P) <= 53)) ? &DDRB : \ -(((P) >= 30 && (P) <= 37) ? &DDRC : \ -((((P) >= 18 && (P) <= 21) || (P) == 38) ? &DDRD : \ -((((P) >= 0 && (P) <= 3) || (P) == 5) ? &DDRE : \ -(((P) >= 54 && (P) <= 61) ? &DDRF : \ -((((P) >= 39 && (P) <= 41) || (P) == 4) ? &DDRG : \ -((((P) >= 6 && (P) <= 9) || (P) == 16 || (P) == 17) ? &DDRH : \ -(((P) == 14 || (P) == 15) ? &DDRJ : \ -(((P) >= 62 && (P) <= 69) ? &DDRK : &DDRL)))))))))) - -#define __digitalPinToPINReg(P) \ -(((P) >= 22 && (P) <= 29) ? &PINA : \ -((((P) >= 10 && (P) <= 13) || ((P) >= 50 && (P) <= 53)) ? &PINB : \ -(((P) >= 30 && (P) <= 37) ? &PINC : \ -((((P) >= 18 && (P) <= 21) || (P) == 38) ? &PIND : \ -((((P) >= 0 && (P) <= 3) || (P) == 5) ? &PINE : \ -(((P) >= 54 && (P) <= 61) ? &PINF : \ -((((P) >= 39 && (P) <= 41) || (P) == 4) ? &PING : \ -((((P) >= 6 && (P) <= 9) || (P) == 16 || (P) == 17) ? &PINH : \ -(((P) == 14 || (P) == 15) ? &PINJ : \ -(((P) >= 62 && (P) <= 69) ? &PINK : &PINL)))))))))) - -#define __digitalPinToBit(P) \ -(((P) >= 7 && (P) <= 9) ? (P) - 3 : \ -(((P) >= 10 && (P) <= 13) ? (P) - 6 : \ -(((P) >= 22 && (P) <= 29) ? (P) - 22 : \ -(((P) >= 30 && (P) <= 37) ? 37 - (P) : \ -(((P) >= 39 && (P) <= 41) ? 41 - (P) : \ -(((P) >= 42 && (P) <= 49) ? 49 - (P) : \ -(((P) >= 50 && (P) <= 53) ? 53 - (P) : \ -(((P) >= 54 && (P) <= 61) ? (P) - 54 : \ -(((P) >= 62 && (P) <= 69) ? (P) - 62 : \ -(((P) == 0 || (P) == 15 || (P) == 17 || (P) == 21) ? 0 : \ -(((P) == 1 || (P) == 14 || (P) == 16 || (P) == 20) ? 1 : \ -(((P) == 19) ? 2 : \ -(((P) == 5 || (P) == 6 || (P) == 18) ? 3 : \ -(((P) == 2) ? 4 : \ -(((P) == 3 || (P) == 4) ? 5 : 7))))))))))))))) - -// --- Other --- -#else - -#define SPI_HW_SS_PIN SS -#define SPI_HW_MOSI_PIN MOSI -#define SPI_HW_MISO_PIN MISO -#define SPI_HW_SCK_PIN SCK - -#endif -//#endif //#ifndef digitalPinToPortReg - - -//ref: http://forum.arduino.cc/index.php?topic=140409.msg1054868#msg1054868 -//void OutputsErrorIfCalled( void ) __attribute__ (( error( "Line: "__line__ "Variable used for digitalWriteFast") )); -void NonConstantUsed( void ) __attribute__ (( error("") )); - - -#ifndef digitalWriteFast -#if (defined(__AVR__) || defined(ARDUINO_ARCH_AVR)) -#define digitalWriteFast(P, V) \ -if (__builtin_constant_p(P) && __builtin_constant_p(V)) { \ - BIT_WRITE(*__digitalPinToPortReg(P), __digitalPinToBit(P), (V)); \ -} else { \ - NonConstantUsed(); \ -} -#else -#define digitalWriteFast digitalWrite -#endif -#endif - - -#ifndef pinModeFast -#if (defined(__AVR__) || defined(ARDUINO_ARCH_AVR)) -#define pinModeFast(P, V) \ -if (__builtin_constant_p(P) && __builtin_constant_p(V)) { \ - BIT_WRITE(*__digitalPinToDDRReg(P), __digitalPinToBit(P), (V)); \ -} else { \ - NonConstantUsed(); \ -} -#else -#define pinModeFast pinMode -#endif -#endif - - -#ifndef digitalReadFast -#if (defined(__AVR__) || defined(ARDUINO_ARCH_AVR)) -#define digitalReadFast(P) ( (byte) __digitalReadFast((P)) ) -#define __digitalReadFast(P ) \ - (__builtin_constant_p(P) ) ? ( \ - ( BIT_READ(*__digitalPinToPINReg(P), __digitalPinToBit(P))) ) : \ - ERROR_SEQUENCE -#else -#define digitalReadFast digitalRead -#endif -#endif - -#endif //__digitalWriteFast_h_ -