Necesito un número grande en mi firmware, así que elegí mucho para el trabajo. En los documentos del microchip, el tipo largo proporciona 4Bytes para uso:
Asíquecreéestavariable(timeCounter):
Enunainterrupciónde100usdetimer2estavariableseincrementa:
Problema:Lavariablenotienesigno,perocuandograficosuvalor,¡elvalormáximoalcanzadoesaproximadamente32725!ylavariableestaFIRMADA!!!!imagen:
Elsiguientecódigomuestrauntamañode(sinsignolargo)iguala4bytes...
Yahedeshabilitadolasoptimizacionesdelcompilador.UtilizandoPIC18f26k80.
=========================================================
código:
#include"main.h"
void main( void ){
char string[100];
unsigned long timeCounter;
setupHw();
initHw();
initSw();
while( true ){
clearWDT();
/*============================================================================*\
* Task3 (60s)
* Processo...
* Dependências:
\* ===========================================================================*/
if( f60s ){
f60s = false;
sprintf(string, "TimeCounter (60s): %d\n", timeCounter);
txStringUart1(string);
} // end da task2
}
}