Bom, através de uma dica de outro post do fórum, cheguei a função RESTART_CAUSE().
A principio está funcionando para o que preciso, ou seja:
Ligo o PIC pela primeira vez, o LED permanece desligado.
Pressiono o RESET (pino MRCL) o LED acende.
Segue código didático feito em CCS:
- Código: Selecionar todos
// Verificação da causa de reinicialização.
// 29/9/16 / CCS.
//
#include <16f628a.h> //........................................................ Biblioteca básica do PIC.
#fuses NOPROTECT //............................................................ Leitura do código protegida.
#fuses NOCPD //................................................................ Leitura da EEPROM permitida.
#fuses NOBROWNOUT //........................................................... BROWNOUT desabilitado.
#fuses NOWDT //................................................................ WATCH DOG Desativado.
#fuses NOPUT //................................................................ PUT (Power Up Timer) Desativado.
#fuses MCLR //................................................................. Pino MASTER CLEAR ativado.
#fuses NOLVP //................................................................ Programação em baixa tensão desabilitada.
#fuses INTRC_IO //............................................................. Oscilador Interno e dois pinos de I/O liberados.
#define LED PIN_A4 //.......................................................... LED acende com VSS.
///////////////////////////////////////////////////////////////////////////////
void main() //................................................................. Função Inicial (Inicialização).
{
if (restart_cause()== NORMAL_POWER_UP) //................................... Verifica a inicialização. Se for normal...
{
output_high(LED); //..................................................... Desliga o LED.
}
else
{
output_low(LED); //...................................................... Se foi pelo MRCL (ou outra causa), Liga o LED.
}
setup_vref(false); //....................................................... Desabilita tensões de referencia.
setup_comparator(NC_NC_NC_NC); //........................................... Desabilita comparadores.
while(true) //.............................................................. Loop Principal do programa.
{
} //........................................................................ Fim do TRUE.
} //........................................................................... Fim do MAIN.