Goeieavond,

Als beginner met het programma proton zit ik een beetje vast.
Ik heb 5 lichtsensoren die uitgelezen moeten worden.
In proton zou ik dan een 5-bit woord moeten programmeren waarbij elke bit een sensor voorstelt zodat :
sensor aan = 1
sensor uit = 0

Hoe zou ik dat dan kunnen programmeren in proton.
Het zou dan iets als volgt moeten zijn. (zal waarschijnlijk niet kloppen :p)

dim sensbyte as word
sensor1 = sensbyte.bit0
sensor2 = sensbyte.bit1
...

Graag een reactie terug
Greets,
MikeG

Geen idee hoe proton het doet maar loop de cursus op picbasic.nl eens door.

Hebben die sensors een 1-wire interface?
Post ff je datasheet anders ;)

[Bericht gewijzigd door Boeip op (29%)]

dim sensbyte as byte

sensor1=sensbyte.0
sensor2=sensbyte.1

Op 9 februari 2008 23:20:27 schreef Boeip:
Hebben die sensors een 1-wire interface?
Post ff je datasheet anders ;)

http://www.parallax.com/Portals/0/Downloads/docs/prod/robo/QTILineFoll…

dim sensbyte as byte

sensor1=sensbyte.0
sensor2=sensbyte.1

Als ik dit probeer krijg ik de error: invalid cast for this type of variable.

Op 9 februari 2008 23:38:12 schreef Mike G:
[...]

http://www.parallax.com/Portals/0/Downloads/docs/prod/robo/QTILineFoll…

[...]

Als ik dit probeer krijg ik de error: invalid cast for this type of variable.

als wat zijn sensor1 en sensor2 gedeclareerd ?

Op 9 februari 2008 23:44:02 schreef Jeroen Boere:
[...]

als wat zijn sensor1 en sensor2 gedeclareerd ?

symbol sensor1 = porta.0
symbol sensor2 = porta.1

dan zo:


if sensbyte.0 = 1 then
     high sensor1
else
     low sensor1
endif

Op 10 februari 2008 00:01:06 schreef Stynus:
dan zo:


if sensbyte.0 = 1 then
     high sensor1
else
     low sensor1
endif

Ik krijg nog steeds een error bij sensebyte.0
Zou deze anders geschreven moeten worden?

Op 10 februari 2008 00:25:13 schreef Mike G:
[...]

Ik krijg nog steeds een error bij sensebyte.0
Zou deze anders geschreven moeten worden?

ik zie hier dat je sensebyte.0 typt.. is dat in je source ook? post anders heel de source hier..


DEVICE 16F877                              ;Gebruik een 16F877 type
CONFIG hs_osc, WDT_OFF, PWRTE_ON, LVP_OFF  ; 
ALL_digital TRUE                           ; 
xtal 20                                    ; Kristal 20MHz

symbol BLLineIn = porta.1
dim blLine as word
dim linebits as word
dim lbbLeft as linebits.0

Main:
  gosub read_line_sensors
select linebits
case %00000
 pulsout portb.0, 1400
case %10000
 pulsout portb.0, 1600 
 endselect
goto main
end
  
read_line_sensors: 
high BLLineIn
delayms 1
rctime BLLineIn, 1, blLine
lookdownl blLine, >=[100,0], lbbLeft
return   

Dat van die sensebyte heb ik al opgelost maar mijn programma werkt nog steeds niet.
Ziet iemand hier de fout?

Ik snap eigenlijk niet helemaal wat de vraag nu is maar misschien zoek je deze instructies:
www.picbasic.nl/beginners10a.htm

Als je case gebruikt moet je dan eerst het aantal bits ingeven dat je gebruikt?

Zoals: case %0 of
case %00001 (of is dit hetzelfde?)

Kan je dit niet doen met bin1 linebits ofzoiets?

Op 10 februari 2008 17:37:20 schreef Mike G:
Zoals: case %0 of
case %00001 (of is dit hetzelfde?)

Niet echt, het ene is 0, het andere 1 decimaal.