Ambito de las variables funciones y librerias

Hola, tengo un problemilla con variables globales y librerias. Me explico. Tengo unas variables y constantes declaradas antes de setup() y loop() que se entiende que son vistas por todo el proyecto.

Por otra parte con tanta función y procedimiento al final hay un lio de programa, así que cree un fichero y con #include "misfunciones.h" donde voy trasladando estos procedimientos una vez van funcionando.

El problema está en que si estas funciones usan las variables globales declaradas al principio del proyecto no me las reconoce (no las ve).

Solución, pues lo que hago es ponerlas en misfunciones.h y ya está. En otros lenguajes así se hace, pero, es correcto en Arduino, o existe otra solución?

Por otra parte tengo otro problema, este sin resolver. Cuando llamo en un procedimiento en misfunciones.h a otro procedimiento no me lo reconoce. Es muy raro, pero no se por donde meterle mano. A ver si alguien me dice algo. Será una chorrada pero ...

Un saludo

Me autorespondo. El problema es que no está bien estructurado el fichero misfunciones.h. He leido la estructura de una libreria y no está bien.

Echa un vistazo a "extern": External variable - Wikipedia