Autor Tema: el bsf es permanente?  (Leído 5123 veces)

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

Desconectado bones18

  • PIC12
  • **
  • Mensajes: 54
el bsf es permanente?
« en: 26 de Septiembre de 2006, 06:48:48 »
Wuenas,

estoy haciendo un codigo, este mismo

Principal
   movlw b'00000000'
    movwf PORTA

   bsf PORTA,0
   ;fem un reset al LCD
call fer_reset
   
bucle
   
    bsf PORTA,1
   goto    bucle      ; Crea un bucle cerrado e infinito.
END            ; Fin del programa.
   



Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: el bsf es permanente?
« Respuesta #1 en: 26 de Septiembre de 2006, 06:56:08 »
¿y cual es el problema?

Desconectado bones18

  • PIC12
  • **
  • Mensajes: 54
Re: el bsf es permanente?
« Respuesta #2 en: 26 de Septiembre de 2006, 06:59:53 »
he apretado el boton publicar sin querer!

bueno acabo el post..

en ambos puertos PORTA,0 y PORTA,1 hay un LED

segun este codigo ambos deberian quedar encendidos, pero no es asi, se enciende el PORTA,0 durante un instante, y se apaga, luego el PORTA,1 que hay en bucle si queda permanentemente encedido

puedo haberme dejado alguna directiva o algo para que pase esto?

gracias!

Desconectado bones18

  • PIC12
  • **
  • Mensajes: 54
Re: el bsf es permanente?
« Respuesta #3 en: 26 de Septiembre de 2006, 07:02:00 »
me olvidaba, es para un PIC16F876

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: el bsf es permanente?
« Respuesta #4 en: 26 de Septiembre de 2006, 07:29:26 »
¿configuraste bien los tris?
Postea la rutina fer_reset

Desconectado bones18

  • PIC12
  • **
  • Mensajes: 54
Re: el bsf es permanente?
« Respuesta #5 en: 26 de Septiembre de 2006, 07:46:02 »
aqui va

   __CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
   LIST      P=16F876
   INCLUDE  <P16F876.INC>
#DEFINE WR     PORTC,3
#DEFINE R_D    PORTC,2
#DEFINE C_D    PORTC,1
#DEFINE RESET  PORTC,0

RET1 equ 0x0C
RET2 equ 0x2D
RET3 equ 0x2E
RET4 equ 0x2F
RET5 equ 0x30

; ZONA DE CÓDIGOS ********************************************************************

   ORG    0         ; El programa comienza en la dirección 0.
Inicio

   ;canviem de banc
   bsf   STATUS,RP0      ; Acceso al Banco 1.
   clrf   TRISA           ; Las líneas del Puerto B se configuran como salida.
   clrf   TRISB      ; Tot el port A es configura com a SORTIDA
   clrf    TRISC

   bcf   STATUS,RP0      ; Acceso al Banco 0.
   goto Principal

fer_reset
   bsf RESET
   nop
   bcf RESET
   nop
   nop
   nop
   nop
   bsf RESET
return


Principal
   movlw b'00000000'
                 movwf PORTA

   bsf PORTA,0
   ;fem un reset al LCD
   call fer_reset
bucle
   
               bsf PORTA,1
   goto    bucle      ; Crea un bucle cerrado e infinito.
END   

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: el bsf es permanente?
« Respuesta #6 en: 26 de Septiembre de 2006, 16:08:48 »
aqui va

   __CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
   LIST      P=16F876
   INCLUDE  <P16F876.INC>
#DEFINE WR     PORTC,3
#DEFINE R_D    PORTC,2
#DEFINE C_D    PORTC,1
#DEFINE RESET  PORTC,0

RET1 equ 0x0C
RET2 equ 0x2D
RET3 equ 0x2E
RET4 equ 0x2F
RET5 equ 0x30

; ZONA DE CÓDIGOS ********************************************************************

   ORG    0         ; El programa comienza en la dirección 0.
Inicio

   ;canviem de banc
   bsf   STATUS,RP0      ; Acceso al Banco 1.
   clrf   TRISA           ; Las líneas del Puerto B se configuran como salida.
   clrf   TRISB      ; Tot el port A es configura com a SORTIDA
   clrf    TRISC

   bcf   STATUS,RP0      ; Acceso al Banco 0.
   goto Principal

fer_reset
   bsf RESET
   nop
   bcf RESET
   nop
   nop
   nop
   nop
   bsf RESET
return


Principal
   movlw b'00000000'
                 movwf PORTA

   bsf PORTA,0
   ;fem un reset al LCD
   call fer_reset
bucle
   
               bsf PORTA,1
   goto    bucle      ; Crea un bucle cerrado e infinito.
END   


por ahi no veo que hallas configurado las lineas del porta como digitales.

MOVLW   07
MOVWF   ADCON1.

saludos




Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: el bsf es permanente?
« Respuesta #7 en: 26 de Septiembre de 2006, 16:28:46 »
por ahi no veo que hallas configurado las lineas del porta como digitales.

MOVLW   07
MOVWF   ADCON1.

saludos

Si los pines están como salida no importa que estén como digitales o no.  Debiera funcionar bien igual el software.

bones18 creo que el problema no está en tu código sino en tu vista.  Es que estas encendiendo y apagando un led en unos pocos microsegundos.  No hay ojo humano capaz de ver ese 'cambio'.

Si usas un osciloscopio de seguro verás al pin cambiar de estado o sino pon un delay después del encendido y después del apagado del led.


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 microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: el bsf es permanente?
« Respuesta #8 en: 26 de Septiembre de 2006, 16:42:40 »
bueno.
 viejo maunix tiene toda razon.

saludos.
« Última modificación: 26 de Septiembre de 2006, 16:49:37 por microcom »

Desconectado bones18

  • PIC12
  • **
  • Mensajes: 54
Re: el bsf es permanente?
« Respuesta #9 en: 26 de Septiembre de 2006, 17:43:04 »
bones18 creo que el problema no está en tu código sino en tu vista.  Es que estas encendiendo y apagando un led en unos pocos microsegundos.  No hay ojo humano capaz de ver ese 'cambio'.

Si usas un osciloscopio de seguro verás al pin cambiar de estado o sino pon un delay después del encendido y después del apagado del led.


Saludos



wuenas, a ver el programa empieza con los leds apagados, luego enciendo el 0 y me quedo permanentemente en el bucle donde se enciende el 1.

El problema surge cuando solo solo veo el 1 encendido, mientras que el 0 se enciende solo durante un instante. No estoy encendiendo y apagando en ningun sitio, es como si ya una vez dentro del bucle me cambiara el valor del PORTA,0.  Pero no veo que haya ninguna transicion que pueda despistar mi vista

gracias

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: el bsf es permanente?
« Respuesta #10 en: 26 de Septiembre de 2006, 18:05:10 »
viendo esto es capaz de estar todos prendidos a la vez.

bsf porta,0           se pierde.
bsf porta,1           esta activo.

porque no le colocas un pequeño retardo para ver.
puesto que no es compatible con lo  que debe pasar.




« Última modificación: 26 de Septiembre de 2006, 18:06:51 por microcom »

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: el bsf es permanente?
« Respuesta #11 en: 26 de Septiembre de 2006, 19:15:51 »
Bueno...
Primero:
Ojo con esto:
RET1 equ 0x0C
0x0C es una direccion de memoria de SFR. La primera posicion para registros GPR es la 0x20.

Segundo:
El LED que tenes en PORTA,0 esta puesto en modo sumidero, mientras que deberia estar en modo fuente.(es decir, el led colocado al revez)
Saludos.
"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 Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: el bsf es permanente?
« Respuesta #12 en: 27 de Septiembre de 2006, 04:03:28 »
Lo simulé en mplab y el puerto A no se entera de las modificaciones,al menos en el bit que setea una única vez.
Bruno ¿a qué te refieres con lo del led? Yo no ví esquema por ningun sitio

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: el bsf es permanente?
« Respuesta #13 en: 27 de Septiembre de 2006, 04:23:49 »
Yo tampoco vi esquema Modulay...

Definiendo los pines como digitales el programa funciona OK. De otra manera no funciona.

Este código funciona bien:
Código: ASM
  1. __CONFIG        _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
  2.         LIST    P=16F876
  3.         INCLUDE <P16F876.INC>
  4. #DEFINE WR      PORTC,3
  5. #DEFINE R_D     PORTC,2
  6. #DEFINE C_D     PORTC,1
  7. #DEFINE RESET   PORTC,0
  8.  
  9. RET1    equ     0x20
  10. RET2    equ     0x21
  11. RET3    equ     0x22
  12. RET4    equ     0x23
  13. RET5    equ     0x24
  14.  
  15. ; ZONA DE CÓDIGOS ********************************************************************
  16.  
  17.         ORG     0       ;El programa comienza en la dirección 0.
  18. Inicio
  19.  
  20.         ;canviem de banc
  21.         bsf     STATUS,RP0      ;Acceso al Banco 1.
  22.         clrf    TRISA           ;Las líneas del Puerto B se configuran como salida.
  23.         clrf    TRISB           ;Tot el port A es configura com a SORTIDA
  24.         clrf    TRISC
  25.         movlw   07
  26.         movwf   ADCON1
  27.         bcf     STATUS,RP0      ;Acceso al Banco 0.
  28.         goto    Principal
  29.  
  30. fer_reset
  31.         bsf     RESET
  32.         nop
  33.         bcf     RESET
  34.         nop
  35.         nop
  36.         nop
  37.         nop
  38.         bsf     RESET
  39.         return
  40.  
  41. Principal
  42.         clrf    PORTA
  43.         bsf     PORTA,0
  44.                                 ;fem un reset al LCD
  45.         call    fer_reset
  46. bucle
  47.    
  48.         bsf     PORTA,1
  49.         goto    bucle           ;Crea un bucle cerrado e infinito.
  50.  
  51.         end
"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 maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: el bsf es permanente?
« Respuesta #14 en: 27 de Septiembre de 2006, 08:27:39 »
Yo tampoco vi esquema Modulay...

Definiendo los pines como digitales el programa funciona OK. De otra manera no funciona.


Asi es, hay que poner los pines en analógicos para que funcione en el SIMULADOR (MPSIM), pero esto es una limitación del simulador, no del pic. 

En el pic, si los dejamos en analógicos y lo ponemos en 1, se debe ver en 1.


bones18 creo que el problema no está en tu código sino en tu vista.  Es que estas encendiendo y apagando un led en unos pocos microsegundos.  No hay ojo humano capaz de ver ese 'cambio'.

Si usas un osciloscopio de seguro verás al pin cambiar de estado o sino pon un delay después del encendido y después del apagado del led.


Saludos



wuenas, a ver el programa empieza con los leds apagados, luego enciendo el 0 y me quedo permanentemente en el bucle donde se enciende el 1.

El problema surge cuando solo solo veo el 1 encendido, mientras que el 0 se enciende solo durante un instante. No estoy encendiendo y apagando en ningun sitio, es como si ya una vez dentro del bucle me cambiara el valor del PORTA,0.  Pero no veo que haya ninguna transicion que pueda despistar mi vista

gracias

Pido disculpas, leí rápido la parte del 'reset' y supuse que estabas viendo eso en un led.

Mira, sería bueno que nos cuentes si en el pin donde tenes los leds, también tenes algún capacitor o una resistencia.

Esto es algo "fundamental".  Si es así, entonces ya tengo el misterio resuelto  :) :)

« Última modificación: 27 de Septiembre de 2006, 08:29:41 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