pwm con pic16f877a en mikrobasic pro

hola amigos estoy creando un programa en MIKROBASIC PRO donde pueda controlar un motor por PWM variando con un potenciomerto conectado a una entrada A/D del puertoA.0.
pero mi proyectoque funciona asi, que al presionar el boton pulsador activa el puertob.1, luego de un tiempo el puertob.2 y luego la salida pwm del puertoc.2........ bueno hasta el momento funciona ok.
PERO QUISIERA QUE ME AYUDEN POR FAVOR A PARAR EL PWM VOLVIENDO A PRESIONAR EL PULSADOR...
AQUI LES DEJO MI CODIGO FUENTE Y LES A DJUNTO EL DISEÑO...
-----------------------------------------------------

program ALIMENTADOR

' Declarations section
dim DutyCycle as integer
dim adc_value as integer
dim a as byte
trisb.0=1 ' portb.0 como entrada
trisb.1=0 ' portb.1 como salida "2t 4t"
trisb.2=0 'portb.2 como salida "valvula solenoide"
portb.1=0
portb.2=0

main:
if button(portb,0,100,0)then 'espera un pulso de 0
while portb.0=0 'espera sin hacer nada hasta q se halla
'liberado el pulsador
wend
delay_ms(500) 'retardo al momento de soltar el pulsador
if portb.1= 0 then
setbit(portb,2)'mandar un pulso alto
delay_ms(2000) 'retardo de 2 segundos
setbit(portb,1) 'si el led estaba apagado lo prende
PWM1_Init (5000)' inicialización del módulo PWM (5 kHz)
PWM1_Start () ' Inicio PWM1 módulo con Zero DC
PWM1_Set_Duty (DutyCycle)

main2:

adc_value = ADC_Read (0)
DutyCycle = adc_value >> 2 ' Convertir el valor 10-bit ADC a 8 bits
PWM1_Set_Duty (DutyCycle)

goto main2
else
pwm1_stop()

end if

end if
goto main

end.
 

Adjuntos

  • pwm.bmp
    88.9 KB · Visitas: 45
Atrás
Arriba