Merge pull request #8622 from hg42/implement-LPC1768-GET_TIMER
[2.0.x][LPC1768][fix] Implement GET_TIMER and other GET_xxx, fixes PWM
This commit is contained in:
		| @@ -85,13 +85,25 @@ bool useable_hardware_PWM(pin_t pin); | |||||||
| /// set pin as input with pullup mode | /// set pin as input with pullup mode | ||||||
| #define _PULLUP(IO, v) (pinMode(IO, (v!=LOW ? INPUT_PULLUP : INPUT))) | #define _PULLUP(IO, v) (pinMode(IO, (v!=LOW ? INPUT_PULLUP : INPUT))) | ||||||
|  |  | ||||||
|  | // hg42: all pins can be input or output (I hope) | ||||||
|  | // hg42: undefined pins create compile error (IO, is no pin) | ||||||
|  | // hg42: currently not used, but was used by pinsDebug | ||||||
|  |  | ||||||
| /// check if pin is an input | /// check if pin is an input | ||||||
| #define _GET_INPUT(IO) | #define _GET_INPUT(IO)        (LPC1768_PIN_PIN(IO)>=0) | ||||||
|  |  | ||||||
| /// check if pin is an output | /// check if pin is an output | ||||||
| #define _GET_OUTPUT(IO) | #define _GET_OUTPUT(IO)       (LPC1768_PIN_PIN(IO)>=0) | ||||||
|  |  | ||||||
|  | // hg42: GET_TIMER is used only to check if it's a PWM pin | ||||||
|  | // hg42: we cannot use USEABLE_HARDWARE_PWM because it uses a function that cannot be used statically | ||||||
|  | // hg42: instead use PWM bit from the #define | ||||||
|  |  | ||||||
| /// check if pin is an timer | /// check if pin is an timer | ||||||
| #define _GET_TIMER(IO) | #define _GET_TIMER(IO)        TRUE  // could be LPC1768_PIN_PWM(IO), but there | ||||||
|  | // hg42: could be this: | ||||||
|  | // #define _GET_TIMER(IO)        LPC1768_PIN_PWM(IO) | ||||||
|  | // but this is an incomplete check (12 pins are PWMable, but only 6 can be used at the same time) | ||||||
|  |  | ||||||
| /// Read a pin wrapper | /// Read a pin wrapper | ||||||
| #define READ(IO)  _READ(IO) | #define READ(IO)  _READ(IO) | ||||||
| @@ -111,9 +123,9 @@ bool useable_hardware_PWM(pin_t pin); | |||||||
| #define SET_OUTPUT(IO)  do{ _SET_OUTPUT(IO); _WRITE(IO, LOW); }while(0) | #define SET_OUTPUT(IO)  do{ _SET_OUTPUT(IO); _WRITE(IO, LOW); }while(0) | ||||||
|  |  | ||||||
| /// check if pin is an input wrapper | /// check if pin is an input wrapper | ||||||
| #define GET_INPUT(IO)  _GET_INPUT(IO) // todo: Never used? | #define GET_INPUT(IO)  _GET_INPUT(IO) | ||||||
| /// check if pin is an output wrapper | /// check if pin is an output wrapper | ||||||
| #define GET_OUTPUT(IO)  _GET_OUTPUT(IO) //todo: Never Used? | #define GET_OUTPUT(IO)  _GET_OUTPUT(IO) | ||||||
|  |  | ||||||
| /// check if pin is an timer wrapper | /// check if pin is an timer wrapper | ||||||
| #define GET_TIMER(IO)  _GET_TIMER(IO) | #define GET_TIMER(IO)  _GET_TIMER(IO) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user