estoy intentando hacer una subrutina, miro la ayuda y figura tal cual yo lo escribo, tambien vi varios foros escribiendo de la misma forma que yo, pero al compilar me tira el siguiente error
esta imagen es usando sub procedure (no dar importancia al "escribo:" solamente queria que me tire el error de sub procedure)
y si pongo el codigo como este me hace cualquier cosa
Código:
16:1 E-3 Identifier 'Sub' was not declared lee2adc.pbas
91:4 E-4 Syntax error: Expected 'end' but '.' found lee2adc.pbas
92:1 E-4 Syntax error: Expected '.' but '' found lee2adc.pbas
esta imagen es usando sub procedure (no dar importancia al "escribo:" solamente queria que me tire el error de sub procedure)
y si pongo el codigo como este me hace cualquier cosa
Código:
program lee2adc
dim text as char[20]
dim ld,li as integer
dim ldt,lit as string[4]
dim i,a,b,j as byte
dim paso as byte[9]
paso[1]=%00000001
paso[2]=%00000011
paso[3]=%00000010
paso[4]=%00000110
paso[5]=%00000100
paso[6]=%00001100
paso[7]=%00001000
paso[8]=%00001001
main:
ANSEL = %00000011 ' PIN A0 A1 como analogicos
ANSELH = 0 ' todos los demas digitales
ADCON1= 0x80
TRISD = 0
PORTD = 0
TRISB = 0 ' PORTB is output
Lcd_Init(PORTB) ' Initialize LCD on PORTB
Lcd_Cmd(Lcd_CURSOR_OFF) ' Turn off cursor
text = "Seguidor Solar"
Lcd_Out(1, 1, text) ' Print text at LCD
Delay_ms(1000)
Lcd_Cmd(Lcd_Clear)
i=0
j=0
a=0
b=8
gosub leer
if fabs(ld-li) >= 5 then
if ld<li then
Lcd_cmd(lcd_clear)
Lcd_Out(1,1,"LD<LI")
Delay_ms(300)
gosub escribo
for i = 0 to 7
a=a+1
PORTD = paso[a]
delay_ms(5)
PORTD=%00000000
gosub leer
gosub escribo
if fabs(ld-li) <= 5 then
Break
end if
next i
else
Lcd_cmd(lcd_clear)
Lcd_Out(1,1,"LD>LI")
Delay_ms(300)
gosub escribo
for j = 7 to 0
b=b-1
PORTD = paso[b]
delay_ms(5)
PORTD=%00000000
gosub leer
gosub escribo
if fabs(ld-li) <= 5 then
Break
end if
next j
end if
else
Lcd_Out(1,1,"son iguales")
delay_ms(500)
goto main
end if
leer:
ld = ADC_Read(0)
wordtostr(ld,ldt)
Delay_ms(100)
li = ADC_Read(1)
wordtostr(li,lit)
return
escribo:
Lcd_cmd(lcd_clear)
Lcd_Out(1,1,"ld:")
Lcd_Out(2,1,"li:")
lcd_out(1,5,ldt)
lcd_out(2,5,lit)
return
end.
Última edición: