Here's Fran's code versions:
Sorry you guys. Here's a code improvement breakdown:
version 0.1 - first version tested
version 0.2 - added PW (PWM) to realtime data
version 0.3 - added thermal cutback code (to be checked by Paul)
version 0.4 - added continous check of vref below 2V
version 0.5 - declared some variables volatile to enforce execution within bounds of cli() and sei()
version 0.6 - make ocr1a_lpf time constant longer - V0.5 oscillates if Kp,Ki are low (slow PI loop)
version 0.7 - fixed stupid bug in config_pi() that caused Joe's problems (thanks Joe)
version 0.8 - high pedal lockout added but not yet tested
version 0.9 - store mutiple copies of configuration in EE prom (not yet tested)
version 0.10 - code size reduction, correct thermal cutback starting point, selectable pwm low pass filter
version 1.0 - in pi_loop() added cli() and sei() around update of OCR1A, added cli() after pi_loop
version 1.1 - added battery amps and battery amp hour calculations (not yet tested)
version 1.2 - added motor overspeed logic (experimental and not yet tested)
version 1.3 - added battery amps limit (not yet tested) and changed motor overspeed parameters to 4 digit
version 1.4 - new 8KHz PWM compile to option, added battery_amps_limit, spare, and crc, default_config PROGMEM
version 1.5 - fixed ocr1a_lpf calculation - so battery amps limit should now work, added "restart" command
|