Merge pull request #5132 from thinkyhead/rc_fix_M43
Followup to #5118 - pins debugging cleanup
This commit is contained in:
		
						commit
						9c108aea18
					
				| @ -60,7 +60,7 @@ static bool report_pin_name(int8_t pin, bool &pin_is_analog) { | ||||
|     if (pin == 1) { sprintf(buffer, NAME_FORMAT, "TXD"); SERIAL_ECHO(buffer); return true; } | ||||
|   #endif | ||||
| 
 | ||||
|   // Pin list updated from 7 OCT RCBugfix branch
 | ||||
|   // Pin list updated from 7 OCT RCBugfix branch   - max length of pin name is 24
 | ||||
|   #if defined(__FD) && __FD >= 0 | ||||
|     PIN_SAY(__FD) | ||||
|   #endif | ||||
| @ -656,10 +656,10 @@ static bool report_pin_name(int8_t pin, bool &pin_is_analog) { | ||||
| } // report_pin_name
 | ||||
| 
 | ||||
| #define PWM_PRINT(V) do{ sprintf(buffer, "PWM:  %4d", V); SERIAL_ECHO(buffer); }while(0) | ||||
| #define PWM_CASE(N) \ | ||||
|   case TIMER##N: \ | ||||
|     if (TCCR##N & (_BV(COM## N ##1) | _BV(COM## N ##0))) { \ | ||||
|       PWM_PRINT(OCR##N); \ | ||||
| #define PWM_CASE(N,Z) \ | ||||
|   case TIMER##N##Z: \ | ||||
|     if (TCCR##N##A & (_BV(COM##N##Z##1) | _BV(COM##N##Z##0))) { \ | ||||
|       PWM_PRINT(OCR##N##Z); \ | ||||
|       return true; \ | ||||
|     } else return false | ||||
| 
 | ||||
| @ -667,43 +667,43 @@ static bool report_pin_name(int8_t pin, bool &pin_is_analog) { | ||||
|  * Print a pin's PWM status. | ||||
|  * Return true if it's currently a PWM pin. | ||||
|  */ | ||||
| static bool PWM_status(uint8_t pin) { | ||||
| static bool pwm_status(uint8_t pin) { | ||||
|   char buffer[20];   // for the sprintf statements
 | ||||
| 
 | ||||
|   switch(digitalPinToTimer(pin)) { | ||||
| 
 | ||||
|     #if defined(TCCR0A) && defined(COM0A1) | ||||
|       PWM_CASE(0A); | ||||
|       PWM_CASE(0B); | ||||
|       PWM_CASE(0,A); | ||||
|       PWM_CASE(0,B); | ||||
|     #endif | ||||
| 
 | ||||
|     #if defined(TCCR1A) && defined(COM1A1) | ||||
|       PWM_CASE(1A); | ||||
|       PWM_CASE(1B); | ||||
|       PWM_CASE(1C); | ||||
|       PWM_CASE(1,A); | ||||
|       PWM_CASE(1,B); | ||||
|       PWM_CASE(1,C); | ||||
|     #endif | ||||
| 
 | ||||
|     #if defined(TCCR2A) && defined(COM2A1) | ||||
|       PWM_CASE(2A); | ||||
|       PWM_CASE(2B); | ||||
|       PWM_CASE(2,A); | ||||
|       PWM_CASE(2,B); | ||||
|     #endif | ||||
| 
 | ||||
|     #if defined(TCCR3A) && defined(COM3A1) | ||||
|       PWM_CASE(3A); | ||||
|       PWM_CASE(3B); | ||||
|       PWM_CASE(3C); | ||||
|       PWM_CASE(3,A); | ||||
|       PWM_CASE(3,B); | ||||
|       PWM_CASE(3,C); | ||||
|     #endif | ||||
| 
 | ||||
|     #ifdef TCCR4A | ||||
|       PWM_CASE(4A); | ||||
|       PWM_CASE(4B); | ||||
|       PWM_CASE(4C); | ||||
|       PWM_CASE(4,A); | ||||
|       PWM_CASE(4,B); | ||||
|       PWM_CASE(4,C); | ||||
|     #endif | ||||
| 
 | ||||
|     #if defined(TCCR5A) && defined(COM5A1) | ||||
|       PWM_CASE(5A); | ||||
|       PWM_CASE(5B); | ||||
|       PWM_CASE(5C); | ||||
|       PWM_CASE(5,A); | ||||
|       PWM_CASE(5,B); | ||||
|       PWM_CASE(5,C); | ||||
|     #endif | ||||
| 
 | ||||
|     case NOT_ON_TIMER: | ||||
| @ -711,10 +711,10 @@ static bool PWM_status(uint8_t pin) { | ||||
|       return false; | ||||
|   } | ||||
|   SERIAL_PROTOCOLPGM("  "); | ||||
| }  //PWM_status
 | ||||
| } // pwm_status
 | ||||
| 
 | ||||
| #define WGM_MAKE3(N) ((TEST(TCCR##N##B, WGM##N##2) >> 1) | (TCCR##N##A & (_BV(WGM##N##0) | _BV(WGM##N##1)))) | ||||
| #define WGM_MAKE4(N) (WGM_MAKE3(N) | (TEST(TCCR##N##B, WGM##N##3) >> 1)) | ||||
| #define WGM_MAKE3(N) (((TCCR##N##B & _BV(WGM##N##2)) >> 1) | (TCCR##N##A & (_BV(WGM##N##0) | _BV(WGM##N##1)))) | ||||
| #define WGM_MAKE4(N) (WGM_MAKE3(N) | (TCCR##N##B & _BV(WGM##N##3)) >> 1) | ||||
| #define TIMER_PREFIX(T,L,N) do{ \ | ||||
|     WGM = WGM_MAKE##N(T); \ | ||||
|     SERIAL_PROTOCOLPGM("    TIMER"); \ | ||||
| @ -745,7 +745,7 @@ static void err_prob_interrupt() { | ||||
| } | ||||
| static void can_be_used() { SERIAL_PROTOCOLPGM("   can be used as PWM   "); } | ||||
| 
 | ||||
| static void PWM_details(uint8_t pin) { | ||||
| static void pwm_details(uint8_t pin) { | ||||
| 
 | ||||
|   uint8_t WGM; | ||||
| 
 | ||||
| @ -885,9 +885,7 @@ static void PWM_details(uint8_t pin) { | ||||
| 
 | ||||
|   } | ||||
|   SERIAL_PROTOCOLPGM("  "); | ||||
| }  // PWM_details
 | ||||
| 
 | ||||
| 
 | ||||
| } // pwm_details
 | ||||
| 
 | ||||
| inline void report_pin_state(int8_t pin) { | ||||
|   SERIAL_ECHO((int)pin); | ||||
| @ -938,7 +936,7 @@ inline void report_pin_state_extended(int8_t pin, bool ignore) { | ||||
|         pinMode(pin, INPUT_PULLUP);  // make sure input isn't floating
 | ||||
|         SERIAL_PROTOCOLPAIR("Input  = ", digitalRead_mod(pin)); | ||||
|       } | ||||
|       else if (PWM_status(pin)) { | ||||
|       else if (pwm_status(pin)) { | ||||
|         // do nothing
 | ||||
|       } | ||||
|       else SERIAL_PROTOCOLPAIR("Output = ", digitalRead_mod(pin)); | ||||
| @ -946,7 +944,7 @@ inline void report_pin_state_extended(int8_t pin, bool ignore) { | ||||
|   } | ||||
| 
 | ||||
|   // report PWM capabilities
 | ||||
|   PWM_details(pin); | ||||
|   pwm_details(pin); | ||||
|   SERIAL_EOL; | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user