User Tools

Site Tools


common_code_v1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
common_code_v1 [2016/08/26 12:49] – [Variables] hakcentercommon_code_v1 [2016/08/26 12:51] – [Timer1] hakcenter
Line 245: Line 245:
 ==== Timer1 ==== ==== Timer1 ====
 <code> <code>
-void set_turbo_position() { +/* 
-  // Keep vane position within constraints +  Copyright (c2014-2016, Curtis R Hacker 
-  constrain(vane_position, min_position, max_position); +  All rights reserved. 
-  final_vane_position = vane_position; + *  
-  // Vane smoothing between large values +  This work is licensed under the 
-  if (turbo_rpm < top_end_rpm && turbo_rpm >= curve_rpm[0] && !brake_mode) { +  Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. 
-    if (vane_position >= last_vane_position + 20 && last_vane_position < max_position - 10{ +  To view a copy of this license, 
-      final_vane_position = last_vane_position + 10+  visit http://creativecommons.org/licenses/by-nc-sa/4.0/
-    } else if (vane_position <= last_vane_position - 20 && last_vane_position > min_position + 10{ + */ 
-      final_vane_position = last_vane_position - 10+ 
-    } else if (vane_position - 10 >= last_vane_position || vane_position + 10 <= last_vane_position) { +void sweep() { 
-      if (vane_position > last_vane_position + 2 && last_vane_position max_position - 2) { +  if (turbo_feedback 110) { 
-        final_vane_position = last_vane_position + 2; +    Serial.print(F("POS: ")); 
-      } else if (vane_position last_vane_position - 2 && last_vane_position > min_position + 2) { +    Serial.print(turbo_cmd_position)
-        final_vane_position = last_vane_position - 2;+    Serial.print(F(" | Feedback : ")); 
 +    Serial.print(turbo_feedback)
 +    Serial.println(F("%")); 
 +  } 
 +  if (sweep_update) { 
 +    sweep_update = false; 
 +    if (sweep_position && sweep_counter < 2) { 
 +      if (sweep_counter 1) { 
 +        vane_position++;
       }       }
 +      if (vane_position > 960) { sweep_counter++; }
 +      if (sweep_counter > 0) {
 +        vane_position--;
 +      }
 +      if (vane_position < 40) { sweep_counter++; }
     }     }
-  } else if (turbo_rpm > top_end_rpm) { +    if (sweep_counter == 2 || !sweep_position) { 
-    if (vane_position - 5 >= last_vane_position || vane_position + 5 <= last_vane_position) { final_vane_position = vane_position; } else { final_vane_position = last_vane_position; }+      sweep_position = false; 
 +      sweep_update = false; 
 +      sweep_counter = 0; 
 +      Serial.println(F("Sweep done..")); 
 +    } 
 +  } else { sweep_update = true; } 
 +
 + 
 +void set_turbo_position() { 
 +  // if not sweeping smoothe vane changes 
 +  if (!sweep_position) { 
 +    // Keep vane position within constraints 
 +    constrain(vane_position, min_position, max_position); 
 +    final_vane_position = vane_position; 
 +    // Vane smoothing between large values 
 +       //if (turbo_rpm < curve_rpm[0] && (vane_position <= last_vane_position - 20 && last_vane_position min_position + 10)) { final_vane_position = last_vane_position - 10; } 
 +         if (turbo_rpm < curve_rpm[0] && (vane_position <= last_vane_position - half_cm)) { final_vane_position = last_vane_position - quarter_cm; } 
 +    else if (!brake_mode && turbo_rpm >= curve_rpm[0] && turbo_rpm < top_end_rpm) { 
 +    // if vane_position change is 20 or more, move by half the difference 
 +         if (vane_position >= last_vane_position + 20) { final_vane_position = vane_position + ((last_vane_position - vane_position) >> 2); } 
 +    else if (vane_position <= last_vane_position - 20) { final_vane_position = vane_position - ((last_vane_position - vane_position) >> 2); } 
 +    // if vane_position change is 10 or less, move by 2 
 +         if (vane_position - 10 >= last_vane_position) { final_vane_position = last_vane_position + 2; } 
 +    else if (vane_position + 10 <= last_vane_position) { final_vane_position = last_vane_position - 2; } 
 +    // end smoothing 
 +    } else if (turbo_rpm > top_end_rpm) { 
 +      // remove jitter during top end turbo speeds 
 +      if (vane_position - 5 >= last_vane_position || vane_position + 5 <= last_vane_position) { final_vane_position = vane_position; } else { final_vane_position = last_vane_position; } 
 +    } 
 +    /* 
 +    // Decel position on decel 
 +    if (turbo_accel[2] < -20 && turbo_rpm > 30000) { 
 +      vane_position = deceleration_position; 
 +      final_vane_position = deceleration_position; 
 +    } 
 +    */ 
 +    // Constrain and update last_vane_position 
 +    constrain(final_vane_position, min_position, max_position); 
 +    last_vane_position = final_vane_position; 
 +  } 
 +  // Ignore vane changes until startup is complete 
 +  if (startup > 1 && !sweep_position) { 
 +    startup--; 
 +    vane_position = min_position; 
 +    last_vane_position = min_position; 
 +    final_vane_position = min_position;
   }   }
-  // Update last_vane_position 
-  last_vane_position = final_vane_position; 
   byte lo_byte = lowByte(final_vane_position);   byte lo_byte = lowByte(final_vane_position);
   byte hi_byte = highByte(final_vane_position);   byte hi_byte = highByte(final_vane_position);
Line 272: Line 328:
   // data[2] = 0x02 for recalibrating gearbox   // data[2] = 0x02 for recalibrating gearbox
   // Load message and send   // Load message and send
-  CAN1.send (0x0CFFC600, extID, 8, data);+  send_turbo_position(data);
 } }
 </code> </code>
common_code_v1.txt · Last modified: 2016/08/26 12:52 by hakcenter