Haz una pregunta
  Foros de Electrónica » Temas de Interés » Robótica, Domótica y Mecatrónica
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

23/07/2009 #1


Problema con la estructura if-endif
hola,como estan,tengo un problema en assembler.lo que pasa es que la estructura siguiente no me funciona:

movlw 01h
movwf caracter
if caracter==01h
goto cuenta
endif

no entra dentro de la estructura para ejecutar goto cuenta y no se cual es el problema!no me hace la comparacion,simplemente saltea la instruccion.me podrian ayudar?probe de todo y no funciona
23/07/2009 #2


Hola: No se de que ensamblador estamos hablando, de cualquier manera me parece medio "raro" que tengas un goto dentro de un if...endif, porque eso haría saltar la ejecución a algún punto del programa y quedaría el endif "esperando".
Para probar te sugeriría que coloques dentro del if...endif alguna otra instrucción.
23/07/2009 #3


estoy programando en assembler.yo tengo el registro caracter en la direccion 20h de un 16F876.ahora en la comparacion al ponerle el valor 20h,si entra dentro de la estructura.se ve que lo que compara el la direccion y no el valor del registro,no entiendo porque me hace eso.no toma en cuenta el 01h,simplemente hace la comparacion del registro en la direccion que esta.no se que pasa.me podrias pasar un ejemplo?este es el codigo modificado

movlw 01h
movwf caracter
if caracter==20h
goto cuenta
endif
23/07/2009 #4


AFAIK if y endif se utilizan solo dentro de las directivas del MPLab y no son instrucciones propias del uC. Descargate la hoja de datos para mas información
23/07/2009 #5


gracias ahora voy a leer el datasheet
14/11/2009 #6

Avatar de Elvic

Problema con la estructura if-endif
saludos pues aprovechando este tema quiero pedirles ayuda para resolver esto
resulta que estoy haciendo un código para que con el PIC16f84a me genere un tren de pulso en el pin RB3 pero requiero que la frecuencia cambie al darle un mandar por el puerto A un valor X.

bien este e sel código que tengo:

Código:
   include"p16f84a.inc"
    org h'00'
Regt5 Equ h'10';
Regt6 Equ h'1F';
Regt7 Equ h'11';
;****************************
; Configura puertos  
    bsf STATUS,5;    
    clrf TRISB;
    movlw h'1f';
    movwf TRISA; 
    bcf STATUS,5;
    bsf PORTB,3;
;***************************    



;***************************
programa principal

in  bsf PORTB,3;      pone RB3 en nivel alto
    call espera16us;  aquí debo cambiar las esperas de 16us , 20us y 25us
    bcf PORTB,3;
    call espera16us; lo mismo cambiar las  esperas para cambiar la f de salida 
    bcf PORTB,3;     regresa RB3 a nivel bajo
    endif;
    goto in;             repite el ciclo para generan el tren de pulsos
;***************************
; para distintas frecuencias
espera16us movlw h'03'; Para 30kHz
    movwf Regt6;
dec decfsz Regt6,1;
    goto dec;
    retlw h'00';
espera20us movlw h'04'; Para 25Khz
    movwf Regt5;
decr decfsz Regt5,1;
    goto decr;
    return;
espera25us movlw h'06'; Para 20kHz
    movwf Regt7;
dect decfsz Regt7,1;
    goto dect;
    return;
Espero me pueden ayudar con esto; muchas garcías
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Robótica, Domótica y Mecatrónica

La electrónica Aplicada a la Robótica y sus técnicas de interface.

Cerrar
Foros de Electrónica » Temas de Interés » Robótica, Domótica y Mecatrónica

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.