Dodany przez: klima, 23:15 24-06-2025

Nowy Pobierz
  1. const uint16_t ignition_rpm[]   = { 1000, 1500, 1650, 2000, 2500, 3000, 3500, 4000 };
  2. const uint8_t  ignition_angle[] = {   15,   18,   20,   25,   30,   35,   40,   42 };
  3.  
  4. uint8_t get_advance_deg(uint32_t rpm) {
  5.   if (rpm <= ignition_rpm[0]) return ignition_angle[0];
  6.   if (rpm >= ignition_rpm[MAP_LEN - 1]) return ignition_angle[MAP_LEN - 1];
  7.  
  8.   for (int i = 0; i < MAP_LEN - 1; i++) {
  9.     if (rpm >= ignition_rpm[i] && rpm < ignition_rpm[i + 1]) {
  10.       float fraction = (rpm - ignition_rpm[i]) / float(ignition_rpm[i + 1] - ignition_rpm[i]);
  11.       return ignition_angle[i] + fraction * (ignition_angle[i + 1] - ignition_angle[i]);
  12.     }
  13.   }
  14.   return 20;
  15. }

Źródło:

Ostatnie wpisy

Linki

Funkcje