Autor Tema: Rutinas para compartir  (Leído 65865 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6759
Re: Rutinas para compartir
« Respuesta #15 en: 02 de Julio de 2009, 21:47:27 »
Esta muy bien lo que dices jim_17. Pero muchas veces eso es perder el tiempo sin razón, ya que lo importante del programa se basa en otras cosas y esto son complementos, nada más. :wink:
No contesto mensajes privados, las consultas en el foro

Desconectado jim_17

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
    • Blog personal
Re: Rutinas para compartir
« Respuesta #16 en: 03 de Julio de 2009, 11:01:01 »
Ya lo sé, no digo que esas rutinas no sirvan para nada, te facilitan la faena, pero mi opinión es que la primera vez, siempre es mejor tender a crearla tu mismo (ya que no son muy complejas) o entenderlas. Todos sabemos que las cosas aprendidas mecánicamente no sirven para nada, siempre es mejor entender el concepto y luego aplicarlo. :-/

Lo expuesto era una idea que me vino a la cabeza y no quería dejarlo ahí, no se quería compartirlo con los demás. :D


Salu2.
Share the world !

Blog's

http://www.area0x33.com

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6759
Re: Rutinas para compartir
« Respuesta #17 en: 03 de Julio de 2009, 11:12:02 »
 :D  :D Por eso dije que esta muy bien lo expuesto! Pero mi di mi opinión al respecto.  :mrgreen:
No contesto mensajes privados, las consultas en el foro

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3561
    • Impresiones en 3D
Re: Rutinas para compartir
« Respuesta #18 en: 03 de Julio de 2009, 15:21:05 »
Para ser sincero, muchos se pasan al C, al BASIC porque muchos problemas están resueltos, como por ejemplo, multiplicar, dividir, comunicación RS232, USB y muchos etc. Con ese criterio, todos deberíamos quedarnos con el ASM.

Entiendo muy bien tu punto de vista, y si es necesario saber porque se hace de esa manera las cosas pero muchas veces nos juega en contra.
Por ejemplo, la rutina que subí de división, está echa de la manera que vos explicaste, y si te das cuenta, no es nada eficiente. Un mismo proceso que le estoy haciendo hacer al PIC con la rutina de dividir, tardó más de 20 minutos (medidos con el watchclock del MPLAB) y con la rutina que subió SUKY tardó poco más de 1 segundo.

De echo, la rutina de suky tuve que modificarla porque no dividía la cantidad de dígitos que yo necesitaba, así que me vi a la obligación de estudiar como funciona y la modificación fue muy sencilla.

Aprovecho para darte las gracias SUky  :-/ :-/ :-/
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: Rutinas para compartir
« Respuesta #19 en: 04 de Julio de 2009, 06:32:28 »
hola, yo estoy deacuerdo con Leon, si tuviesemos una libreria tan amplia y bien echa como el c o basic... no acabariamos a veces "clrf cerebro" en mi humilde opinion.  esta muy bien la iniciativa de explicar como funciona, pero pienso que un ejemplo, vale mas que 1000les de palabras, y si ademas lleva explicacion, olE¡¡ por lo menos para mi que soy duro de mollera  :mrgreen:
 traduccion del 16f876 datasheet espero os sirva

un saludo

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3561
    • Impresiones en 3D
Re: Rutinas para compartir
« Respuesta #20 en: 05 de Julio de 2009, 00:19:53 »
Me parece muy bien que tengas otro punto de vista  :-/ Lo que no te logro entender es esta frase: (debe ser por la hora y porque tengo mucho sueño)

si tuviesemos una libreria tan amplia y bien echa como el c o basic... no acabariamos a veces "clrf cerebro" en mi humilde opinion. 
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: Rutinas para compartir
« Respuesta #21 en: 05 de Julio de 2009, 05:45:23 »
pues eso, estas  :ni) clrf cerebro  :D, que si tuviesemos librerias de todo, no nos pasariamos al c, basic... en un futuro, o a lo mejor no es necesario y se puede seguir con asm. pero efectivamente creo que es la causa de que la gente opte por otro tipo de lenguaje
 en lo que me gusta a mi, sonido, midi... y esas cosillas que por aqui no gustan nada  :mrgreen: casi todos utilizan arduino (pduaj), dicen solo por el lenguaje, (siempre me lo intentan comparar con los pic. :shock: arduino esto si, aquello tambien, pic de eso nada...) y hay que verles la cara cuando ven un programa en assembler, parece les diera miedo u algo asi :evil:. tan complicado es :huh: o tan facil son los otros

un saludo

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Rutinas para compartir
« Respuesta #22 en: 05 de Julio de 2009, 05:52:36 »
Alogic_on muy bueno el data del 16f876, si tienes mas subelos  :P
Respecto de esta discusion yo, personalmente, creo que todo lo que tengamos ya hecho ( rutinas, librerias, etc ) vienen muy bien, porque si ya de por si porogramar en ensamblador es mas lento y tedioso que en C o basic, tener estas rutinas y librerias, hace que el ensamblador tenga menos desventajas a la hora de programar, al igual que los programas para calcular delays etc. Pero es bueno entenderlas porque hay veces que tal y como estan no te sirven y si tienes que adaptarlas a tu programa, si no sabes como funcionan no podras hacerlo.

tapi8

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3561
    • Impresiones en 3D
Re: Rutinas para compartir
« Respuesta #23 en: 05 de Julio de 2009, 06:29:54 »
pues eso, estas  :ni) clrf cerebro  :D, que si tuviesemos librerias de todo, no nos pasariamos al c, basic... en un futuro, o a lo mejor no es necesario y se puede seguir con asm. pero efectivamente creo que es la causa de que la gente opte por otro tipo de lenguaje
 en lo que me gusta a mi, sonido, midi... y esas cosillas que por aqui no gustan nada  :mrgreen: casi todos utilizan arduino (pduaj), dicen solo por el lenguaje, (siempre me lo intentan comparar con los pic. :shock: arduino esto si, aquello tambien, pic de eso nada...) y hay que verles la cara cuando ven un programa en assembler, parece les diera miedo u algo asi :evil:. tan complicado es :huh: o tan facil son los otros

un saludo
Pero Alogic, entonces estás de acuerdo conmigo. Tal vez yo me expresé mal. Me refiero a lo mismo que tu dice.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: Rutinas para compartir
« Respuesta #24 en: 05 de Julio de 2009, 14:21:23 »
 sigues  :ni) adormilao  :D, lo mismo que tu  8)
Citar
Para ser sincero, muchos se pasan al C, al BASIC porque muchos problemas están resueltos, como por ejemplo, multiplicar, dividir, comunicación RS232, USB y muchos etc
mas menos lo mismo ;)

Citar
Alogic_on muy bueno el data del 16f876, si tienes mas subelos

ojala tuviese mas como ese, a mi me llamo la atencion sobre todo el capitulo del i2c, creo que hasta lo voy entendiendo  :mrgreen: de todas formas cada uno tendra algun datasheet o tutoriales de mplab u otros que tengan que ver, quien sabe
Citar
hay veces que tal y como estan no te sirven y si tienes que adaptarlas a tu programa, si no sabes como funcionan no podras hacerlo.
yo creo que mas que tener que adaptarlas a nuestros programas las usamos de ejemplo para desarrollar y entender lo que necesitamos, aunque a veces coincida con lo que queremos, pero ya sea estudiandolas o solo copiando/pegando algo seguro que se aprende

un saludo

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Rutinas para compartir
« Respuesta #25 en: 07 de Julio de 2009, 02:41:03 »
Me gustaria saber si se pueden utilizar las subrutinas del c que trae el mplab en archivos asambler. Para asi evitarnos estar haciendo nuestras propias rutinas.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Rutinas para compartir
« Respuesta #26 en: 07 de Julio de 2009, 11:48:45 »
Citar

A mi me llamo la atencion lo bien traducido que esta, es muy raro ver un texto tecnico tan bien traducido, y despues de ver tantas traducciones automaticas es para alucinar  :P.

Es una pena que con tanta informacion como tenemos de esta serie 16f87X nos la quiten

tapi8

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1689
Re: Rutinas para compartir
« Respuesta #27 en: 07 de Julio de 2009, 16:10:28 »
van a quiitar la serie 16F87X??? :shock: :? y porque???
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Rutinas para compartir
« Respuesta #28 en: 07 de Julio de 2009, 18:11:34 »
Si hozate si miras en las hojas de microchip veras que solo aparece en productos maduros y la sustituyen por la serie 16f88X que hay que reconocer que es mejor y a mitad de precio, pero Alogic_on creo que no tiene "datas" traducidos  :( :lol: mala suerte

tapi8

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Rutinas para compartir
« Respuesta #29 en: 08 de Julio de 2009, 21:06:23 »
Bueno, dejo esta rutina que acabo de hacer como desafío personal para ver cuál era la manera más fácil y rápida para detectar una tecla presionada de un teclado 4x4(podria modificarse para teclados de menor tamaño facilmente):

Requerimientos:
  • Debe respetarse la conexión como muestra el esquema;
  • Debe haberse configurado el TRISB como 0xF0 para setear las correspondientes entradas/salidas;
  • PullUps del PORTB activadas o bien poner la correspondiente resistencia de PullUp en cada columna;

Observaciones:
  • Una vez ejecutado el agoritmo, W contendrá un valor entre[0,15] si se ha encontrado una tecla o bien CUALQUIER valor fuera de dicho intervalo si no se ha encontrado ninguna;
  • Este algoritmo sólo detecta una tecla por vez.Si se presiona más de una a la vez, el algoritmo asumirá(devolerá) que no se está presionando ninguna;
  • Ideal para ser utilizado en combinación con la interrupción por cambio en el PORTB, o bien simplemente para ser utilizada por constante pooling;
  • El algoritmo NO limpia el flag de interrupción por cambio de puertoB en caso de utilizarse dicha interrupción;
  • No está contemplado el algoritmo de antirrebote;

Código: ASM
  1. ;Función para leer un teclado en el PORTB[C3 C2 C1 C0 F3 F2 F1 F0] by BrunoF. http://www.todopic.com.ar/foros
  2. ;El TRISB debe haber sido seteado previamente al valor 0xF0;
  3. ;Si el uC posee weak pullups en el puertob[4.7] deben ser activadas. Caso contrario deberá colocarse una pullup por Columna del teclado.
  4.  
  5. LEE_TECLADO     movlw   b'11111110'             ;Fila 0
  6.                 movwf   PORTB
  7.                 nop                             ;dar tiempo a que se efectivicen los cambios
  8.                 xorwf   PORTB,W                 ;comparar buscando diferencias
  9.                 btfss   STATUS,Z                ;Ninguna tecla presionada?
  10.                 goto    Encontrada              ;Hay tecla presionada
  11.  
  12.                 movlw   b'11111101'             ;Fila 1
  13.                 movwf   PORTB
  14.                 nop                             ;dar tiempo a que se efectivicen los cambios
  15.                 xorwf   PORTB,W                 ;comparar buscando diferencias
  16.                 btfss   STATUS,Z                ;Ninguna tecla presionada?
  17.                 goto    Encontrada              ;Hay tecla presionada
  18.  
  19.                 movlw   b'11111011'             ;Fila 2
  20.                 movwf   PORTB
  21.                 nop                             ;dar tiempo a que se efectivicen los cambios
  22.                 xorwf   PORTB,W                 ;comparar buscando diferencias
  23.                 btfss   STATUS,Z                ;Ninguna tecla presionada?
  24.                 goto    Encontrada              ;Hay tecla presionada
  25.  
  26.                 movlw   b'11110111'             ;Fila 3
  27.                 movwf   PORTB
  28.                 nop                             ;dar tiempo a que se efectivicen los cambios
  29.                 xorwf   PORTB,W                 ;comparar buscando diferencias
  30.                 btfss   STATUS,Z                ;Ninguna tecla presionada?
  31.                 goto    Encontrada              ;Hay tecla presionada
  32.  
  33.                 movlw   0xF0
  34.                 movwf   PORTB                   ;dejar preparadas las entradas para interrupcion
  35.                 retlw   0xFF                    ;volver indicando que no hay tecla presionada(W=255)
  36. Encontrada
  37.                 comf    PORTB,W                 ;acomodar valor...
  38.                 addlw   0x11
  39.                 bcf     PORTB,0                 ;dejar preparadas las entradas para interrupcion SIN AFECTAR A W
  40.                 bcf     PORTB,1
  41.                 bcf     PORTB,2
  42.                 bcf     PORTB,3
  43.                 return                          ;volver con W=Nro tecla presionada [0,15]
  44.  

El esquema de conexión:


Saludos.
« Última modificación: 08 de Julio de 2009, 21:11:09 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.