Primero decirte que en el segundo post no has modificado el esquema en proteus, a mi me sale el mismo del anterior post, que creo que ya sabes que no esta bien.
En cuanto al programa decirte que es una maravilla, has hecho todo el PWM ascendente de 10% en 10% en 51 Bytes increible, dedicate a esto porque eres muy buena, bajate este programa para hacer las rutinas de tiempo, es una pena que alguien con tu talento pierda el tiempo haciendolas
http://www.todopic.com.ar/foros/index.php?topic=5968.0Le voy a sacar un defectillo al excelente programa que has hecho, aqui:
UNO DECFSZ AUX_HIGH,F ;DURACIÓN DEL UNO, SEGÚN THIGH
GOTO UNO_1
GOTO CERO
UNO_1 BSF PORTA,1
BSF PORTA,2
CALL RETARDO_1
GOTO UNO
no debes hacer dos bsf seguidos sobre el mismo puerto, mejor hazlo asi:
movlw 0x06
movwf PORTA
En cuanto a los pulsadores, se podria hacer asi:
#DEFINE PUL_ASC PORTB,0
#DEFINE PUL_DES PORTB,1 ;ponlos donde quieras
SELECCIONAR
btfss PUL_ASC ; esta pulsado?
goto $+2 ; no va a chequear el otro
goto ASCENDENTE ; si va a ascendente, incrementar velocidad
btfss PUL_DES ; esta pulsado?
goto $-4 ; no vuelve a empezar
goto DESCENDENTE ; si va a decrementar velocidad
ASCENDENTE
call ANTIRREBOTES ; llama demora de 20ms para que pasen rebotes en pulsadores
btfss PUL_ASC ; se pulso o fueron rebotes?
goto SELECCIONAR ; fueron rebotes va a chequear de nuevo
goto EMPEZAR ; va a incrementar velocidad
DESCENDENTE
call ANTIRREBOTES ; llama demora de 20ms para que pasen rebotes en pulsadores
btfss PUL_des ; se pulso o fueron rebotes?
goto SELECCIONAR ; fueron rebotes va a chequear de nuevo
goto EMPEZAR_1 ; va a decrementar velocidad
Tienes que hacer otro programa igual para decrementar velocidad, igual que ese que hiciste pero en vez de
incrementar el tiempo que esta en 1 y decrementar el del 0, haces lo contrario, incrementas el de 0 y
decrementas el de 1, a las etiquetas les puedes llamar igual con un guion bajo 1, te pongo todo esto a modo
de ejemplo, se que tu lo vas a hacer mucho mejor