Hola a todos. Ultimamente me he estado planteando realizar mas tareas con los pic, el caso es que Yo siempre he sido rata de ensamblador, pero lo cierto es que mi último proyecto, un programador para el control de contactores con un reloj de "alta precisión", me ha llevado bastante tiempo, y puesto que no todos los programas van a necesitar un control de tiempos exahustivo, pues me he planteado pasarm a Picc para acortar el tiempo de desarrollo.
El caso es que en mi primer programa me he planteado realizar una función que me realice una pausa de x ms, como la delay.c pero más precisa. Mi problema radica en que si le paso argumentos a esa función, el código ensamblador no reconoce las variables:
----------------------------------------------------------------------------------------------
#include <pic.h>
#include <htc.h>
#define FOSC 4
void espera_ms(unsigned char intervalo);
void main(void)
{
.....
espera_ms(1);
}
void espera_ms(unsigned char intervalo){
#asm
decfsz _intervalo, F
....
#endasm
return;
}
----------------------------------------------------------------------------------------------
me da el error "Error [800] ; 0. undefined symbol "_intervalo"" tanto con guión bajo como sin él. La única forma de que el ensamblador reconozca la variable es declarándola como global (y no pasarla como parámetro), pero claro está, así ya pierde la gracia.
Además sería interesante, una vez funciones, hacer una librería para utilizarla desde cualquier programa.
Un saludo y os agradezco las sugerencias.