major rearranging of config.h.dist, hopefully easier to follow for first-timers
This commit is contained in:
parent
be0a0134c8
commit
a064ea8e37
431
config.h.dist
431
config.h.dist
|
|
@ -1,6 +1,25 @@
|
||||||
#ifndef _CONFIG_H
|
#ifndef _CONFIG_H
|
||||||
#define _CONFIG_H
|
#define _CONFIG_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
CONTENTS
|
||||||
|
|
||||||
|
1. Mechanical/Hardware
|
||||||
|
2. Acceleration settings
|
||||||
|
3. Pinouts
|
||||||
|
4. Temperature sensors
|
||||||
|
5. Heaters
|
||||||
|
6. Communication options
|
||||||
|
7. Miscellaneous
|
||||||
|
8. Appendix A - PWMable pins and mappings
|
||||||
|
*/
|
||||||
|
|
||||||
|
/***************************************************************************\
|
||||||
|
* *
|
||||||
|
* 1. MECHANICAL/HARDWARE *
|
||||||
|
* *
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Values reflecting the gearing of your machine.
|
Values reflecting the gearing of your machine.
|
||||||
All numbers are fixed point integers, so no more than 3 digits to the right of the decimal point, please :-)
|
All numbers are fixed point integers, so no more than 3 digits to the right of the decimal point, please :-)
|
||||||
|
|
@ -17,6 +36,7 @@
|
||||||
// http://blog.arcol.hu/?p=157 may help with this next one
|
// http://blog.arcol.hu/?p=157 may help with this next one
|
||||||
#define STEPS_PER_MM_E 320.000
|
#define STEPS_PER_MM_E 320.000
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Values depending on the capabilities of your stepper motors and other mechanics.
|
Values depending on the capabilities of your stepper motors and other mechanics.
|
||||||
All numbers are integers, no decimals allowed.
|
All numbers are integers, no decimals allowed.
|
||||||
|
|
@ -34,13 +54,17 @@
|
||||||
#define SEARCH_FEEDRATE_Z 50
|
#define SEARCH_FEEDRATE_Z 50
|
||||||
#define SEARCH_FEEDRATE_E 50
|
#define SEARCH_FEEDRATE_E 50
|
||||||
|
|
||||||
// extruder settings
|
|
||||||
#define TEMP_HYSTERESIS 20
|
|
||||||
#define TEMP_RESIDENCY_TIME 60
|
|
||||||
|
|
||||||
// this is how many steps to suck back the filament by when we stop. set to zero to disable
|
// this is how many steps to suck back the filament by when we stop. set to zero to disable
|
||||||
#define E_STARTSTOP_STEPS 20
|
#define E_STARTSTOP_STEPS 20
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************\
|
||||||
|
* *
|
||||||
|
* 2. ACCELERATION *
|
||||||
|
* *
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
acceleration, reprap style.
|
acceleration, reprap style.
|
||||||
Each movement starts at the speed of the previous command and accelerates or decelerates linearly to reach target speed at the end of the movement.
|
Each movement starts at the speed of the previous command and accelerates or decelerates linearly to reach target speed at the end of the movement.
|
||||||
|
|
@ -62,139 +86,50 @@
|
||||||
|
|
||||||
#ifdef ACCELERATION_REPRAP
|
#ifdef ACCELERATION_REPRAP
|
||||||
#ifdef ACCELERATION_RAMPING
|
#ifdef ACCELERATION_RAMPING
|
||||||
#error Cant use ACCELERATION_REPRAP and ACCELERATION_RAMPING together.
|
#error Can't use ACCELERATION_REPRAP and ACCELERATION_RAMPING together.
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// which temperature sensor are you using?
|
|
||||||
// #define TEMP_MAX6675
|
|
||||||
// #define TEMP_THERMISTOR
|
|
||||||
// #define TEMP_AD595
|
|
||||||
|
|
||||||
#define NUM_TEMP_SENSORS 1
|
|
||||||
#ifdef TEMP_C
|
|
||||||
/***************************************************************************\
|
/***************************************************************************\
|
||||||
* *
|
* *
|
||||||
* Fill in the following struct according to your hardware *
|
* 3. PINOUTS *
|
||||||
* *
|
|
||||||
* If your temperature sensor has no associated heater, enter '255' as the *
|
|
||||||
* heater index. *
|
|
||||||
* *
|
|
||||||
* for GEN3 set temp_type to TT_INTERCOM, temp_pin to 0 and heater index to *
|
|
||||||
* 255 *
|
|
||||||
* *
|
* *
|
||||||
\***************************************************************************/
|
\***************************************************************************/
|
||||||
|
|
||||||
struct {
|
|
||||||
uint8_t temp_type;
|
|
||||||
uint8_t temp_pin;
|
|
||||||
|
|
||||||
uint8_t heater_index;
|
|
||||||
} temp_sensors[NUM_TEMP_SENSORS] =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
TT_INTERCOM,
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define NUM_HEATERS 0
|
|
||||||
#ifdef HEATER_C
|
|
||||||
/***************************************************************************\
|
|
||||||
* *
|
|
||||||
* Fill in the following struct according to your hardware *
|
|
||||||
* *
|
|
||||||
* For the atmega168/328, timer/pin mappings are as follows *
|
|
||||||
* *
|
|
||||||
* OCR0A - PD6 *
|
|
||||||
* OCR0B - PD5 *
|
|
||||||
* OCR2A - PB3 *
|
|
||||||
* OCR2B - PD3 *
|
|
||||||
* *
|
|
||||||
\***************************************************************************/
|
|
||||||
struct {
|
|
||||||
volatile uint8_t *heater_port;
|
|
||||||
uint8_t heater_pin;
|
|
||||||
volatile uint8_t *heater_pwm;
|
|
||||||
} heaters[NUM_HEATERS]/* =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
&PORTD,
|
|
||||||
PIND6,
|
|
||||||
&OCR0A
|
|
||||||
}
|
|
||||||
}*/;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// temperature history count. higher values make PID derivative term more stable at the expense of reaction time
|
|
||||||
#define TH_COUNT 8
|
|
||||||
|
|
||||||
// if you selected thermistor or AD595, what pin is it on?
|
|
||||||
#define TEMP_PIN_CHANNEL AIO0_PIN
|
|
||||||
#define ANALOG_MASK MASK(TEMP_PIN_CHANNEL)
|
|
||||||
|
|
||||||
/*
|
|
||||||
Firmware build options
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
RepRap Host changes it's communications protocol from time to time and intentionally avoids backwards compatibility. Set this to the date the source code of your Host was fetched from RepRap's repository, which is likely also the build date.
|
|
||||||
See the discussion on the reprap-dev mailing list from 11 Oct. 2010.
|
|
||||||
|
|
||||||
Undefine it for best human readability, set it to an old date for compatibility with hosts before August 2010
|
|
||||||
*/
|
|
||||||
// #define REPRAP_HOST_COMPATIBILITY 19750101
|
|
||||||
#define REPRAP_HOST_COMPATIBILITY 20100806
|
|
||||||
// #define REPRAP_HOST_COMPATIBILITY <date of next RepRap Host compatibility break>
|
|
||||||
|
|
||||||
|
|
||||||
// this option makes the step interrupt interruptible.
|
|
||||||
// this should help immensely with dropped serial characters, but may also make debugging infuriating due to the complexities arising from nested interrupts
|
|
||||||
#define STEP_INTERRUPT_INTERRUPTIBLE 1
|
|
||||||
|
|
||||||
/*
|
|
||||||
Xon/Xoff flow control.
|
|
||||||
Redundant when using RepRap Host for sending GCode, but mandatory when sending GCode files with a plain terminal emulator, like GtkTerm (Linux), CoolTerm (Mac) or HyperTerminal (Windows).
|
|
||||||
Can also be set in Makefile
|
|
||||||
*/
|
|
||||||
// #define XONXOFF
|
|
||||||
|
|
||||||
/*
|
|
||||||
move buffer size, in number of moves
|
|
||||||
note that each move takes a fair chunk of ram (69 bytes as of this writing) so don't make the buffer too big - a bigger serial readbuffer may help more than increasing this unless your gcodes are more than 70 characters long on average.
|
|
||||||
however, a larger movebuffer will probably help with lots of short consecutive moves, as each move takes a bunch of math (hence time) to set up so a longer buffer allows more of the math to be done during preceding longer moves
|
|
||||||
*/
|
|
||||||
#define MOVEBUFFER_SIZE 8
|
|
||||||
|
|
||||||
/*
|
|
||||||
FiveD on Arduino implements a watchdog, which has to be reset every 250ms or it will reboot the controller. As rebooting (and letting the GCode sending application trying to continue the build with a then different Home point) is probably even worse than just hanging, and there is no better restore code in place, this is disabled for now.
|
|
||||||
*/
|
|
||||||
// #define USE_WATCHDOG
|
|
||||||
|
|
||||||
/*
|
|
||||||
analog subsystem stuff
|
|
||||||
REFERENCE - which analog reference to use. see analog.h for choices
|
|
||||||
ANALOG_MASK - which analog inputs we will be using, bitmask. eg; #define ANALOG_MASK MASK(AIO0_PIN) | MASK(3) for AIN0 and AIN3
|
|
||||||
*/
|
|
||||||
#define REFERENCE REFERENCE_AVCC
|
|
||||||
|
|
||||||
#ifndef ANALOG_MASK
|
|
||||||
#define ANALOG_MASK 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Machine Pin Definitions
|
Machine Pin Definitions
|
||||||
|
|
||||||
- make sure to avoid duplicate usage of a pin
|
- make sure to avoid duplicate usage of a pin
|
||||||
|
|
||||||
- comment out pins not in use, as this drops the corresponding code and makes operations faster
|
- comment out pins not in use, as this drops the corresponding code and makes operations faster
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "arduino.h"
|
#include "arduino.h"
|
||||||
|
|
||||||
#ifdef GEN3
|
#ifndef GEN3
|
||||||
|
/*
|
||||||
|
user defined pins
|
||||||
|
adjust to suit your electronics,
|
||||||
|
or adjust your electronics to suit this
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define X_STEP_PIN AIO0
|
||||||
|
#define X_DIR_PIN AIO1
|
||||||
|
#define X_MIN_PIN AIO2
|
||||||
|
|
||||||
|
#define Y_STEP_PIN AIO3
|
||||||
|
#define Y_DIR_PIN AIO4
|
||||||
|
#define Y_MIN_PIN AIO5
|
||||||
|
|
||||||
|
#define Z_STEP_PIN DIO2
|
||||||
|
#define Z_DIR_PIN DIO3
|
||||||
|
#define Z_MIN_PIN DIO4
|
||||||
|
|
||||||
|
#define E_STEP_PIN DIO7
|
||||||
|
#define E_DIR_PIN DIO8
|
||||||
|
|
||||||
|
#define PS_ON_PIN DIO9
|
||||||
|
#else
|
||||||
// this is official reprap motherboard pinout
|
// this is official reprap motherboard pinout
|
||||||
#define TX_ENABLE_PIN DIO12
|
#define TX_ENABLE_PIN DIO12
|
||||||
#define RX_ENABLE_PIN DIO13
|
#define RX_ENABLE_PIN DIO13
|
||||||
|
|
@ -222,67 +157,211 @@ struct {
|
||||||
|
|
||||||
#define SD_CARD_DETECT DIO2
|
#define SD_CARD_DETECT DIO2
|
||||||
#define SD_WRITE_PROTECT DIO3
|
#define SD_WRITE_PROTECT DIO3
|
||||||
#else
|
|
||||||
/*
|
|
||||||
user defined pins
|
|
||||||
adjust to suit your electronics,
|
|
||||||
or adjust your electronics to suit this
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define X_STEP_PIN AIO0
|
|
||||||
#define X_DIR_PIN AIO1
|
|
||||||
#define X_MIN_PIN AIO2
|
|
||||||
|
|
||||||
#define Y_STEP_PIN AIO3
|
|
||||||
#define Y_DIR_PIN AIO4
|
|
||||||
#define Y_MIN_PIN AIO5
|
|
||||||
|
|
||||||
#define Z_STEP_PIN DIO2
|
|
||||||
#define Z_DIR_PIN DIO3
|
|
||||||
#define Z_MIN_PIN DIO4
|
|
||||||
|
|
||||||
#define E_STEP_PIN DIO7
|
|
||||||
#define E_DIR_PIN DIO8
|
|
||||||
|
|
||||||
#define PS_ON_PIN DIO9
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/***************************************************************************\
|
||||||
* list of PWM-able pins and corresponding timers
|
* *
|
||||||
* timer1 is used for step timing so don't use OC1A/OC1B
|
* 4. TEMPERATURE SENSORS *
|
||||||
*
|
* *
|
||||||
* For Arduino Diecimila/Duemilanove/UNO
|
\***************************************************************************/
|
||||||
* Don't use OC1A/OC1B (DIO9/DIO10)
|
|
||||||
*
|
/*
|
||||||
* OC0A DIO6
|
TEMP_HYSTERESIS: actual temperature must be target +/- hysteresis before target temperature can be achieved
|
||||||
* OC0B DIO5
|
TEMP_RESIDENCY_TIME: actual temperature must be close to target for this long before target is achieved
|
||||||
* OC1A DIO9
|
|
||||||
* OC1B DIO10
|
temperature is "achieved" for purposes of M109 and friends when actual temperature is within [hysteresis] of target for [residency] seconds
|
||||||
* OC2A DIO11
|
*/
|
||||||
* OC2B DIO3
|
#define TEMP_HYSTERESIS 5
|
||||||
*
|
#define TEMP_RESIDENCY_TIME 60
|
||||||
* For Arduino Mega
|
|
||||||
* Don't use OC1A/OC1B (DIO11/DIO12)
|
// which temperature sensors are you using? (intercom is the gen3-style separate extruder board)
|
||||||
*
|
// #define TEMP_MAX6675
|
||||||
* OC0A DIO13
|
// #define TEMP_THERMISTOR
|
||||||
* OC0B DIO4
|
// #define TEMP_AD595
|
||||||
* OC1A DIO11
|
// #define TEMP_INTERCOM
|
||||||
* OC1B DIO12
|
|
||||||
* OC2A DIO10
|
// if you selected thermistor or AD595, what pin is it on? (this value only used to fill ANALOG_MASK for you)
|
||||||
* OC2B DIO9
|
#define TEMP_PIN_CHANNEL AIO0_PIN
|
||||||
* OC3A DIO5
|
|
||||||
* OC3B DIO2
|
// ANALOG_MASK is a bitmask of all analog channels used- if you use more than one analog input, bitwise-or them all together
|
||||||
* OC3C DIO3
|
#define ANALOG_MASK MASK(TEMP_PIN_CHANNEL)
|
||||||
* OC4A DIO6
|
|
||||||
* OC4B DIO7
|
// how many temperature sensors do you have?
|
||||||
* OC4C DIO8
|
#define NUM_TEMP_SENSORS 1
|
||||||
* OC5A DIO46
|
|
||||||
* OC5B DIO45
|
/***************************************************************************\
|
||||||
* OC5C DIO44
|
* *
|
||||||
*
|
* Fill in the following struct according to your hardware *
|
||||||
*/
|
* *
|
||||||
|
* If your temperature sensor has no associated heater, enter '255' as the *
|
||||||
|
* heater index. Unassociated temperature sensors are still read, but they *
|
||||||
|
* do not affect firmware operation *
|
||||||
|
* *
|
||||||
|
* for GEN3 set temp_type to TT_INTERCOM, temp_pin to 0 and heater index to *
|
||||||
|
* 255 *
|
||||||
|
* *
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
|
#ifdef TEMP_C
|
||||||
|
struct {
|
||||||
|
uint8_t temp_type;
|
||||||
|
uint8_t temp_pin;
|
||||||
|
|
||||||
|
uint8_t heater_index;
|
||||||
|
} temp_sensors[NUM_TEMP_SENSORS] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
TT_INTERCOM,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************\
|
||||||
|
* *
|
||||||
|
* 5. HEATERS *
|
||||||
|
* *
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
|
// number of heaters- for GEN3, set to zero as extruder manages the heater by itself
|
||||||
|
#define NUM_HEATERS 0
|
||||||
|
|
||||||
|
/***************************************************************************\
|
||||||
|
* *
|
||||||
|
* Fill in the following struct according to your hardware *
|
||||||
|
* *
|
||||||
|
* If your heater isn't on a PWM-able pin, set heater_pwm to zero and we'll *
|
||||||
|
* use bang-bang output. Note that PID will still be used *
|
||||||
|
* *
|
||||||
|
* If a heater isn't attached to a temperature sensor above, it can still be *
|
||||||
|
* controlled by host but otherwise is ignored by firmware *
|
||||||
|
* *
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
|
#ifdef HEATER_C
|
||||||
|
struct {
|
||||||
|
volatile uint8_t *heater_port;
|
||||||
|
uint8_t heater_pin;
|
||||||
|
volatile uint8_t *heater_pwm;
|
||||||
|
} heaters[NUM_HEATERS]/* =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
&PORTD,
|
||||||
|
PIND6,
|
||||||
|
&OCR0A
|
||||||
|
}
|
||||||
|
}*/;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************\
|
||||||
|
* *
|
||||||
|
* 6. COMMUNICATION OPTIONS *
|
||||||
|
* *
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
RepRap Host changes it's communications protocol from time to time and intentionally avoids backwards compatibility. Set this to the date the source code of your Host was fetched from RepRap's repository, which is likely also the build date.
|
||||||
|
See the discussion on the reprap-dev mailing list from 11 Oct. 2010.
|
||||||
|
|
||||||
|
Undefine it for best human readability, set it to an old date for compatibility with hosts before August 2010
|
||||||
|
*/
|
||||||
|
// #define REPRAP_HOST_COMPATIBILITY 19750101
|
||||||
|
#define REPRAP_HOST_COMPATIBILITY 20100806
|
||||||
|
// #define REPRAP_HOST_COMPATIBILITY <date of next RepRap Host compatibility break>
|
||||||
|
|
||||||
|
/*
|
||||||
|
Xon/Xoff flow control.
|
||||||
|
Redundant when using RepRap Host for sending GCode, but mandatory when sending GCode files with a plain terminal emulator, like GtkTerm (Linux), CoolTerm (Mac) or HyperTerminal (Windows).
|
||||||
|
Can also be set in Makefile
|
||||||
|
*/
|
||||||
|
// #define XONXOFF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************\
|
||||||
|
* *
|
||||||
|
* 7. MISCELLANEOUS OPTIONS *
|
||||||
|
* *
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
move buffer size, in number of moves
|
||||||
|
note that each move takes a fair chunk of ram (69 bytes as of this writing) so don't make the buffer too big - a bigger serial readbuffer may help more than increasing this unless your gcodes are more than 70 characters long on average.
|
||||||
|
however, a larger movebuffer will probably help with lots of short consecutive moves, as each move takes a bunch of math (hence time) to set up so a longer buffer allows more of the math to be done during preceding longer moves
|
||||||
|
*/
|
||||||
|
#define MOVEBUFFER_SIZE 8
|
||||||
|
|
||||||
|
/*
|
||||||
|
FiveD on Arduino implements a watchdog, which has to be reset every 250ms or it will reboot the controller. As rebooting (and letting the GCode sending application trying to continue the build with a then different Home point) is probably even worse than just hanging, and there is no better restore code in place, this is disabled for now.
|
||||||
|
*/
|
||||||
|
// #define USE_WATCHDOG
|
||||||
|
|
||||||
|
/*
|
||||||
|
analog subsystem stuff
|
||||||
|
REFERENCE - which analog reference to use. see analog.h for choices
|
||||||
|
*/
|
||||||
|
#define REFERENCE REFERENCE_AVCC
|
||||||
|
|
||||||
|
/*
|
||||||
|
this option makes the step interrupt interruptible (nested).
|
||||||
|
this should help immensely with dropped serial characters, but may also make debugging infuriating due to the complexities arising from nested interrupts
|
||||||
|
*/
|
||||||
|
#define STEP_INTERRUPT_INTERRUPTIBLE 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
temperature history count. This is how many temperature readings to keep in order to calculate derivative in PID loop
|
||||||
|
higher values make PID derivative term more stable at the expense of reaction time
|
||||||
|
*/
|
||||||
|
#define TH_COUNT 8
|
||||||
|
|
||||||
// this is the scaling of internally stored PID values. 1024L is a good value
|
// this is the scaling of internally stored PID values. 1024L is a good value
|
||||||
#define PID_SCALE 1024L
|
#define PID_SCALE 1024L
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************\
|
||||||
|
* *
|
||||||
|
* 8. APPENDIX A - PWMABLE PINS AND MAPPINGS *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* list of PWM-able pins and corresponding timers *
|
||||||
|
* timer1 is used for step timing so don't use OC1A/OC1B *
|
||||||
|
* *
|
||||||
|
* For the atmega168/328, timer/pin mappings are as follows *
|
||||||
|
* *
|
||||||
|
* OCR0A - PD6 *
|
||||||
|
* OCR0B - PD5 *
|
||||||
|
* OCR2A - PB3 *
|
||||||
|
* OCR2B - PD3 *
|
||||||
|
* *
|
||||||
|
* For the atmega644, timer/pin mappings are as follows *
|
||||||
|
* *
|
||||||
|
* OCR0A - PB3 *
|
||||||
|
* OCR0B - PB4 *
|
||||||
|
* OCR2A - PD7 *
|
||||||
|
* OCR2B - PD6 *
|
||||||
|
* *
|
||||||
|
* For the atmega1280, timer/pin mappings are as follows *
|
||||||
|
* *
|
||||||
|
* OC0A - PB7 *
|
||||||
|
* OC0B - PG5 *
|
||||||
|
* OC2A - PB4 *
|
||||||
|
* OC2B - PH6 *
|
||||||
|
* OC3A - PE3 *
|
||||||
|
* OC3B - PE4 *
|
||||||
|
* OC3C - PE5 *
|
||||||
|
* OC4A - PH3 *
|
||||||
|
* OC4B - PH4 *
|
||||||
|
* OC4C - PH5 *
|
||||||
|
* OC5A - PL3 *
|
||||||
|
* OC5B - PL4 *
|
||||||
|
* OC5C - PL5 *
|
||||||
|
* *
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
#endif /* _CONFIG_H */
|
#endif /* _CONFIG_H */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue