TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: xabc2007 en 10 de Diciembre de 2010, 10:41:26
-
Hola,
Utilizo el lenguaje C para programar el Pic 16f876 y para saltar a una linea determinada utilizo en goto. Cuando el programa es corto va bien pero para programas largos se complica la programación.
Me gustaria saber el equivalente de CALL en ensamblador para C, cuando hago el programa en C, que pueda enviar a una linea determinada y una vez que ha hecho la rutina vuelva desde donde lo habia dejado, como ocurre en ensamblador con la instruccion CALL.
Gracias de antemano.
-
En C son las funciones. Lee un buen tutorial de C para que aprendas a usarlo.
-
gracias por tu respuesta. He mirado un manual y hace referencia a funciones matematicas.
Por favor, me podias poner un ejemplo:
gracias otra vez
-
goto no suele usarse en C, es poco recomendable. Estudia sobre las estructuras de control y funciones. Revisa el foro, hay muuuuuchos ejemplos de todo tipo.
Saludos!
-
gracias por tu respuesta. He mirado un manual y hace referencia a funciones matematicas.
Por favor, me podias poner un ejemplo:
gracias otra vez
Tienes que estudiar lo básico de lenguaje C. Lo mejor es que inicies con algún tutorial desde cero que encuentres en Google. Aprender C no tiene que ver con el manual del compilador que estás usando.
-
gracias por tu respuesta. He mirado un manual y hace referencia a funciones matematicas.
Por favor, me podias poner un ejemplo:
gracias otra vez
Tienes que estudiar lo básico de lenguaje C. Lo mejor es que inicies con algún tutorial desde cero que encuentres en Google. Aprender C no tiene que ver con el manual del compilador que estás usando.
Concuerdo plenamente con migsantiago. Yo empecé a programar en C los PIC (nunca antes había programado en C) y uno de los libros que encontré en la web fue "aprenda ANSI C como si estuviera en primero" y realmente es muy sencillo entenderlo
-
te pongo un pequeño ejemplillo que te explicara algunas ventajas de las funciones hay muchas mas cosas y es un tema muy extenso pero te expli tres de los casos mas usuales para el uso de las funciones:
void funcion_1(void)
{
//aqui haces lo que quieras
}
int funcion_2(void)
{
int variable1;
variable1= 20 /5;
return variable1;
}
int funcion_3 (int x)
{
int variable1;
variable1= x * 3;
return variable1;
}
void main (void)
{
int valor,resultado; //declaracion devariables
funcion_1();
valor = funcion _ 2();
resutado = funcion _ 3 (20);
}
en este ejmplo, desde la funcion pricipal (main) mandas llamar la funcion "funcion1" lo de void significa que no regreara ningun valor y el void dentro del parentesis significa que no recivira algun valor, en esta funcion haces lo que quieras al terminar de hacerlo regresa a seguir donde se quedo el programa en este caso la linea "valor = funcion _ 2();" bueno este es otro caso vas a asignar el valor que te regrese la funcion "funcion_2" si te fijas ya la declaramos como "int funcion_2" lo que significa que devolvera un valor tipo "int", asi que dentro de la funion he creado una variable llamada "variable1" luego hago una operacion 20/5, al poner return dice que al volver al main le retornara el valor de "variable1" en este caso un 4, por lo tanto en el main la variable valor valdra 4, y seguira en el programa con la linea "resutado = funcion _ 3 (20);" y aqui por ultimo te explico que hace esta funcion: si te fijas dentro del parentesis puse el numero 20, este es un valor cualquiera del tipo int (0 a 255 en el caso del compilador CCS) y debe ser del tipo int por que si te fijas tambien declare en la funcion_3 dentro del parentesis: "int x" bueno lo que haces es que le cargas 20 a funcion 3, la cual se lo asignara a la variable local de dicha funcion llamada x y dentro de esta funcion trabajara con este valor al meno que lo cambies, entonces hace la operacion "x * 3" es decir 20 * 3 asi y se lo asigna a "variable1" que es la que se devuelve al regresar a el main, por lo tanto en el main la variable "resltado" valdra 60.
espero que te sirva de algo esta pequeña explicacion y como te dijo "migsantiago" estudia un manual por que hay muchas mas cosas interesantes en este lenguaje como con el uso de los punteros en las funciones etc etc, a por cierto como dice Suky aunque puedes usar el goto en el lenguaje C, te recomiendo que no lo hagas, la verdad se ve mal y se sale un poco del sistema de programacion en C, pero eso es cuetion de gustos.
Saludos
-
Muchas gracias a todos.
Saludos.
-
Hola amigo, acá te dejo un tutorial sencillo para que te inicies, Tutorial CCS (http://www.megaupload.com/?d=Y11VHAS1)
saludos.
-
Hola amigo, acá te dejo un tutorial sencillo para que te inicies, Tutorial CCS (http://www.megaupload.com/?d=Y11VHAS1)
saludos.
Yo no le daría un tutorial de un compilador, le daría un tutorial estándar de lenguaje C. El empezar a aprender C con un compilador específico (y malo como CCS) no creo que sea buena idea.
-
Yo no le daría un tutorial de un compilador, le daría un tutorial estándar de lenguaje C. El empezar a aprender C con un compilador específico (y malo como CCS) no creo que sea buena idea.
IDEM...
Hay otro que promete lo siguiente:
Aprendiendo C en 21 Días