Avatar billede grga Nybegynder
18. maj 2006 - 13:53 Der er 12 kommentarer og
1 løsning

If sætning

Har et lille spørgsmål angående if sætning

if(x > y)
{
P1 = 4;
}

Jeg skal også have udføret en anden ting på den samme if sætning

dvs
if bla bla
P1 = 4;
P1 = 8;
feks.. det fungere ik lige sådan, men hvordan kan det gøres?
Avatar billede jpk Nybegynder
18. maj 2006 - 13:58 #1
if(x > y)
{
P1 = 4;
P2 = 8;
}
Avatar billede mxs Nybegynder
18. maj 2006 - 14:06 #2
Du kan udføre lige så mange ting som du vil i bodyen af if-sætningen :)
Avatar billede grga Nybegynder
18. maj 2006 - 14:12 #3
I forstår åbenbart ikke hvad jeg mener..... det drejer sig om en microcontroller med porte, jeg bruger P1 lige nu til dioder og en lydgiver.

Jeg har dog prøvet at udføre

if(x > y)
{
P1 = 4;
P1 = 8;
}

men så fungerer lydgiveren KUN.. en anden måde det kan laves på?
Avatar billede jpk Nybegynder
18. maj 2006 - 14:16 #4
Det giver jo ikke mening, du sætter P1 til 4 og overskriver den så med værdien 8!!!
Skal det ikke være P1 og P2?
Avatar billede mxs Nybegynder
18. maj 2006 - 14:18 #5
Det kunne du jo bare have skrevet i dit indledende spørgsmål.
Avatar billede grga Nybegynder
18. maj 2006 - 14:18 #6
Jeg skal have udført 2 ting på den samme skide port.. jeg har flere inputs jeg kan lege med..hvis du ved hvad microcontroller er...
Avatar billede mxs Nybegynder
18. maj 2006 - 14:21 #7
2 ting på samme port? Altså du vil lave det sådan "er input 1 så udfør det her på P1", "er input 2 så udfør det her på P1"?
Avatar billede grga Nybegynder
18. maj 2006 - 14:23 #8
Ja på en måde, for hvis jeg overskrider en værdi, feks 40 såå skal der tændes en diode og en lydgiver på samme tidspunkt.. giver det mening?
Avatar billede mxs Nybegynder
18. maj 2006 - 14:29 #9
Ja det giver meget mening. Men jeg tror nu ikke at du kan få samme port til at udføre to ting lige efter hinanden (ihvertfald ikke på den måde som du gør det på), da du jo først sætter P1 til at være 4 og derefter overskriver den til 8. Det skal ordnes på en anden måde. Hvordan, ved jeg ikke da jeg ikke har rodet med microcontrollere selv.
Avatar billede lars314 Nybegynder
18. maj 2006 - 15:17 #10
if(x > y)
{
P1 = 4;
P1 = 4+8;
}

eller

if(x > y)
{
P1 = 4;
P1 = 4 | 8;
}

Kan du aflæse porten?
så kan du skrive

P1 = P1 | 8;

For at tænde bit 4
Avatar billede lars314 Nybegynder
18. maj 2006 - 15:23 #11
Sagt på en anden måde

unsigned char bits;

tændt bit 3

bits = bits | 0x04;
P1 = bits;

sluk bit 3

bits = bits & 0xFB;
P1 = bits;

tændt bit 4

bits = bits | 0x08;
P1 = bits;

sluk bit 3

bits = bits & 0xF7;
P1 = bits;
Avatar billede grga Nybegynder
18. maj 2006 - 15:36 #12
lars jeg takker..
smid et svar
Avatar billede lars314 Nybegynder
18. maj 2006 - 21:54 #13
Held og lykke
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester