Autor Tema: Este codigo tiene errores no es cierto?  (Leído 2040 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Gusfavio

  • PIC12
  • **
  • Mensajes: 56
Este codigo tiene errores no es cierto?
« en: 21 de Noviembre de 2013, 21:26:46 »
Buenas a todos, bueno estoy practicando con el libro PIC16F84, y vi un ejemplo que creo que tiene un error,  quisiera que me ayuden en este porfavor, se los muestro e indico el error


Código: ASM
  1. ; ZONA DE DATOS *********************************************************************
  2.  
  3.         CBLOCK
  4.         R_ContA                                         ; Contadores para los retardos.
  5.         R_ContB
  6.         R_ContC
  7.         ENDC
  8. ;
  9. ; RETARDOS de 4 hasta 10 microsegundos ---------------------------------------------------
  10. ;
  11. ; A continuación retardos pequeños teniendo en cuenta que para una frecuencia de 4 MHZ,
  12. ; la llamada a subrutina "call" tarda 2 ciclos máquina, el retorno de subrutina
  13. ; "return" toma otros 2 ciclos máquina y cada instrucción "nop" tarda 1 ciclo máquina.
  14. ;
  15. Retardo_10micros                                ; La llamada "call" aporta 2 ciclos máquina.
  16.         nop                                                     ; Aporta 1 ciclo máquina.
  17.         nop                                                     ; Aporta 1 ciclo máquina.
  18.         nop                                                     ; Aporta 1 ciclo máquina.
  19.         nop                                                     ; Aporta 1 ciclo máquina.
  20.         nop                                                     ; Aporta 1 ciclo máquina.
  21. Retardo_5micros                                 ; La llamada "call" aporta 2 ciclos máquina.
  22.         nop                                                     ; Aporta 1 ciclo máquina.
  23. Retardo_4micros                                 ; La llamada "call" aporta 2 ciclos máquina.
  24.         return                                          ; El salto del retorno aporta 2 ciclos máquina.
  25. ;
  26. ; RETARDOS de 20 hasta 500 microsegundos ------------------------------------------------
  27. ;
  28. Retardo_500micros                               ; La llamada "call" aporta 2 ciclos máquina.
  29.         nop                                                     ; Aporta 1 ciclo máquina.
  30.         movlw   d'164'                          ; Aporta 1 ciclo máquina. Este es el valor de "K".
  31.         goto    RetardoMicros           ; Aporta 2 ciclos máquina.
  32. Retardo_200micros                               ; La llamada "call" aporta 2 ciclos máquina.
  33.         nop                                                     ; Aporta 1 ciclo máquina.
  34.         movlw   d'64'                           ; Aporta 1 ciclo máquina. Este es el valor de "K".
  35.         goto    RetardoMicros           ; Aporta 2 ciclos máquina.
  36. Retardo_100micros                               ; La llamada "call" aporta 2 ciclos máquina.
  37.         movlw   d'31'                           ; Aporta 1 ciclo máquina. Este es el valor de "K".
  38.         goto    RetardoMicros           ; Aporta 2 ciclos máquina.
  39. Retardo_50micros                                ; La llamada "call" aporta 2 ciclos máquina.
  40.         nop                                                     ; Aporta 1 ciclo máquina.
  41.         movlw   d'14'                           ; Aporta 1 ciclo máquina. Este es el valor de "K".
  42.         goto    RetardoMicros           ; Aporta 2 ciclos máquina.
  43. Retardo_20micros                                ; La llamada "call" aporta 2 ciclos máquina.
  44.         movlw   d'5'                            ; Aporta 1 ciclo máquina. Este es el valor de "K".
  45. ;
  46. ; El próximo bloque "RetardoMicros" tarda:
  47. ; 1 + (K-1) + 2 + (K-1)x2 + 2 = (2 + 3K) ciclos máquina.
  48. ;
  49. RetardoMicros
  50.         movwf   R_ContA                         ; Aporta 1 ciclo máquina.
  51. Rmicros_Bucle
  52.         decfsz  R_ContA,F                       ; (K-1)x1 cm (cuando no salta) + 2 cm (al saltar).
  53.         goto    Rmicros_Bucle           ; Aporta (K-1)x2 ciclos máquina.
  54.         return                                          ; El salto del retorno aporta 2 ciclos máquina.

de donde rayos saca la formula (2 + 3K) ?? mas bien yo creo que la formula seria 5 +3k no es cierto? si si si si antes que me digan algo, si se que no seria mucho el cambio por q esta en micro segundos y todo eso, pero a lo que voy es que no seria exacto entonces con la formula que se plantea en el libro, y en otras partes si da a ver y conocer q no es exacto pero aqui no, por eso supongo q se habra equivocado o algo asi

aplicando la formula corregida, el resultado de k para 500 micros no seria 164, sino 163 y asi da exactamente 500us
« Última modificación: 21 de Noviembre de 2013, 21:40:08 por Gusfavio »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Este codigo tiene errores no es cierto?
« Respuesta #1 en: 21 de Noviembre de 2013, 23:19:10 »
1+k-1+2+2k-2+2

eso a mi me da 3k+2

sds
-
Leonardo Garberoglio

Desconectado Gusfavio

  • PIC12
  • **
  • Mensajes: 56
Re: Este codigo tiene errores no es cierto?
« Respuesta #2 en: 22 de Noviembre de 2013, 02:00:35 »
1+k-1+2+2k-2+2

eso a mi me da 3k+2

sds

acaso no se toma asi? 1+k-1+2+2k-2+2  (los que estan tachados dan la suma de 5)

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Este codigo tiene errores no es cierto?
« Respuesta #3 en: 22 de Noviembre de 2013, 08:46:43 »
1-1+2-2+2   +k+2k
0   + 0   + 2  +  3k = 2+3k

bueno si no lo ves así tendrías que retroceder unos años de estudio antes de querer hacer algo con micros.... de onda lo digo...
-
Leonardo Garberoglio

Desconectado Gusfavio

  • PIC12
  • **
  • Mensajes: 56
Re: Este codigo tiene errores no es cierto?
« Respuesta #4 en: 22 de Noviembre de 2013, 14:30:56 »
a ok, pense que esos k-1 se lo tomaban juntos simbolicamente por lo q estaba en parentesis, gracias por aclararme la duda

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Este codigo tiene errores no es cierto?
« Respuesta #5 en: 22 de Noviembre de 2013, 14:50:39 »
Igualmente hay un fallo en la fórmula del libro, y es el caso especial de K= 0. :)

"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.

Desconectado Gusfavio

  • PIC12
  • **
  • Mensajes: 56
Re: Este codigo tiene errores no es cierto?
« Respuesta #6 en: 22 de Noviembre de 2013, 19:15:28 »
jaja gracias por las respuestas, tengo una duda mas, pero corresponde aqui, es sobre programar jdm con un adaptador, este es el link por si alguien quiere responder :P
http://www.todopic.com.ar/foros/index.php?topic=41764.0