Crear un sistema operativo con el PIC 16F877

Hola a todos el gusto de entrar en este grandioso mundo de la electrónica fue genial ahora que voy avanzando en mi carrera quiero saber como puedo unir las funciones del PIC 16f877 en una sola para que luego estas sean llamadas por subrutinas pueden ayudarme!
 
Rachet,

¿Podrías profundizar y explicarnos un poco más como funcionaría tu idea?

Explícanos bien que es lo que quieres hacer y así poder sugerirte algo.

No se si te refieres a hacer subrutinas que puedas llamar durante la programación del pic; pero si es así, te recuerdo que el assembler de microchip permite el uso de INC o includes. Puedes hacer pequeñas rutinas de uso general que tengan variables de entradas y variables de salida y luego incluirlas en el encabezado del programa principal de tus proyectos y llamarlas con CALL, pasándole sus variables de entrada y leyendo las que te entrega (variables de salida).


Saludos,
Marcelo.
 
rachet dijo:
Hola a todos el gusto de entrar en este grandioso mundo de la electrónica fue genial ahora que voy avanzando en mi carrera quiero saber como puedo unir las funciones del PIC 16f877 en una sola para que luego estas sean llamadas por subrutinas pueden ayudarme!

Amigo, tu post es algo confuso.

Por un lado el asunto es crear un sistema operativo para el PIC16F877 y por el otro preguntas como unir las funciones del pic ?

Sería interesante que detalles a que te refieres con funciones del pic. Te refieres a como enlazar los módulos del pic con subrutinas? Para poder llamarlos?

Lo que pretendes hacer es un software genérico que lo puedas acceder de afuera con simples comandos y que haga lo que tu le pidas? Si tu respuesta es SI, entonces tu quieres un interprete de comandos, no un sistema operativo.

Sería bueno que aclares tu punto.
 
Bueno lo que se quiere hacer en este foro es buscar una forma de hacer una funcion principal que pueda llamar a otras funciones y estas funcion tiene que hacer cada vez que llegue a una funcion determinada tengo el dato adiccional que va a corresponder, es decir que si tengo una funcion de escritura la funcion principal la llamara y esta le arrojara el dato aadicional que debe tener la funcion escribir datos
 
rachet dijo:
Bueno lo que se quiere hacer en este foro es buscar una forma de hacer una funcion principal que pueda llamar a otras funciones y estas funcion tiene que hacer cada vez que llegue a una funcion determinada tengo el dato adiccional que va a corresponder, es decir que si tengo una funcion de escritura la funcion principal la llamara y esta le arrojara el dato aadicional que debe tener la funcion escribir datos

rachet estoy tratando de hacer un esfuerzo para entenderte pero realmente no alcanzo a darme cuenta que es lo que quieres hacer!

Primero dices "lo que se quiere hacer en este foro" Parece como que es un proyecto del foro o algo así, de que estas hablando?

Todo lo que sigue realmente parece un juego de palabras.

Te pido qeu aclares tu punto porque sino me temo que no podré ayudarte en lo absoluto.
 
Bueno es un proyecto o un Pat colectivo osea un proyecto de clase lo que se quiere es hacer un diseño de un sistema operativo con el 16f788 ya tenemos las funciones o los programas individuales lo que nos falta es como se va a unir osea como puedo transformar un programa a una subrutina y llamarla desde una función principal y como adiciono el dato. la unica funcion que nos falta es la de red pero solo es la capa 2 del modelo osi, osea la de enlace, si puedes ayudarme muchas gracias .

Gracias POr Todo.
 
rachet dijo:
Bueno es un proyecto o un Pat colectivo osea un proyecto de clase lo que se quiere es hacer un diseño de un sistema operativo con el 16f788 ya tenemos las funciones o los programas individuales lo que nos falta es como se va a unir osea como puedo transformar un programa a una subrutina y llamarla desde una función principal y como adiciono el dato. la unica funcion que nos falta es la de red pero solo es la capa 2 del modelo osi, osea la de enlace, si puedes ayudarme muchas gracias .

Gracias POr Todo.

Leo y releo tus posts y la verdad parecen escritos para hacerme enojar

No te responderé hasta no entender de que demonios estas hablando.

Me gustaria que envies este texto a otra persona que entienda de electronica de microcontroladores a ver si puede traducir tu idioma al castellano básico.

No puedo entender como gente relacionada al tema se pueda expresar en forma tan confusa, de hecho ya tiendo a pensar que todo esto es una tomada de pelo.

Saludos
 
Tienes razón magio, yo tampoco he podido entender que es lo que realmente necesita rachet, en un mensaje dice algo completamente diferente a lo dice en otro, es una completa locura. :)
 
Li-ion dijo:
Tienes razón magio, yo tampoco he podido entender que es lo que realmente necesita rachet, en un mensaje dice algo completamente diferente a lo dice en otro, es una completa locura. :)

Exacto . Me he tomado mi tiempo para leer lo que dice tratando de 'interpretar' que demonios está intentando hacer. Pero ni el más poderoso de los magos me pudo ayudar para decifrar el misterio.

Bromas aparte o es una broma de mal gusto o realmente a esta gente le hace falta muuuuuuuucho por estudiar, empezando por el idioma castellano.

No quiero ser agresivo pero cuando leo este tipo de posts realmente no se si la gente cree que uno tiene una bola de cristal como para saber que idea tienen en la cabeza.

A mi punto de vista no tienen realmente ninguna idea de lo que quieren hacer ni de lo que hace un sistema operativo y por eso esa forma engorrosa de decir .... NADA!
 
Bueno me disculpo si piensa que estoy promiando no lo estoy soy Ingeniero de sistema lo que estamos tratando de hacer en nuestro proyecto es el diesño de un sisstema operativo para el pic 16f877, tenemos la mayoria de las funciones, pero hay que transformar las funciones en subrutina para que estas sean llamadas por una funcion principal el problema que se tiene es cada ves que se llame una funcion siempre se tiene que tener un Registro adiccional, el poco conocimiento de manejo de lenguajes de Pic es los que me tiene barado solo estoy pidiendo ayuda para poder armar mi proyecto si se los explico con un programa en un lenguaje no entenderia bueno es lo siguiente

funcion principal
{
intruccion para llamar al registro adicional y las otras funciones
}

funciones convertidas en subrutina
subrutina de leer en memoria eepron
{
}
subrutina de escribir en memoria eepron
{
}
etc
la unica que nos falta y creo que para mi conceto es la de funcion de red que solo abarca la capa 2 del modelo OSI osea la de enlace.

Gracias Por su atensión y Me di9sculpo
 
rachet dijo:
Bueno me disculpo si piensa que estoy promiando no lo estoy soy Ingeniero de sistema lo que estamos tratando de hacer en nuestro proyecto es el diesño de un sisstema operativo para el pic 16f877, tenemos la mayoria de las funciones, pero hay que transformar las funciones en subrutina para que estas sean llamadas por una funcion principal el problema que se tiene es cada ves que se llame una funcion siempre se tiene que tener un Registro adiccional, el poco conocimiento de manejo de lenguajes de Pic es los que me tiene barado solo estoy pidiendo ayuda para poder armar mi proyecto si se los explico con un programa en un lenguaje no entenderia bueno es lo siguiente

funcion principal
{
intruccion para llamar al registro adicional y las otras funciones
}

funciones convertidas en subrutina
subrutina de leer en memoria eepron
{
}
subrutina de escribir en memoria eepron
{
}
etc
la unica que nos falta y creo que para mi conceto es la de funcion de red que solo abarca la capa 2 del modelo OSI osea la de enlace.

Gracias Por su atensión y Me di9sculpo

No estuve visitando el foro eso es todo.

De todas formas... sigo sin entender!!!


por ejemplo: ¿se llame una funcion siempre se tiene que tener un Registro adiccional ?

Te refieres a llamar a funciones con parámetros???? o a subrutinas con parámetros? Este es tu punto?
 
Para llamar a una funcion dentro de otra siempre debes tener un registro auxiliar para que no se pierdan los datos y estas funciones se transformadorrman en subfunciones llamadas subrutinas
 
rachet dijo:
Para llamar a una funcion dentro de otra siempre debes tener un registro auxiliar para que no se pierdan los datos y estas funciones se transformadorrman en subfunciones llamadas subrutinas

Pues claro. Esto no es física de cohetes, es programación básica.

El punto es que recien ahora despues de unos 5 posts de cada uno, he entendido que desean hacer.

Y lo que necesitan hacer es una pila por software. En la pila se mandan los datos antes de entrar a la subrutina "PUSH" (parámetros) y en la subrutina hacen la extracción de los datos "POP".

Eso es simplemente lo que necesitan, una pila por software.

Una función es también una subrutina así que no hay tal diferencia. De hecho ambas son llamadas con parámetros y tiene códigos de retorno.
El agregado de una función simplemente tiene la finalidad de devolver un valor.

Para la pila deberán reservar una buena sección de memoria destinada solo a ella, y que tenga espacio suficiente como para almacenar todas las llamadas recursivas que hagan a subrutinas. De este modo se garantiza que no se sobreescriba la memoria que pertenezca a otros datos.
 
Lo unico que tienes que hacer es declarar tu subrutinas para eso lo unico que tienes que hacer es:


main
call fulanito
goto main

fulanito
molw 0x00
movwf var
return

END

Las subrutinas o funciones tienen que ser declaradas dentro del programa principal o son llamadas solamente por la instruccion call, es importante que en cada funcion al finalizar dicha funcion pongas return.
 
zoniko dijo:
Lo unico que tienes que hacer es declarar tu subrutinas para eso lo unico que tienes que hacer es:


main
call fulanito
goto main

fulanito
molw 0x00
movwf var
return

END

Las subrutinas o funciones tienen que ser declaradas dentro del programa principal o son llamadas solamente por la instruccion call, es importante que en cada funcion al finalizar dicha funcion pongas return.

Amigo creo que no estas reflejando lo que quiere hacer rachet.

De la forma que tu expones no pasas ningun parámetro.

Para un SO que requiera llamar a subrutinas desde otra subrutina en forma genérica la mejor forma es la pila.
 
Bueno me disculpo si estaba un poco molesto lo que pasa es que no habia mucho tiempo para entregar si quiera algo lo que hicimos fue transformar las funciones en subrutinas quiere decir que al final de cada funcion las retornamos a la funcion pri¡ncipal donde esta se llamaba, agradesco mucho por la ayuda y los beneficios prestados por ustedes y esta pagina, claro ahora vamos a tratar de aprender un poco mas de los circuitos y celulares y la programciones de pines para cosas que dejen utilidad a nuestra vida no dinero sino como un poco de tiempo y sin mucho esfuerzohacer las cosas mas faciles.

Gracias
 
rachet dijo:
Bueno me disculpo si estaba un poco molesto lo que pasa es que no habia mucho tiempo para entregar si quiera algo lo que hicimos fue transformar las funciones en subrutinas quiere decir que al final de cada funcion las retornamos a la funcion pri¡ncipal donde esta se llamaba, agradesco mucho por la ayuda y los beneficios prestados por ustedes y esta pagina, claro ahora vamos a tratar de aprender un poco mas de los circuitos y celulares y la programciones de pines para cosas que dejen utilidad a nuestra vida no dinero sino como un poco de tiempo y sin mucho esfuerzohacer las cosas mas faciles.

Gracias

Bueno, que bueno que hayas podido conseguir solucionar tu problema.

De todas formas, tampoco te entendí esta frase jajajaja.

Realmente el castellano puede parecer simple para los hispano hablantes pero considero que hay grandes diferencias de país a país. Tal vez para tu país tu oración es un mensaje claro, para mi son unn monton de palabras confusas. Traté de hacer un esfuerzo pero realmente me cuesta entender, supongo también algo de culpa hay de mi parte :D 8)
 
hola que tal
creo que lo que intentas decir es :
como hacer llamar la sub_rutinas una vez que las creas ?
si es esta la pregunta ,

1ro) crea tu programa principal y agrega las sub_rutinas al mismo.

recuerda que para ejecutar las sub_rutinas solo tienes que hacer uso de las intrucciones?



call n(para llamar la subrutina , donde x es el nombre de la sub_rutina que deseas llamar)

return(para retornar al cuerpo del programa una vez se halla concluido la sub_rutina)

goto (es una llamada incondicionar )........


-*-----------------------------------------


me gustaria saber el tipo de programador que estas implementando para programar
el pic 16f877.... circuito electronico .. por favor...

bay........suerte
 
Jesus creo que has caido medio offtopic. Este hilo se terminó hace rato y la verdad nunca supieron ser claros en lo que necesitaban.

Eso que tu planteas es simplemente una llamada a subrutina

Con respecto al programador de pic, hay muchos, yo personalmente uso el picstartplus de microchip , pero hay varios otros que funcionan bien. El más economico y que funciona + o - bien para proyectos amateur es el JDM programmer, hay muchos similares y 'copiados' que hacen exactamente lo mismo.

Para programar usas el software ICPROG o WINPIC800

Tambien hay varios hilso aqui que trata del tema. te invito a que hagas una busqueda

Saludos
 
Atrás
Arriba