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.
This commit is contained in:
parent
52f7f30408
commit
976c90b315
1 changed files with 3 additions and 1 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue