Ajudinha.

Programação Visual Basic

Moderadores: 51, guest2003

Ajudinha.

Mensagempor brasilma » 15 Ago 2011 19:55

Olá Amigos preciso de uma ajudinha num código Basic, ele é minha tentativa de conversão de um outro em C, apesar de não estar dando erro na compilação, também não está funcionando, será que alguém consegue perceber alguma coisa errada.

Obrigado desde já.

program FIA_Ctrol

'Variáveis Globais
dim recebido as string[16]
dim texto0 as string[6]
dim texto1 as string[6]
dim trans_ini as bit

sub procedure comando()
'Verifica se comando de leitura ou escrita
if recebido[0]="W" then
select case recebido[1]
case "A"
if recebido[2] = "0" then portb.rb0 = 0 else portb.rb0 = 1 end if
case "B"
if recebido[2] = "0" then portb.rb1 = 0 else portb.rb1 = 1 end if
case "C"
if recebido[2] = "0" then portb.rb2 = 0 else portb.rb2 = 1 end if
case "D"
if recebido[2] = "0" then portb.rb3 = 0 else portb.rb3 = 1 end if
case "E"
if recebido[2] = "0" then portb.rb4 = 0 else portb.rb4 = 1 end if
case "F"
if recebido[2] = "0" then portb.rb5 = 0 else portb.rb5 = 1 end if
case "G"
if recebido[2] = "0" then portb.rb6 = 0 else portb.rb6 = 1 end if
case "H"
if recebido[2] = "0" then portb.rb7 = 0 else portb.rb7 = 1 end if
case "I"
if recebido[2] = "0" then portb = 0 else portb = 255 end if
end select
end if
if recebido[0]="R" then
select case recebido[1]
case "J"
'Converter canal AN0
wordtostr(adc_read(0),texto0)
uart1_write("{")
uart1_write("J")
uart1_write_text(texto0)
uart1_write("}")
case "K"
'Converter canal AN1
wordtostr(adc_read(1),texto1)
uart1_write("{")
uart1_write("K")
uart1_write_text(texto1)
uart1_write("}")
end select
end if
end sub


'Rotina tratamento interrupções de alto nível
sub procedure interrupt
'Verifica se interrupção é de recepção
if pir1.rcif = 1 then
'recebe apenas dados entre chaves
if uart1_read = "{" then trans_ini = 1 else trans_ini = 0
if trans_ini = 1 then
'recebe dados pela serial
uart1_read_text(recebido, "}", 11)
comando()
trans_ini = 0 'deixa sistema pronto para receber outro comando

end if
end if
' x = UART1_read 'lê UART
'portb = x
'UART1_write(x) 'ecoa

end if

pir1.rcif = 0 'Limpa flag de recepção

end sub


main:
' Main program

'Configurações de IO
trisb = 0 'PortB como saída
trisd = 0 'PortD como saída
trise = 0 'PortE como saída
trisa.ra0 = 1 'Entrada analógica 0
trisa.ra1 = 1 'Entrada analógica 1
portb = 0 'Todos pinos em nível lógico 0

'Inicialização comunicação serial UART
UART1_init(9600) 'Inicializa UART c/ 9600BPS

'Configuração registradores das Interrupções
pir1.rcif = 0 'Limpa flag de interrupção recepção serial
pie1.rcie = 1 'Habilita interrupção de recepção serial
pir1.rcip = 1 'Define interrupção de recepção com alta prioridade
rcon.ipen = 1 'Habilita vetores de alta e baixa prioridade familia 18F
intcon.gie = 1'Habilita alta prioridade das interrupções
intcon.giel = 1'Habilita as baixas prioridades de interrupção (não usa neste exemplo)

'Entradas analógicas
cmcon = cmcon or 7 'Config entradas analogicas (ou lógico)
adcon1 = %00001101 'Configura AN0 e AN1 e demais como IO

'Zera flag transmissão iniciada
trans_ini = 0

'Laço While infinito
While TRUE
Wend

end.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Voltar para Visual Basic

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes

x