Hi all,
I have been trying to implement an ultrasonic meassurement and I am not able to throw a PWM into RB0, here is the code:
'Definición de variables Globales
dim FueraRango as char
const PULSO as longint = 300
const MAXIMO as longint = 15
'Programa de interrupción
sub procedure interrupt
if(PIR1.TMR1IF) then
FueraRango=1
PIR1.TMR1IF=0
end if
end sub
sub procedure init_lcd
Lcd_Config(PORTB,7,6,5,4,PORTA,2,1,0)
Lcd_Cmd(Lcd_Clear)
end sub
sub procedure printvar (dim byref n as char[16], dim a as byte)
dim res as char [16]
Lcd_Cmd(Lcd_Clear)
ByteToStr (a, res)
Lcd_Out(1,1,n)
Lcd_Out(2,1, res)
end sub
sub procedure pwm_ini
Pwm_Init(40000)
Pwm_Change_Duty(128)
end sub
sub procedure pwm_on
Pwm_Start
Delay_us(PULSO)
Pwm_Stop
Delay_us(PULSO*2)
end sub
sub procedure initerrup
INTCON.GIE=1 'todas las int
INTCON.PEIE=1 'overflow
PIE1.TMR1IE=0 ' high
PIE1.CCP1IE=1
PIR1.TMR1IF=0 ' low
T1CON.TMR1ON=0 'stop
end sub
sub procedure interactua
T1CON.TMR1ON=0
FueraRango=0
TMR1H=0
TMR1L=0
T1CON.TMR1ON=1
PIE1.TMR1IE=1
end sub
sub procedure initialization
CMCON=0x07
ANSEL=0x10 'Usar pines como digitales
TRISA=0x00 'Puerto A como salida
TRISB=0x00 'Puerto B como salida
TRISA.3=0xFF 'Pulsador
TRISA.4=0xFF 'Receptor
T1CON.TMR1CS=0
init_lcd
end sub
sub procedure espera_boton
'Esperamos a que el botón se pulse
while PORTA.3 <> 0
wend
'Esperamos a que el botón se suelte
while PORTA.3 = 0
wend
end sub
main:
initialization
pwm_ini
initial:
initerrup
while true
printvar ("Pulse el boton",1)
delay_us(100000)
interactua
espera_boton
printvar ("Lanzado",1)
delay_us(100000)
printvar ("TXR1",PORTB.0)
delay_us(100000)
pwm_on
while PORTA.3 <> 0
printvar ("TXR2",PORTB.0)
delay_us(100000)
wend
T1CON.TMR1ON=0
PIE1.TMR1IE=0
INTCON.GIE=1
wend
end.
I want to know why pulse is not going thorugh the transmisor when in the laboratory without code, only inserting frequencies the board work fine.
Thanks!!!
IN SPANISH: El caso es que no me sale el pulso por el transmisor de ultrasonido, la placa está bien porque metiendole directamente la frecuencia y midiendo con el osciloscopio funiona, pero no sé por qué no me sale el pulso por el transmisor...si alguien pudiera ayudarme...GRACIAS!!!!