Autor Tema: Problema de programación  (Leído 2234 veces)

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

Desconectado FRAN2023

  • PIC10
  • *
  • Mensajes: 11
Problema de programación
« en: 28 de Julio de 2007, 22:12:50 »
Hola! He intentado crear un programa con el MPLAB y no se porque me da error, ni como arreglarlo. Si alguién sabe la manera de solucionarlo le agradeceria que me ayudara. Gracias

El programa es el siguiente:

   RADIX   HEX
STATUS  EQU   H'0003'
PORTA   EQU   H'0005'
PORTB   EQU   H'0006'   
TRISA   EQU   H'0085'
TRISB   EQU   H'0086'
RP0      EQU   H'0005'
Z      EQU   H'0002'
   

   ORG      0x00
   goto   INICIO
   ORG      0x05

INICIO   bsf      STATUS,RP0
      clrf   TRISB
      movlw   b'00000110'
      movwf   TRISA   
      bcf      STATUS,RP0
      clrf   PORTB
      clrf   PORTA
      
BUCLE   movf   PORTA,W
      btfss   STATUS,Z
      goto   APAGAR
      goto   ENCENDER
      
APAGAR   clrf   PORTB
      goto   BUCLE
      
ENCENDER   movlw   0xFF
         movwf   PORTB
         goto   BUCLE
         
         END


y los mensajes de error son estos:

Message[302] C:\MPLAB\INTERRUPTORES.ASM 19 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] C:\MPLAB\INTERRUPTORES.ASM 21 : Register in operand not in bank 0.  Ensure that bank bits are correct.
« Última modificación: 29 de Julio de 2007, 01:12:47 por Chaly29 »

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Problema de programación
« Respuesta #1 en: 29 de Julio de 2007, 01:23:47 »
Hola FRAN2023, primero que nada no son errores, si no que son mensajes de advertencia "Message[302]"

Los mismos te están indicando que los reguistros que están citando en las conscuentes lineas de programa no se encuentran en el banco de ram "0".

Si haces click 2 veces seguidas y rapidas sobre dichos mensajes, te direcciona a la linea que presenta dicha advertencia.

Dichas instrucciones son las sentencias TRISA y TRISB

Por lo tanto y para finalizar, el "Message[302]" significa que prestes atención al seleccionar el banco de memoria ya que las instrucciones citadas no se encuentran en el banco "0"

Si deseas que dichos mensajes no se te indiquen más, puedes poner la sentencia:

          ERRORLEVEL       -302

inmediatamente debajo de donde defines el microcontrolador a usar, pero presta mucha atención al seguir programando de estar en el banco correcto antes de ejecutar una instrucción.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.