mirror of
				https://github.com/alexandrebobkov/ESP-Nodes.git
				synced 2025-10-31 00:48:13 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			705 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			705 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef MOTOR_CONTROLS_H
 | |
| #define MOTOR_CONTROLS_H
 | |
| 
 | |
| // Interpolate value (x) based on raw reading, min/max limits.
 | |
| /*
 | |
| 
 | |
|     Joystick scale:     4096    2048        0
 | |
|     PWM scale:          8191    4096        0
 | |
| 
 | |
|     PWM Output:         +8191       0   -8191
 | |
| */
 | |
| static int interpolate_raw_val (int raw) {
 | |
|     int x;
 | |
| 
 | |
|     x = raw*2;
 | |
| 
 | |
|     return x;
 | |
| }
 | |
| // Function that converts raw value from joystick scale (0 to 4096) to PCM scale (-8192 to 8192).
 | |
| static int rescale_raw_val (int raw) {
 | |
| 
 | |
|     int s;
 | |
|     s = 4*raw - 8190;
 | |
|     //s = -(raw*raw) + 4.122*raw - 8190;
 | |
|     //s = (8190/2048^1)*(raw - 2048)^1;   // Linear rescaling
 | |
|     //s = (8190/1870^3)*(raw - 1870)^3;   // Cubic rescaling
 | |
|     return s;
 | |
| }
 | |
| 
 | |
| #endif |