I'm working inside my "Cpu.cpp" file library, and it has an "#include <CpuOutputs.h>' as a library dependency. The arduino program (.ino) only has to use Cpu library, because CpuOutputs function is to support Cpu and no more. So .ino program only includes Cpu.h

The problem is, when I try to use CpuOutputs inside Cpu.cpp, I create a CpuOutput object form his own class, using respective consturctor, and:

1: If I only include Cpu.h into my .ino program, an error appears in Cpu.cpp: "CpuOutput is not recognized as a type"

2: If I include CpuOutput.h into .ino program, then there's no error. But I don't want to include it, because It must be a Cpu dependency, not for use in .ino program

Code from dependency CpuOutput library (not necessary, it runs ok, but I show the basics):

Are the class files in the same directory? I would guess they aren't. Since they are custom libraries, the compiler won't know it has to include the directory containing the CpuOutput library unless you put the #include in the .ino file. That would explain, not solve your problem, but if CpuOutput is not intended to be used standalone you may try using the same directory for both classes.

Well, it's up to you. I would put all files in the sketchbook/libraries/Cpu directory, but I might as well change my mind later and put the CpuOutput files in the utility subdirectory, sketchbook/libraries/Cpu/utility. I also think you should include the class using quotes (#include "CpuOutput.h") instead of angular brackets.

'CpuOutput outputObject(); in Cpu.h (calling constructor, with the intention to use it as a CpuOtput variable to use his own methods). It complies (I guess compiler detect that correspond with CpuOutput constructor). But when I try to use it in Cpu.cpp, no matter how I try to use 'outputObject', I have always the same errors calling his .setParameters function (maybe cause don't recognize it as a cpuOutput variable, but as a function):

Sorry for de syntax, #include Cpu1284.h is actually the include for Cpu.h, it's an error caused by change my real code in order to show us a easier and summary code. So Cpu.cpp has the Cpu.h include, and the "CpuOutput outputObject;" error still exist

That compiler error means that you're calling CpuOutput's no-argument constructor, but it doesn't exist. That's because you are never giving it arguments. Google for "c++ initializer lists" They're a way of passing arguments to the constructor of an object inside a class. Here's an example:

void Cpu1284ExtendedInput::inputsRead(uint8_t *muxDigital, int *muxAnalog){//This for loop is used to scroll through and store the 16 inputs on the FIRST multiplexerfor (uint8_t i=0; i<16; i++){

//The following 4 commands set the correct logic for the control pins to select the desired input//See the Arduino Bitwise AND Reference: http://www.arduino.cc/en/Reference/BitwiseAnd//See the Aruino Bitshift Reference: http://www.arduino.cc/en/Reference/BitshiftdigitalWrite(c0, (i&15)>>3);digitalWrite(c1, (i&7)>>2); digitalWrite(c2, (i&3)>>1); digitalWrite(c3, (i&1));

//Read and store the input//Since internal pullup is on, the pin goes low on changing, so the value needs to be flipped from 0 to 1 (!)muxDigital[i] = !digitalRead(dD);muxAnalog[i] = analogRead(aD);}}

My sketchbook is in my user ubuntu folder I think, but I don't remenber exactly right now because I'm at my house now and I don't have the working pc here

Anyway that's not a problem, I have other programs running ok, and they are heavy programs

Thanks

[Edit] Try if you want, to put this libraries in your libraries folder (placing Cpu1284ExtendedInput files in /Cpu1284/utilities/), and simply create an .ino program with the #include <cpu1284.h>, empty setup() and empty loop(). You should have the same error as I have?