Hola, es buen criterio de programación la encapsulación de los datos. La idea es que las variables del módulo solo sean accedidas dentro del mismo módulo y que probeas una función para obtener ese valor, la cosa seria asi:
Modulo adc.h...
unit8 GetADCResult( void );
...
Modulo ad.c...
static uint8 LastADCValue;
unit8 GetADCResult( void )
{
return( LastADCValue );
}
interrupt ADC( void )
{
LastADCValue = ADCBUF0;
}
La variable global al módulo ADC es LastADCValue que solo este módulo accede, la función GetADCResult solo retorna el valor de la misma. Como esta función esta declarada en un H tiene visibildad global, pero ningún módulo externo puede alterar su valor.
Para los puristas seguramente esta solución demande más código en ROM, que es cierto, pero no deja de ser un buen
criterio de programación que por ser criterio su valor de verdad es totalmente subjetivo.
Saludos !