diff options
author | OhmEye <james@ohmeye.com> | 2012-04-30 23:59:53 -1000 |
---|---|---|
committer | OhmEye <james@ohmeye.com> | 2012-04-30 23:59:53 -1000 |
commit | 976c90b315a873b73bb19f4bbf1f8907cab37d82 (patch) | |
tree | e6c08f7bf202f18c14deeba88454bca4e546a5ea | |
parent | 52f7f3040874dc8b2ef4b0d570f7fa9d0291dfc3 (diff) |
Bug: turn on SD_FAST_XFER_AKTIV and compilation fails if PID is
enabled.
Fix:
If SD_FAST_XFER_AKTIV is defined, fast_xfer() only declares
g_heater_pwm_val if PIDTEMP is defined, but later assigns
g_heater_pwm_val=0 regardless whether PIDTEMP is defined or not. If
PIDTEMP is undefined, g_heater_pwm_val is undeclared at compile time and
generates the appropriate error. I solved by not using g_heater_pwm_val
if PIDTEMP is undefined (and therefor undeclared.)
Also, the extern declaration was as an int, when g_heater_pwm_val is
defined as a volatile unsigned char. This caused a duplicate declaration
error, which was solved by changing the declaration in fast_xfer() to
match the definition. I didn't dig deeper to try to understand if the
mismatch was intentional or test operation other than verify the compile
errors no longer occur.
-rw-r--r-- | Sprinter/Sprinter.pde | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Sprinter/Sprinter.pde b/Sprinter/Sprinter.pde index 308ee19..61f895b 100644 --- a/Sprinter/Sprinter.pde +++ b/Sprinter/Sprinter.pde @@ -359,7 +359,7 @@ unsigned char manage_monitor = 255; #ifdef SD_FAST_XFER_AKTIV #ifdef PIDTEMP - extern int g_heater_pwm_val; + extern volatile unsigned char g_heater_pwm_val; #endif void fast_xfer() @@ -371,7 +371,9 @@ unsigned char manage_monitor = 255; if(HEATER_0_PIN > -1) WRITE(HEATER_0_PIN,LOW); if(HEATER_1_PIN > -1) WRITE(HEATER_1_PIN,LOW); + #ifdef PIDTEMP g_heater_pwm_val = 0; + #endif lastxferchar = 1; xferbytes = 0; |