Autor Tema: ajuda pic16f876a  (Leído 20214 veces)

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

Desconectado NiHs2

  • PIC10
  • *
  • Mensajes: 38
ajuda pic16f876a
« en: 26 de Septiembre de 2006, 14:07:17 »
hoy estoy progamando el pic, más hay mucho erros!!

No consigo converter a/d!!

Puede me ajudar!!

abrazos

 #DEFINE  BANK1  BSF  STATUS,RP0
 #DEFINE  BANK0  BCF  STATUS,RP0
 #DEFINE  TEMP_REF  PORTA,2
 #DEFINE  AQUECEDOR  PORTC,2
 #DEFINE  TEMP_REAL  PORTA,0

 BANK1
 MOVLW  B'11111111'
 MOVWF  TRISA
 MOVLW  B'11111111'
 MOVWF  TRISB
 MOVLW  B'00000000'
 MOVWF  TRISC
 MOVLW  B'11011011'
 MOVWF  OPTION_REG
 MOVLW  B'00000000'
 MOVWF  INTCON     
 MOVLW  B'00000001'
 MOVWF   ADCON1
 BANK0
LE_TEMPREAL
 MOVLW  B'01010001'   
 MOVWF  ADCON0
 BSF  ADCON0,GO   
 BTFSC  ADCON0,GO   
 GOTO  $-1
 MOVF  ADRESH,W
 MOVWF  TEMP
 RETURN
LE_TEMPREF
 MOVLW  B'01001001'   
 MOVWF  ADCON0
 BSF  ADCON0,GO   
 BTFSC  ADCON0,GO   
 GOTO  $-1
 MOVF  ADRESH,W
 MOVWF  TEMPREF
 RETURN
END

Alguém sabe el erro!!!

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ajuda pic16f876a
« Respuesta #1 en: 26 de Septiembre de 2006, 14:48:38 »
hoy estoy progamando el pic, más hay mucho erros!!

No consigo converter a/d!!

Puede me ajudar!!



En ese código estás

1. leyendo el canal 2
2. El Vref es el pin AN3.
3. Haces un "return" cuando no hace falta! porque no has hecho ningún call.  Si haces un return sin un call previo, y el stack está vacío, el Program Counter irá a la posición 0x000.


Saludos


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado NiHs2

  • PIC10
  • *
  • Mensajes: 38
Re: ajuda pic16f876a
« Respuesta #2 en: 26 de Septiembre de 2006, 16:07:51 »
hoy estoy progamando el pic, más hay mucho erros!!

No consigo converter a/d!!

Puede me ajudar!!



En ese código estás

1. leyendo el canal 2
2. El Vref es el pin AN3.
3. Haces un "return" cuando no hace falta! porque no has hecho ningún call.  Si haces un return sin un call previo, y el stack está vacío, el Program Counter irá a la posición 0x000.


Saludos




Gracias!!!

Más yo no post el porgrama inteiro!!


PROCESSOR   <P16F876A> 
   #INCLUDE   <P16F876A.INC>
   
   __config _XT_OSC & _PWRTE_OFF & _WDT_ON & _CP_OFF
   
   CBLOCK   0X20
   TEMP
   TEMPREAL
   TEMPREF
   ENDC
   
   #DEFINE      BANK1      BSF      STATUS,RP0
   #DEFINE      BANK0      BCF      STATUS,RP0
   #DEFINE      TEMP_REF         PORTA,2
   #DEFINE      AQUECEDOR         PORTA,4
   #DEFINE      TEMP_REAL         PORTA,0

   ORG       0X00            ;INICIO DO CÓDIGO
   GOTO      INICIO
   
   ORG       0X04            ;NÃO PRECISA (COLOCADO SÓ PARA QUE NÃO HAJA PROBLEMAS FUTUROS)
   RETFIE

INICIO
   BANK1
   MOVLW      B'00000111'
   MOVWF      TRISA
   MOVLW      B'11111111'
   MOVWF      TRISB
   MOVLW      B'00000000'
   MOVWF      TRISC
   MOVLW      B'11011011'
   MOVWF      OPTION_REG
   MOVLW      B'00000000'
   MOVWF      INTCON            ;NÃO HAVERÁ INTERRUPÇÃO
    MOVLW      B'00001101'
   MOVWF       ADCON1
   BANK0
   
   CLRF      PORTA
     CLRF      PORTB
      CLRF      PORTC
      CALL         CLEAR_RAM
PRINCIPAL
   CALL      LE_TEMPREF         ;CONVERTE PARA DIGITAL
   MOVLW      .110
   SUBWF      TEMPREF,F
   CALL      LE_TEMPREAL         ;CONVERTER PARA DIGITAL
   MOVLW      .110
   SUBWF      TEMPREAL,F
   CALL      ACIONAMENTO
LE_TEMPREAL
   MOVLW      B'01000001'         ;PARA O CANAL 0 (CONVESÃO DA TEMPREAL)
   MOVWF      ADCON0
   BSF         ADCON0,GO         ;INICIO DA CONVERSÃO
   BTFSC      ADCON0,GO         ;FIM DA CONVERSÃO
   GOTO      $-1
   MOVF      ADRESH,W
   MOVWF      TEMPREAL
   RETURN
LE_TEMPREF
   MOVLW      B'01001001'         ;PARA O CANAL 1 (CONVERSÃO DA TEMPREF)
   MOVWF      ADCON0
   BSF         ADCON0,GO         ;INICIO DA CONVERSÃO
   BTFSC      ADCON0,GO         ;FIM DA CONVERSÃO
   GOTO      $-1
   MOVF      ADRESH,W
   MOVWF      TEMPREF
   RETURN
ACIONAMENTO
   MOVFW      TEMPREAL
   SUBWF      TEMPREF,W         ;W=TEMPREF-TEMPREAL      
   BTFSC      STATUS,Z
   CALL      DESLIGADO            ;SE C=0
   BTFSC      STATUS,C         ;SE 0 TESTA STATUS C
   GOTO      LIGADO            ;SE >0 VAI PARA "LIGADO"
   GOTO      DESLIGADO
DESLIGADO
   CLRF      PORTC
   BCF         AQUECEDOR
   GOTO      PRINCIPAL
   
LIGADO
   CLRF      PORTC
   BSF         AQUECEDOR
   GOTO      PRINCIPAL

CLEAR_RAM
      MOVLW      0X20
     MOVWF      FSR
   
LIMPA_RAM
    CLRF      INDF
      INCF      FSR,F
      MOVFW      FSR
      XORLW      0X80
    BTFSS      STATUS,Z
      GOTO      LIMPA_RAM
   RETURN
   END

puedes me ajuda!!

abrazo!!

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: ajuda pic16f876a
« Respuesta #3 en: 26 de Septiembre de 2006, 16:19:16 »
porque escoges el H.

creo que la temperatuta maxima es 110oC.

con el L tienes.

Desconectado NiHs2

  • PIC10
  • *
  • Mensajes: 38
Re: ajuda pic16f876a
« Respuesta #4 en: 26 de Septiembre de 2006, 16:25:03 »
No las temperatura varian de 2°C a 150°C

no entendi!!

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: ajuda pic16f876a
« Respuesta #5 en: 26 de Septiembre de 2006, 16:32:43 »
  MOVFW      TEMPREAL   ................?

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ajuda pic16f876a
« Respuesta #6 en: 26 de Septiembre de 2006, 16:34:53 »
MOVLW      B'00000111'
   MOVWF      TRISA
   MOVLW      B'11111111'
   MOVWF      TRISB
   MOVLW      B'00000000'
   MOVWF      TRISC
   MOVLW      B'11011011'
   MOVWF      OPTION_REG
   MOVLW      B'00000000'
   MOVWF      INTCON            ;NÃO HAVERÁ INTERRUPÇÃO
    MOVLW      B'00001101'
   MOVWF       ADCON1

Fíjate lo siguiente.

En ADCON1 indicas PCFG3:PCFG0 = 1101 --> Eso implica que AN3 y AN2 deben ser tu referencia de tensión.

Tu has puesto el RA3 como salida! Fíjate el TRISA, debiera ser b'00001111'

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado NiHs2

  • PIC10
  • *
  • Mensajes: 38
Re: ajuda pic16f876a
« Respuesta #7 en: 26 de Septiembre de 2006, 16:42:24 »
Gracias!!!

 ¡Otra cosa! él el este no convertir.
 ¿Qué hago?
 ¡Encuentro que el programa está seguro! 
¿Qué de él ha incurrido en una equivocación que él puede ayudarme?   

 Abrazo

 :lol:

Desconectado NiHs2

  • PIC10
  • *
  • Mensajes: 38
Re: ajuda pic16f876a
« Respuesta #8 en: 27 de Septiembre de 2006, 09:20:06 »
No entendía porque él no convierte. 
Alguem me ayuda? 
Se parece que q está seguro,pero no funciona.

Gracias!!

abrazo

Desconectado NiHs2

  • PIC10
  • *
  • Mensajes: 38
Re: ajuda pic16f876a
« Respuesta #9 en: 27 de Septiembre de 2006, 11:11:02 »
qué hago para poder parar para aparecer este msg ?

One or more breakpoints could not be resolved.Select breakpoints from the debugger menu for details

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ajuda pic16f876a
« Respuesta #10 en: 27 de Septiembre de 2006, 12:00:55 »
¿Puedes subir tu código en un archivo .zip?  Al escribir el nuevo mensaje ve a Opciones Adicionales y sube el archivo.

qué hago para poder parar para aparecer este msg ?

One or more breakpoints could not be resolved.Select breakpoints from the debugger menu for details

Estas marcando unos breakpoints a lineas "comentadas" o a líneas vacías, es decir líneas que no serán ensambladas y no constituyen código ejecutable .

Pulsa F2 y fíjate las que figuran con un signo de pregunta ?  y eliminalas.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado NiHs2

  • PIC10
  • *
  • Mensajes: 38
Re: ajuda pic16f876a
« Respuesta #11 en: 29 de Septiembre de 2006, 13:50:54 »
Ellos ajundem.Yo no saber o que hacer para convertir. 
Qué hacer?
Ajudem mi!!!
Gracias
Abrazo

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ajuda pic16f876a
« Respuesta #12 en: 29 de Septiembre de 2006, 14:44:48 »
Ellos ajundem.Yo no saber o que hacer para convertir. 
Qué hacer?
Ajudem mi!!!
Gracias
Abrazo

No se si has leído o no mi post , o si no me has entendido pero fíjate -->

¿Puedes subir tu código en un archivo .zip?  Al escribir el nuevo mensaje ve a Opciones Adicionales y sube el archivo.

Te estoy pidiendo precisamente que subas tu código en un archivo ZIP para que lo pueda ver.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado NiHs2

  • PIC10
  • *
  • Mensajes: 38
Re: ajuda pic16f876a
« Respuesta #13 en: 29 de Septiembre de 2006, 14:58:26 »
Perdona no me había entendido.
Gracias!!

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ajuda pic16f876a
« Respuesta #14 en: 29 de Septiembre de 2006, 15:49:24 »
Perdona no me había entendido.
Gracias!!

1) Tenías algo mal, que usabas un CALL ACIONAMIENTO cuando debiera ser un GOTO ACIONAMIENTO.

2) He visto un bug en el simulador que me obligó a agregar un NOP porque sino el registro WREG no se actualizaba.
   Esto hacia que durante al simulación se apague el módulo A/D.  Esas cosas no debieran pasar en el hardware ya que no conozco ni he leído una limitación sobre no poder cambiar el WREG inmediatamente después de un SUBWF

3) Te cambié el encabezado por para que no recibas el warning de que el procesador no es el adecuado
   LIST   P=16F876A      ;CORREGIDO

4) Te apagué el Watchdog.

He aquí el código.

Saludos
« Última modificación: 29 de Septiembre de 2006, 16:21:52 por maunix »
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything