Ik ben een beetje aan het spelen met BASCOM met een AVR.
nu krijg ik op 3 pinnen van schakelaars een signaal binnen. nu zou ik die 3 bits in een variabele (byte) willen hebben zodat ik via select case kan bepalen welke knop er ingedrukt is.
ymoona
voor hobby elektronica projecten => http://ymoona.com/wiki
char car =0;
if(input_hoog){
var =+ 1; // verhoog de waarde met 1
}
var << 1; // schuif alle bits 1 naar links.
zo zou ik het in c doen, maar dit kan in BASCOM ook vast. Dit moet je dan wel drie maal doen.
klein is fijn
Moderator
Dim b as byte
Dim bit1 as bit
Dim bit2 as bit
Dim bit3 as bit
Bit1 = 1
Bit2 = 0
Bit3 = 1
b.0 = Bit1
b.1 = Bit2
b.2 = Bit3Resulteert in b = 5.
~Galaxy
In the beginning there was nothing.... and even that exploded...
Weet ook nix van bascom, maar zo zou ik het in P+ doen:
inputbyte=PORTB
inputbyte=inputbyte & %00000111 ;bitwise AND
Select Case inputbyte
Case 0
woef
Case 1
miauw
Case 2
kukeleku
Case 4
piep
End Selectkif; daar was ik net zelf ook opgekomen... hoe simpel kan het zijn.
@ galaxy; helaas gebruik ik de port ook nog voor andere zaken
bedankt.
Het is de eerste keer dat ik wat met bascom doe. maar het lijkt dat de compiler niet zo heel zuinig is. ik heb nog amper code maar de chip zit voor 50% vol zegt hij. klopt dit
[Bericht gewijzigd door Jan klaasen op (14%)]
~Galaxy
In the beginning there was nothing.... and even that exploded...
@ galaxy; helaas gebruik ik de port ook nog voor andere zaken
Daar is juist die bitwise AND voor.
Daar filter je die 'andere zaken' mee uit, en kijk je uitsluitend naar portb.0 t/m portb.2
klein is fijn
Moderator
Op 30 december 2007 17:56:10 schreef Jan klaasen:
ik heb nog amper code maar de chip zit voor 50% vol zegt hij. klopt dit
Ligt er geheel aan wat voor chip je hebt en hoeveel code je erin wilt stoppen.