Config h file

AlanL Nov 1, 2020

  1. AlanL

    AlanL TrainBoard Member

    23
    6
    7
    Playing with the Arduino family is a bit new to me. Followed the steps to load in the code to my Mega R3 and it comes up with an error that config.h does not exist. I can view the file but all I see is lines of comments.

    Can someone direct me to my way of errors! :)

    Thank you - Alan
     
  2. lyncher

    lyncher TrainBoard Member

    16
    11
    14
    Oops, my bad, just replied to this issue over in the Project 2020 update thread.

    Alan, if you see this, post your error messages here and I'll respond here. - lyncher
     
  3. AlanL

    AlanL TrainBoard Member

    23
    6
    7
    Code:
    ////////////////////////////////////////////////////////////////////////////////////
    //  © 2020, Chris Harlow. All rights reserved.
    //
    //  This file is a demonstattion of setting up a DCC-EX
    // Command station with optional support for direct connection of WiThrottle devices
    // such as "Engine Driver". If you contriol your layout through JMRI
    // then DON'T connect throttles to this wifi, connect them to JMRI.
    //
    //  THE WIFI FEATURE IS NOT SUPPORTED ON ARDUINO DEVICES WITH ONLY 2KB RAM.
    ////////////////////////////////////////////////////////////////////////////////////
    #include "config.h"
    #include "DCCEX.h"
    // Create a serial command parser for the USB connection, 
    // This supports JMRI or manual diagnostics and commands
    // to be issued from the USB serial console.
    DCCEXParser serialParser;
    void setup()
    {
      // The main sketch has responsibilities during setup()
      // Responsibility 1: Start the usb connection for diagnostics
      // This is normally Serial but uses SerialUSB on a SAMD processor
      Serial.begin(115200);
      DIAG(F("DCC++ EX v%S"),F(VERSION));
       
      CONDITIONAL_LCD_START {
        // This block is ignored if LCD not in use 
        LCD(0,F("DCC++ EX v%S"),F(VERSION));
        LCD(1,F("Starting")); 
        }   
    //  Start the WiFi interface on a MEGA, Uno cannot currently handle WiFi
    #if WIFI_ON
      WifiInterface::setup(WIFI_SERIAL_LINK_SPEED, F(WIFI_SSID), F(WIFI_PASSWORD), F(WIFI_HOSTNAME), IP_PORT);
    #endif // WIFI_ON
      // Responsibility 3: Start the DCC engine.
      // Note: this provides DCC with two motor drivers, main and prog, which handle the motor shield(s)
      // Standard supported devices have pre-configured macros but custome hardware installations require
      //  detailed pin mappings and may also require modified subclasses of the MotorDriver to implement specialist logic.
      // STANDARD_MOTOR_SHIELD, POLOLU_MOTOR_SHIELD, FIREBOX_MK1, FIREBOX_MK1S are pre defined in MotorShields.h
      // Optionally a Timer number (1..4) may be passed to DCC::begin to override the default Timer1 used for the
      // waveform generation.  e.g.  DCC::begin(STANDARD_MOTOR_SHIELD,2); to use timer 2
      DCC::begin(MOTOR_SHIELD_TYPE); 
      LCD(1,F("Ready")); 
    }
    void loop()
    {
      // The main sketch has responsibilities during loop()
      // Responsibility 1: Handle DCC background processes
      //                   (loco reminders and power checks)
      DCC::loop();
      // Responsibility 2: handle any incoming commands on USB connection
      serialParser.loop(Serial);
    // Responsibility 3: Optionally handle any incoming WiFi traffic
    #if WIFI_ON
      WifiInterface::loop();
    #endif
      LCDDisplay::loop();  // ignored if LCD not in use 
     
    // Optionally report any decrease in memory (will automatically trigger on first call)
    #if ENABLE_FREE_MEM_WARNING
      static int ramLowWatermark = 32767; // replaced on first loop 
      int freeNow = freeMemory();
      if (freeNow < ramLowWatermark)
      {
        ramLowWatermark = freeNow;
        LCD(2,F("Free RAM=%5db"), ramLowWatermark);
      }
    #endif
    }
    
     
  4. lyncher

    lyncher TrainBoard Member

    16
    11
    14
    Alan, You're working on a Windows machine, right? Do you have the File View Option to NOT hide file extensions enabled? I'm wondering ... if the option to NOT hide is not set, and you renamed config-example to config.h, then the file is actually named config.h.h with the final '.h' hidden ... and the ArduinoIDE will not find it.

    Just a thought ... worth asking :) -lyncher
     
  5. AlanL

    AlanL TrainBoard Member

    23
    6
    7
    GOOD CALL ! That was indeed the problem. Thank you very much! Alan
     

Share This Page