summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOhmEye <james@ohmeye.com>2012-04-30 23:59:53 -1000
committerOhmEye <james@ohmeye.com>2012-04-30 23:59:53 -1000
commit976c90b315a873b73bb19f4bbf1f8907cab37d82 (patch)
treee6c08f7bf202f18c14deeba88454bca4e546a5ea
parent52f7f3040874dc8b2ef4b0d570f7fa9d0291dfc3 (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.pde4
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;