Banner publicitario de PCBWay

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