OK, pongamos un ejemplo: si yo escribo en el LCD, estoy llamando a una función o estoy usando un objeto??? por que estoy enviando argumentos pero no recibiendo resultados, por otro lado, el LCD posee funciones y propiedades; como podría aqui determinar si estoy usando una función o un objeto?.
PDTA. gracias por responder.
eso, como mencioné antes, depende del compilador. Si usas por ejemplo el C de ccs, estás usando C y por tanto todo el código se guiará por llamados de funciones. (programación estructurada).
y creo que los demás compiladores (c18, picbasic, mikroc, hitech) tampoco usan el concepto de clase u objeto para programar microcontroladores.
Yo creo que el LCD podria ser una clase, ya que existen LCDs con diferentes caracteristicas, por ejemplo la cantidad de caracteres que se pueden mostrar, existirian LCDs (objetos) de 8x2 lineas, 16x2, 20x4, etc, y los metodos comunes a esta clase (funciones) podrian ser escribir un byte, inicializarLCD, etc.
Te estas complicando mucho, los objetos son de C++ y para un pic se usa C a secas el cual no se puede considerar nada como objeto a no ser que te montes tu propia estructura cosa que consumiria mucha memoria y programa.
aun no he escuchado ningun compilador de C++ para un pic (no digo que no los haya, pero para atmel y microchip no he oido nada nunca).Para AVR si hay compilador de C++: avr-gcc (WinAVR), p. ej. las bibliotecas de Arduino generalmente con clases C++. También se de un par de compiladores de C++ para PIC, pero no los he probado (ni planeo hacerlo): http://www.sourceboost.com/Products/BoostCpp/Overview.html y http://www.iar.com/en/Products/IAR-Embedded-Workbench/Microchip-PIC18/ (descontinuado). Además, en una respuesta a un comentario en el foro de Microchip Technology se comentó que para Junio se estaría agregando soporte para C++ a la nueva línea de compiladores XC, pero no se si tomarlo más como rumor que como un comentario "oficial".
...
Por que necesariamente es muy dependiente del compilador??? acaso al definir los objetos y las clases y metodos, no estamos usando ya OOP, independientemente del compilador??? el ejemplo de sander me parece totalmente viable.
...
aun no he escuchado ningun compilador de C++ para un pic (no digo que no los haya, pero para atmel y microchip no he oido nada nunca).Para AVR si hay compilador de C++: avr-gcc (WinAVR), p. ej. las bibliotecas de Arduino generalmente con clases C++. También se de un par de compiladores de C++ para PIC, pero no los he probado (ni planeo hacerlo): http://www.sourceboost.com/Products/BoostCpp/Overview.html y http://www.iar.com/en/Products/IAR-Embedded-Workbench/Microchip-PIC18/ (descontinuado). Además, en una respuesta a un comentario en el foro de Microchip Technology se comentó que para Junio se estaría agregando soporte para C++ a la nueva línea de compiladores XC, pero no se si tomarlo más como rumor que como un comentario "oficial".
...
Por que necesariamente es muy dependiente del compilador??? acaso al definir los objetos y las clases y metodos, no estamos usando ya OOP, independientemente del compilador??? el ejemplo de sander me parece totalmente viable.
...
la mejor forma de comprobarlo es que intentes compilarlo. haz la prueba y después nos comentas
Merlinz, por su puesto que también he leído esos enlaces en wikipedia, no extensamente pero si los he repasado. ...
Yo no creo que alcance con darle una repasadita :undecided: Hay que estudiar los distintos tipos de paradigmas de programación (http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n) ;-)
Pero como ya te digo no puedes comparar un codigo de C con uno de C++, no se le puede sacar una comparativa de que es que, si el ejemplo de LCD que puso esta en codigo C no puedes intentar sacar que es un objeto o un metodo ya que no existe esa forma de llamarlo.
-Los leds, el monitor y la memoria externa, serían objetos, no es cierto ???
-pero cuando se escriba en el monitor los mensajes de los estados de los leds, se estaría empleando una función o un método??? por que yo emplearia una función para escribir en el monitor, pero no se si seria correcto llamarlo función ???
- igualmente, cuando se escriba en la memoria externa por el puerto serial, sería función o metodo??? y se lo que se hace es leer ahi sería función o método???
- por que considerar objetos a los leds, si estos no tienen datos, ni métodos, etc, solo acciones básicas como on y off???
le das muchas vueltas :shock:
Definitivamente estamos hablando de ls OOP. Esta duda viene del planteamiento de que las funciones siempre devuelven un valor lógico, entonces si escribimos en la memoria externa del ejemplo, estaríamos usando un método; pero si la leemos, parece otro metodo inherente a la memoria externa (objeto), pero ya nos esta devolviendo un valor lógico, entonces función o método, lo mismo va si en caso le consultasemos si está ocupada o no, función o método???- igualmente, cuando se escriba en la memoria externa por el puerto serial, sería función o metodo??? y se lo que se hace es leer ahi sería función o método???
Volvemos siempre a lo mismo, depende del paradigma de programación empleado.
Si, lo se, lo siento. Es que cuando me invaden las dudas, estas crecen y se disipan hasta hacerme dudar de todo lo demás.
Muchas gracias por el ejemplo; veo que cuando te dirijes a los objetos usas ante todo los métodos, y veo que los metodos son parte de los objetos, entonces una función no puede ser parte de un objeto? o en la OOP se les relega (a las funciones) únicamente a las decisiones lógicas?
Definitivamente estamos hablando de ls OOP. Esta duda viene del planteamiento de que las funciones siempre devuelven un valor lógico, entonces si escribimos en la memoria externa del ejemplo, estaríamos usando un método; pero si la leemos, parece otro metodo inherente a la memoria externa (objeto), pero ya nos esta devolviendo un valor lógico, entonces función o método, lo mismo va si en caso le consultasemos si está ocupada o no, función o método???
void MAINFUNCION ();Código: [Seleccionar]void MAINFUNCION ();
Oh vaya!!! como obvie esa expresión!!!
definitivamente esto deja sin pie el argumento que me daba el programador de softwares al que le consulte, el cual decía que toda función necesariamente devuelve un valor.