Sorry voor de erg slechte omschrijving in de titel.
Maar ik daag jullie uit voor een betere. :-)

Stel ik heb het volgende stukje code:
(en negeer de missende DIM comando's etc. Tis maar een voorbeeld...)


symbol ingang portb         ;portB is volledig ingang
Temp = ingang &63           ;de laatste 6 bits overgezet naar Temp

If Temp < %000011 then (enz...)

Stel nu dat er %11000010 wordt aangeboden op de ingang.
Is de vergelijking If-Then dan TRUE?

Het lijkt mij wel omdat de eerste 2 bits niet worden meegenomen in Temp en deze nooit hoger kan zijn dan 63

Maar ergens gaat het fout in mijn beredenering en ik kan er de vinger niet op leggen.

Hee Fantomaz, da moje even op het forum zette!
Sorry... Het zit allemaal in mijn hoofd >:)

ik hoop dat ik je geod begrijp maar je wilt een byte inlezen op je poort b.

dan zou deze vergelijk moeten werken(ik ga even uit van een code en dat dan een led aangaat)


if portb = %11001100 then
toggle pina.1
delayms500
endif

heb ik het goed wat je wilt doen of niet

Nee absoluut niet :)
Het gaat om het overnemen van de gegevens uit ingang
TEMP neemt de laatste 6 bits over van Ingang
Dus zou je zeggen dat de waarde van temp niet boven de 63 kan liggen (00111111)

MAar is dat wel zo?
Hoe gaat dat wanneer ik er een vergelijking opo loslaat die true is wanneer temp (bv) lager is dan 6 (00000110)
Ingang kan dan bijvoorbeeld 11000110 zijn, maar temp pakt alleen die laatste 6 bits.
Dus wanneer ingang 11000110 is en de vergelijking is
If temp < 8 then ...
TEMP is in principe minder dan 8. (6)
Maar hij is onttrokken aan %11000110 wat groter is dan 8 (00001000)

als je portb.7/porb.8 'weggooit' en de rest in je variabele gooit ben je er toch?

ja ik weet het het klinkt makkelijk

voorbeeldje gewenst??

[Bericht gewijzigd door timmie op ]

Dat is ook wat ik doe...
maar ik heb het gevoel dat het ergens fout gaat, en ik kan de vinger er niet achte krijgen.

Gevoelskwestie...
zullen wel de hormonen zijn :-p

je hebt nog geen source he Fantomaz? mssn toch eens iets compileren in Proton dan merk je het.:)

zoiets dan maar:


trisb= %11111111
dim ingang as byte
ingang = portb
clear ingang.7
clear ingang.6
end

hierbij worden wel bit7 en 6 naar nul geschreven ik weet niet of dat problemen geeft.

Alles in mijn hood Timmie...
Het gaat ook niet om dat portB - die eerste 2 bits.
Het gaat me om het resultaat van die vergelijking.
Ik heb alles op een rijtje weten te zetten en het "11111111 wordt 00111111 verhaal" is gewoon hetzelfde als 255-(128+64)...
Komt ook weer neer op 63

Het is geen probleem hoor...
Meer iets waar ik over piekerde :-)

ooh oke
het werkt in ieder gevval wel zon vergelijking.:) succes