จำหน่ายและให้คำปรึกษาเกี่ยวกับการใช้งานบอร์ดไมโครคอนโทรลเลอร์ Arduino, Shield for arduino, Module และ Sensor รุ่นต่างๆ

ผมผิดตรงไหนครับ

กลุ่มวงจรที่ใช้ Microcontroller

Moderator: gang

ตั้ว

ผมผิดตรงไหนครับ

โพสต์โดย ตั้ว » 08/07/2011 2:10 pm

ไฟที่ PortD ไม่ติดครับ รบกวนชี้แนะด้วยนะครับ

void main()
{

char segment[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

unsigned int result;
TRISA=0xFF;
TRISD=0;
PORTD=0;
TRISC=0;
PORTC=segment[0];
while(1)
{
result=Adc_Read(2);
if(result>0&&result<=128)PORTC=segment[1];

else if(result>128&&result<=2*128)PORTC=segment[2];
else if(result>2*128&&result<=3*128)PORTC=segment[3];
else if(result>3*128&&result<=4*128)PORTC=segment[4];
else if(result>4*128&&result<=5*128)PORTC=segment[5];
else if(result>5*128&&result<=6*128)PORTC=segment[6];
else if(result>6*128&&result<=7*128)PORTC=segment[7];
else if(result>7*128)PORTC=segment[8];

else if(result=0&&result<=3*128)PORTD.F0=1;
else if(result>3*128&&result<=5*128)PORTD.F1=1;
else if(result>5*128&&result<=7*128)PORTD.F2=1;

else PORTC=segment[0];
}


}

ภาพประจำตัวสมาชิก
gang
Master of the Order[ ผู้ดูแลระบบ]
Master of the Order[ ผู้ดูแลระบบ]
โพสต์: 1023
ลงทะเบียนเมื่อ: 11/08/2004 11:00 pm
ที่อยู่: บางน้ำผึ้ง พระประแดง สมุทรปราการ
ติดต่อ:

Re: ผมผิดตรงไหนครับ

โพสต์โดย gang » 11/07/2011 11:16 am

ลองตัดส่วนการเช็คเงื่อนใขดูก่อน เพราะตัวแปร result อาจมีค่าไม่ถึงเงื่อนใขที่จะทำให้ portd ติดก็ได้

โค้ด: เลือกทั้งหมด

void main()
{

char segment[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

unsigned int result;
TRISA=0xFF;
TRISD=0;
PORTD=0;
TRISC=0;
PORTC=segment[0];
while(1)
{



PORTD.F0=1;
PORTD.F1=1;
PORTD.F2=1;


}


}


หรือลองทำ if เฉพาะ portd แแยกออกมาเป็นอีกชุด

โค้ด: เลือกทั้งหมด


if(result=0&&result<=3*128)PORTD.F0=1;
else if(result>3*128&&result<=5*128)PORTD.F1=1;
else if(result>5*128&&result<=7*128)PORTD.F2=1;

I Love Arduino


ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 1 และ บุคคลทั่วไป 0 ท่าน

cron