Necesito un número grande en mi firmware, así que elegí long para el trabajo. En los documentos de microchip el tipo largo proporciona 4Bytes para su uso:
Así que he creado esta variable (timeCounter):
En una interrupción de 100us del timer2 esta variable se incrementa:
Problema: La variable es unsigned long pero cuando trazo su valor el valor máximo alcanzado es aproximadamente 32725! y la variable es SIGNED!!!! imagen:
El código siguiente muestra un sizeof(unsigned long) igual a 4bytes...
Ya he desactivado las optimizaciones del compilador. Utilizando el PIC18f26k80.
\=========================================================
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
}
}
7 votos
Utilice texto cuando extraiga el código y la salida de la consola, no capturas de pantalla.
1 votos
hacer no poner el código y la salida de texto en las imágenes . Por favor, edita el post y copia y pega el texto aquí
0 votos
-1 por los comentarios anteriores: por favor, elimine las imágenes del texto y reemplace con el texto real, y el downvote será revertido.