Amigos ahora me surge otra cosa, con la solucion que me dio el amigo tapi8 me dio la onda trinangular sin problema alguno, pero ahorita me surge otro inconveniente con la onda senoidal... estoy tratando de hacerla pero cuando llega la hora de hacer la compraracion de los datos casi igual al codigo anterior que les mostre, me surge un problema por que el pcl de la tabla se me pierde.... y no se como solucionarlo...
CBLOCK 0x20 ; En esta posicion se declaran los registros de usuario (GPR)
CUENTA
CUENTA2
FACTOR
PDel0
PDel1
FACTOR2
FACTOR3
AUX
AUX2
AUX3
AUX4
ENDC
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ RESET \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
RESET
ORG 00H
GOTO INICIO ; Salto a inicio del programa.-
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ CONFIG. DE PUERTOS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
ORG 05H
INICIO
MOVLW 0x07
MOVWF CMCON ; DESHABILITA LOS COMPARADORES ANALOGICOS
BSF STATUS,5
MOVLW B'00011111'
MOVWF TRISA
MOVLW B'11000000'
MOVWF TRISB
BCF STATUS,5
CLRF PORTA ; ponemos a cero el puerto A
CLRF PORTB ; ponemos a cero el puerto B
CLRF CUENTA
MOVLW B'00011111'
MOVWF FACTOR
MOVLW B'00000000'
MOVWF FACTOR2
MOVLW B'00001001'
MOVWF FACTOR3
GOTO COMPA
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ COMPARACION DE SEÑALES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
COMPA
BTFSC PORTA,0 ;PREGUNTA POR EL BIT DE ENTRADA
GOTO TRIANG1 ;VA A LA ONDA TRIANGULAR
BTFSC PORTA,1
GOTO SENOI1
GOTO COMPA ;VUELVE A PREGUNTAR POR EL BOTON
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ SENOIDAL \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
SENOI1
MOVF CUENTA2,W ;MUEVO A W EL VALOR DE CUENTA (0 INICIALMENTE)
CALL TABLA1 ;Llamamos a TABLA
MOVWF AUX3 ;MUEVO EL VALOR DE W A AUX
XORWF FACTOR3,0 ;COMPARO CON FACTOR EL VALOR DE W
BTFSC STATUS,Z ;PREGUNTO POR LA BANDERA Z
GOTO SENOI2 ;SI SE LEVANTO VOY A TRIANG2
MOVF AUX3,0 ;MUEVO LO QUE TIENE AUX A W
MOVWF PORTB ; cargamos W en el puerto B
INCF CUENTA2,F ;SUMO 1 A CUENTA PARA INCREMENTAR EL VALOR DE LA TABLA
CALL DEMORA ;LLAMO AL RETARDO
GOTO SENOI1 ;va a TRIANG1
SENOI2
;AHORA CUENTA TIENE EL VALOR 1F QUE ES EL MAXIMO QUE SE CARGO EN EL PASO ANTERIOR
MOVF CUENTA2,W ;IGUAL QUE LO ANTERIOR SOLO QUE AHORA DECIENDE EL VALOR DE CUENTA
CALL TABLA1 ; llamamos a TABLA
MOVWF AUX4
XORWF FACTOR2,0
BTFSC STATUS,Z
GOTO FIN
MOVF AUX4,0
MOVWF PORTB ; cargamos W en el puerto B
DECF CUENTA2,F ; DECREMENTO EL VALOR DE CUENTA Y POR ESO LA GRAFICA DEFIENDE
CALL DEMORA
GOTO SENOI2
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ TABLA SENOIDAL \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
TABLA1
ADDWF PCL,1
RETLW .16
RETLW .18
RETLW .21
RETLW .23
RETLW .25
RETLW .27
RETLW .28
RETLW .30
RETLW .31
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ RUTINA DE RETARDO \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
DEMORA
MOVLW .6
MOVWF PDel0
PLoop1
MOVLW .207
MOVWF PDel1
PLoop2
CLRWDT
DECFSZ PDel1,1
GOTO PLoop2
DECFSZ PDel0,1
GOTO PLoop1
PDe1L1
GOTO PDe1L2
PDe1L2
CLRWDT
RETURN
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ FIN DE PROGRAMA \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
FIN
END
Basicamente es igual al codigo anterior que les di, solo que ahorita la tabla la puse para que mas o menos haga como una curva parecida a la de la onda senoidal, pero a la hora de graficarla simplemente el pcl se va... y no me grafica nada si no que empieza a darme los errores de se espera call o excesive no se que....
me gustaria que me orientaran sobre esto ya que es mi primera vez que manejo tantas tablas... (tengo que manejar como 5) y no quiero tener mas inconvenientes de este tipo para no molestarlo mas....
PD: anteriormente esta la tabla de la onda triangular solo que aqui en este codigo no se las puse....
gracias de antemano por su respuesta y espero entiendan la duda que tengo...