ช่วยดู ต้องแก้ตรงใหนครับโคด ควบคุมปุ่มกด

กลุ่มวงจรที่ใช้ Microcontroller Arduino , PIC , AVR ,ETC.

Moderator: gang

kknum

ช่วยดู ต้องแก้ตรงใหนครับโคด ควบคุมปุ่มกด

โพสต์โดย kknum » 02/06/2011 11:05 am

คือผมพึ้งเริ่มต้นนะครับยังไม่เข้าใจ

ผมตองการ กด s1 ครั่งที่ 1 แล้วไฟวิ่งไปแล้วหยุด แล้วกด s1 อีดไฟวิ่งไป 1 ครั่ง แล้วหยุด กดอีก 1 ครั่งแล้วไฟวิ่งไปหยุด
มารอเริ่งใหม่
ทั่งหมด 3 ครั่ง
แต่ผมลองแล้วมัน วิ่งชุดแรกบ้าง ชุด สองบ้าง ไม่เป็น ขั้นตอนครับ
ท่านผู้รู้ช่วยหน่อยครับแก้ตรงใหนดีครับ

main()
{
TRISB = 0x00 ;
CMCON = 0x07 ;
TRISA = 0x01 ;
while(1)
{
while(PORTA.F0==1)
{
PORTB = 0x01;
Delay_ms(400);
PORTB = 0x00;
Delay_ms(500);
PORTB = 0X02;
Delay_ms(400);
PORTB = 0X00;
Delay_ms(500);
PORTB = 0x02;
Delay_ms(400);
PORTB = 0x00;
Delay_ms(500);
PORTB = 0x01;
Delay_ms(400);
PORTB = 0x00;
Delay_ms(500);
PORTB = 0x08;
Delay_ms(400);
PORTB = 0x00;
Delay_ms(500);
PORTB = 0x04;
Delay_ms(400);
PORTB = 0x00;
Delay_ms(500);
PORTB = 0X10;
Delay_ms(400);
PORTB = 0X00;
Delay_ms(500);
PORTB = 0x02;
Delay_ms(400);
PORTB = 0x00;
Delay_ms(500);
PORTB = 0x01;
Delay_ms(400);
PORTB = 0x00;
Delay_ms(500);
}
while(PORTA.F0==1)
{
PORTB = 0x01;
Delay_ms(2000);
PORTB = 0x00;
Delay_ms(1000);
PORTB = 0X20;
Delay_ms(2000);
PORTB = 0X00;
Delay_ms(1000);
PORTB = 0x03;
Delay_ms(2000);
PORTB = 0x00;
Delay_ms(1000);
PORTB = 0x01;
Delay_ms(2000);
PORTB = 0x00;
Delay_ms(1000);
}
while(PORTA.F0==1)
}
PORTB = 0x01;
Delay_ms(3000);
PORTB = 0x00;
Delay_ms(1000);
}
}
}

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

Re: ช่วยดู ต้องแก้ตรงใหนครับโคด ควบคุมปุ่มกด

โพสต์โดย gang » 03/06/2011 9:33 am

ดูแล้วไม่น่าจะได้นะครับ น่าจะต้องมีตัวแปรเก็บค่า loop เพื่อจะได้รู้ว่าตอนนี้อยู่ที่ loop ใหนแล้ว ตัวอย่างเช่น เมื่อกดครั้งแรกเข้า loop1 ตัวแปรชื่อ L จะมีค่าเป็น 1 เมื่อมีการกดครั้งที่สอง นอกจากจะมีเงื่อนใขในการเข้า loop ที่สองเมื่อมีการกดปุ่มแล้ว ยังจะต้องดูตัวแปร L ด้วยว่าเป็น 1 หรือไม่ ถ้าถูกต้องทั้งสองเงื่อใข loop 2 จึงจะทำงานได้ และพอเข้า loop 2 ได้แล้วก็เปลี่ยนค่า L เป็น2 เพื่อทำการเช็คลักษณะอย่างนี้อิกครั้งสำหรับ Loop ที่สาม
I Love Arduino


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

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

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

cron