#include<reg51.h>
sbit p14 = P2^4; //ps2-move-f
sbit p15 = P2^3; //ps2-move-b
sbit p16 = P2^1; //ps2-move-r
sbit p17 = P2^2; //ps2-move-l
sbit p30 = P3^0; //move-f
sbit p31 = P1^5; //move-b
sbit p32 = P1^6; //move-r
sbit p33 = P1^7; //move-l
bit on=0;
bit off=1;
void main()
{
while(1)
{
if(p14==on&&p15==off&&p16==off&&p17==off)//forward
{
//Gear();
p30=on;
p31=off;
p32=off;
p33=off;
}
if(p14==off&&p15==on&&p16==off&&p17==off)//backward
{
//Gear();
p30=off;
p31=on;
p32=off;
p33=off;
}
if(p14==off&&p15==off&&p16==on&&p17==off)//right
{
//Gear();
p30=off;
p31=off;
p32=on;
p33=off;
}
if(p14==off&&p15==off&&p16==off&&p17==on)//left
{
//Gear();
p30=off;
p31=off;
p32=off;
p33=on;
}
if(p14==off&&p15==off&&p16==off&&p17==off)
{
//Gear();
p30=off;
p31=off;
p32=off;
p33=off;
}
}
}
if((p14 == on) && (p15 == off) && (p16 == off) && (p17 == off)) /* forward */
{
//Gear();
p30=on;
p31=off;
p32= off;
p33=off;
}
else if((p14 == off) && (p15 == on) && (p16 == off) && (p17 == off)) /* backward */
{
//Gear();
p30=off;
p31=on;
p32=off;
p33=off;
}
else if(etc.)
nsw1216 said:What do u meant with write down case according P2 status?
Can you give me a simple example of how to use the switch function ?
#include<reg51.h>
sbit p14 = P2^4; //ps2-move-f
sbit p15 = P2^3; //ps2-move-b
sbit p16 = P2^1; //ps2-move-r
sbit p17 = P2^2; //ps2-move-l
sbit p30 = P3^0; //move-f
sbit p31 = P1^5; //move-b
sbit p32 = P1^6; //move-r
sbit p33 = P1^7; //move-l
bit on=0;
bit off=1;
void main(){
while(1){
switch(P2 & 0x1E){
case 0x10:
//Gear();
p30=on;
p31=off;
p32=off;
p33=off;
break;
case 0x08:
//Gear();
p30=off;
p31=on;
p32=off;
p33=off;
break;
case 0x02:
//Gear();
p30=off;
p31=off;
p32=on;
p33=off;
break;
case 0x04:
//Gear();
p30=off;
p31=off;
p32=off;
p33=on;
break;
case 0x00h:
//Gear();
p30=off;
p31=off;
p32=off;
p33=off;
break;
}
}
}
P2 = x x x p14 p15 p17 p16 x (So the mask to work just with the bits you need to check is: 00011110b = 0x1Eh)
(p14==on) && (p15==off) && (p16==off) && (p17==off) = 00010000b = 0x10h
(p14==off) && (p15==on) && (p16==off) && (p17==off) = 00001000b = 0x08h
(p14==off) && (p15==off) && (p16==on) && (p17==off) = 00000010b = 0x02h
(p14==off) && (p15==off) && (p16==off) && (p17==on) = 00000100b = 0x04h
(p14==off) && (p15==off) && (p16==off) && (p17==off) = 00000000b = 0x00h
diegobb said:nsw1216 said:What do u meant with write down case according P2 status?
Can you give me a simple example of how to use the switch function ?
I think that BurnOut_tesla means something like this:
Code:#include<reg51.h> sbit p14 = P2^4; //ps2-move-f sbit p15 = P2^3; //ps2-move-b sbit p16 = P2^1; //ps2-move-r sbit p17 = P2^2; //ps2-move-l sbit p30 = P3^0; //move-f sbit p31 = P1^5; //move-b sbit p32 = P1^6; //move-r sbit p33 = P1^7; //move-l bit on=0; bit off=1; void main(){ while(1){ switch(P2 & 0x1E){ case 0x10: //Gear(); p30=on; p31=off; p32=off; p33=off; break; case 0x08: //Gear(); p30=off; p31=on; p32=off; p33=off; break; case 0x02: //Gear(); p30=off; p31=off; p32=on; p33=off; break; case 0x04: //Gear(); p30=off; p31=off; p32=off; p33=on; break; case 0x00h: //Gear(); p30=off; p31=off; p32=off; p33=off; break; } } }
The port 2 is:
Code:P2 = x x x p14 p15 p17 p16 x (So the mask to work just with the bits you need to check is: 00011110b = 0x1Eh)
The if's statements comes to:
Code:(p14==on) && (p15==off) && (p16==off) && (p17==off) = 00010000b = 0x10h (p14==off) && (p15==on) && (p16==off) && (p17==off) = 00001000b = 0x08h (p14==off) && (p15==off) && (p16==on) && (p17==off) = 00000010b = 0x02h (p14==off) && (p15==off) && (p16==off) && (p17==on) = 00000100b = 0x04h (p14==off) && (p15==off) && (p16==off) && (p17==off) = 00000000b = 0x00h
Regards.
I agree with you, but sometimes if somebody gives you a piece of code, with a good explanation, you learn a lot more (and is alot less frustating that search over internet for a code that barely applies in your situation), don't you think?BurnOut_tesla said:Dear diegobb,
I thought nsw1216 may able to write down switch statement after that suggestion...
I dont think directly giving code is good idea...
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?