TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: cesarvix en 22 de Noviembre de 2008, 16:03:55
-
Caro colegas eu achei um projeto de um robó chamado ruf=bot controlado pelo joystick no link (http://mysite.verizon.net/res8dbeh/) .
Só que o condigo está picbasic. eu preciso autualiza o codigos para picbasic pró mais eu não tenho muito esperincia .
Pesso ajuda .
segue o codigo a baixo .
'****************************************************************
'* Name : tx.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 18/11/2008 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
include "modedefs.bas"
DEFINE OSC 4
;@__config _XT_OSC & _WDT_ON & _CP_OFF
trisb=134
trisa=133
portb=6
porta=5
low 1
input 0
input 2
B0 var byte
B1 var byte
start:
pot 0,50,B0
pot 2,50,B1
B0 = B0 * 5
B1 = B1 * 5
y: if B0 < 100 then yf
if B0 > 150 then yb
x: if B1 < 100 then xr
if B1 > 150 then xl
serout 1,n9600,[5]
goto start
yf: serout 1,n9600,[2]
goto start
yb: serout 1,n9600,[1]
goto start
xl: serout 1,n9600,[3]
goto start
xr: serout 1,n9600,[4]
goto start
end
'****************************************************************
'* Name : RX.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 18/11/2008 *
'* Version : 1.0 *
'* Notes : *
'* : :-/ :-/ :-/ *
'****************************************************************
include "modedefs.bas"
;@__config _XT_OSC & _WDT_ON & _CP_OFF
trisb=134
trisa=133
portb=6
porta=5
poke trisa, 0
poke porta, 0
low 0
input 1
B0 var byte
B1 var byte
prestart: pause 400
poke porta, 10
pause 200
poke porta, 5
pause 200
poke porta, 6
pause 200
poke porta, 9
pause 200
poke porta, 0
pause 200
start: serin 1,n9600,B0
if B0 = 1 then forward
if B0 = 2 then backward
if B0 = 3 then left
if B0 = 4 then right
if B0 = 5 then nomove
goto start
forward: poke porta, 10
goto start
backward: poke porta, 5
goto start
right: poke porta, 6
goto start
left: poke porta, 9
goto start
nomove: poke porta, 0
goto start
end
Um abraço a todos
-
Pues preferible que lo escribieras de cero, asi quedaria mas a tu gusto y forma; si bien lo unico que tendrias que adaptar son las instrucciones POKE, para PB: Poke escribia un valor en la direccion especificada: poke portb, 8 significaba que a la direccion PORTB le escribias el valor 8 lo que puede ser sustituido como PORTB=8, para la version PBP>2.40 la instruccion POKE cambio ya que al escribir POKE portb, B0 lo que hace es pasar el valor de PORTB a la variable B0 lo que seria igual a B0=PORTB.
El uso e PEEK y POKE ya no es recomendado.
Saludos
-
Caro Navaismo. querdizer que PEEK. PEEK não sé usa mais.
picbasic pro .sé usa potrb=10
portb=5
portb=6
portb=9
portb=0
EXEMPRO .
Um :-/ ABRAÇO
-
Hola cesarvix, claro que es factible escribir en el puerto un valor en decimal pero debes tener en cuenta que en fisico aparecerá el valor en binario.
saludos.
-
Caro KALLITOS o brigado pela dica..
mais eu estou com mais um duvida sobre o projeto ruf=bot . eu tenho um joystick de de pc o potenciometro e 100k com colcula o "pot" dele.
O eu poso usa joystick de playstation para controla o robó.
Um abraço ...
-
si bien podrias implementar algo con POT, no es muy recomendable lo mejor seria aplicar un PIC con ADC, y manejar rangos, aca los foreros hemos usado el joystick de los playstation los cuales se componene de 2 potenciometros y haciendo rangos se puede manejar el izquirda, derecha, arriba, abajo.
Saludos
-
Caro Navaismo eu tenho um joystick do playstation Com dois poteciomentro .Quando eu ligo no circuto os motores fica ligos direto eu acho que o motores tia que fica parado esperando um comando do joystick certo .
E possiveu ter um erro no codigos
include "modedefs.bas"
trisb = 134
trisa = 133
portb = 6
porta = 5
low 1
input 0
input 2
B0 var byte
B1 var byte
start:
pot 0,50,B0
pot 2,50,B1
B0 = B0 * 5
B1 = B1 * 5
y:
if B0 < 100 then yf
if B0 > 150 then yb
x:
if B1 < 100 then xr
if B1 > 150 then xl
serout 1,n2400,[5]
goto start
yf:
serout 1,n2400,[2]
goto start
yb:
serout 1,n2400,[1]
goto start
xl:
serout 1,n2400,[3]
goto start
xr:
serout 1,n2400,[4]
goto start
end