ข้ามไปที่เนื้อหาหลัก

ควบคุมไมโครคอนโทรลเลอร์ด้วยภาษาซี ตอนที่2

นอกจากตัวแปรและตัวดำเนินการในภาษาซีแล้ว ยังมีคำสั่งที่ใช้ควบคุม และสร้างเงื่อนไข ที่จำเป็นต่อการสร้างโปรแกรมอีก ซึ่งมันก็คือตัวกำหนดรูปแบบโครงสร้างโปรแกรมที่เราออกแบบไว้นั่นเอง อย่างน้อยมันเป็นพื้นฐานทำให้เราสามารถกำหนดฟังก์ชั่นในรูปแบบใหม่ๆขึ้นมา ทำให้เรามีฟังก์ชั่นที่หลากหลายไว้ใช้งาน

คำสั่งควบคุมในภาษาซีคำสั่งควบคุมเป็นฟังก์ชั่นสำเร็จที่มีอยู่ในภาษาซี และจะมีรูปแบบ วิธีใช้ที่เป็นมาตรฐาน เช่นเดียวกับภาษาอื่น ฟังก์ชั่นที่มีได้แก่ 
คำสั่ง goto labelเป็นคำสั่งใช้กระโดดข้ามไปยังคำสั่งอื่นได้ทุกที่ แต่ถ้าใช้มากๆจะเกิดความยุ่งยากได้
รูปแบบ คือ
   ชื่อตำแหน่ง :
{
คำสั่งต่างๆ ;
}
goto ชื่อตำแหน่ง ;

คำสั่ง if แบบทางเดียวใช้สำหรับตรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริงให้ทำตามคำสั่ง หากไม่เป็นจริงจะกระโดดข้ามนิพจน์ไป
รูปแบบคือ
  if(เงื่อนไข)
คำสั่ง  ;
หากมีหลายคำสั่ง        if(เงื่อนไข)
{
คำสั่งที่1 ;
คำสั่งที่2 ;
.
.
คำสั่งที่3 ;
}


คำสั่ง if แบบสองทางใช้สำหรับตรวจสอบเงื่อนไขสองเงื่อนไข ถ้าเป็นจริง ให้ทำตามคำสั่งของเงื่อนไขที่เป็นจริง หากเป็นเท็จ ให้ทำตามคำสั่งของเงื่อนไขที่เป็นเท็จ
รูปแบบคือ
 if(เงื่อนไข) {
คำสั่งของเงื่อนไขที่เป็นจริง ;
}
else{
คำสั่งของเงื่อนไขที่เป็นเท็จ ;
}

คำสั่ง if แบบหลายทางใช้สำหรับตวจสอบเงื่อนไขหลายเงื่อนไข  โดยจะตรวจสอบเงื่อนไขทีละเงื่อนไข หากเป็นเท็จก็จะข้ามไปตรวจสอบเงื่อนไขถัดไป หากเป็นจริงเงื่อนไขใดเงื่อนไขหนึ่ง คอมพิวเตอร์จะทำตามคำสั่งของเงื่อนไขนั้นและจะข้ามเงื่อนไขอื่นทั้งหมด  และหากเป็นเท็จทั้งหมดก็จะทำตามคำสั่งที่อยู่นอกเหนือเงื่อนไขที่กำหนดขึ้น
รูปแบบคือ
 if(เงื่อนไขที่1)
{
คำสั่งของเงื่อนไขที่เป็นจริง 1 ;
}
else if(เงื่อนไขที่2)
{
คำสั่งของเงื่อนไขที่เป็นจริง 2 ;
}
else if(เงื่อนไขที่3)
{
คำสั่งของเงื่อนไขที่เป็นจริง 3 ;
}
else if(เงื่อนไขที่4)
{
คำสั่งของเงื่อนไขที่เป็นจริง 4 ;
}
else
{
คำสั่งของเงื่อนไขทุกเงื่อนไขที่เป็นเท็จ ; 
}

คำสั่ง forเป็นคำสั่งตรวจสอบเงื่อนไข ที่ใช้ในกรณีที่ต้องการให้โปรแกรม วนลูป หรือทำงานซ้ำหลายๆรอบ และเป็นจำนวนที่แน่นอน สามารถควบคุมได้เมื่อต้องการให้หยุดการทำงานซ้ำ
รูปแบบคือ
  for(กำหนดค่าเริ่มต้น; เงื่อนไข; ดำเนินการเพิ่มค่าหรือลดค่า;)
{
คำสั่งที่1;
คำสั่งที่2;
-
-
คำสั่งที่ n
}
ตัวอย่างเช่น
 for(x=0; x<20; x++)              / * หากต้องการลดค่าให้ใช้  x=20; x>=0; x- - แทน */
{
printf("test print");
}

คำสั่ง for แบบลูปซ้อนลูปหากต้องการประมวลผลในรูปแบบ 2มิติ หรือแบบเมตริก หรือการหน่วงเวลา จะต้องใช้คำสั่งแบบนี้
รูปแบบคือ
 for(กำหนดค่าเริ่มต้น; เงื่อนไข; ดำเนินการเพิ่มค่าหรือลดค่า;)
{
for(กำหนดค่าเริ่มต้น; เงื่อนไข; ดำเนินการเพิ่มค่าหรือลดค่า;  )
}
ตัวอย่างเช่น
for( x=0; x<5; x++ )
{
for( y=0; y<4; y++  )
}




คำสั่ง whileเมื่อต้องการวนลูป โดยมีการตรวจสอบเงื่อนไขก่อน จะต้องใช้คำสั่งนี้ เงื่อนไขคือเมื่อไม่ตรงเงื่อนไขหรือเงื่อนไขเป็นเท็จโปรแกรมจะออกจากลูปไป เลย และถ้าเงื่อนไขเป็นจริง โปรแกรมจะทำตามคำสั่งที่อยู่ในลูปนั้น ก่อนวนไปตรวจสอบเงื่อนไขอีกครั้ง
รูปแบบคือ
 while(เงื่อนไข)
{
คำสั่งต่างๆ ;
คำสั่งต่างๆ ;
}
**กรณีมีคำสั่งเดียวไม่ต้องใส่ { }



คำสั่ง while แบบลูปซ้อนลูปในการใช้คำสั่ง while ซ้อนลูป มีรูปแบบเหมือนคำสั่ง for แต่เมื่อต้องการออกจากลูปใด จะต้องทำให้เงื่อนไขนั้นเป็นเท็จ แต่ถ้าลูปนอกเป็นเท็จจะออกจากลูปทั้งหมดทันที
รูปแบบคือ
 while(เงื่อนไข)
{
while(เงื่อนไข)
{
คำสั่งลูปใน ;
คำสั่งลูปใน ;
}
คำสั่งลูปนอก ;
}

คำสั่ง do.. whileรูปแบบคำสั่งนี้ต่างจากคำสั่ง while ตรงที่โปรแกรมจะทำตามคำสั่งก่อนตรวจสอบเงื่อนไข เมื่อตรวจสอบเงื่อนไขเป็นจรงแล้วจึงวนลูป หากเป็นเท็จก็จะออกจากโปรแกรม
รูปแบบคือ
 do
{
คำสั่งต่างๆ ;
}
while(เงื่อนไข)

คำสั่ง do.. while แบบลูปซ้อนลูปสำหรับการวนลูปซ้อนลูปแบบนี้ แตกต่างจากการวนแบบอื่น เพราะคำสั่ง do.. while จะต้องทำตามคำสั่งก่อนทั้งลูปในและลูปนอก อย่างน้อยหนึ่งครั้งแล้วจึงจะควบคุมให้โปรแกรมดำเนินการตามเงื่อนไขที่เป็น เท็จได้
รูปแบบคือ
 do
{
do
{
คำสั่งต่างๆ ;
}
while(เงื่อนไข)
คำสั่งต่างๆ ;
}
while(เงื่อนไข)

คำสั่ง switchคำสั่งนี้เหมาะกับงานที่มีหลายเงื่อนไข โปรแกรมจะทำการตรวจสอบเงื่อนไขทุกชุด ทีละชุด โดยหากเงื่อนไขเป็นจริงโปรแกรมจะทำตามคำสั่งชุดนั้นแล้วตรวจสอบเงื่อนไขถัด ไปเรื่อยๆ หากชุดคำสั่งนั้นไม่มีคำสั่ง break; เพื่อออกจากการตรวจสอบ
รูปแบบคือ
 switch(ตัวแปรตรวจสอบเงื่อนไข)
{
case เงื่อนไขที่1;
คำสั่งต่างๆ;
break;
case เงื่อนไขที่2;
คำสั่งต่างๆ;
break;
case เงื่อนไขที่3;
คำสั่งต่างๆ;
break;
-
-
case เงื่อนไขที่ n;
คำสั่งต่างๆ;
break;
}

โพสต์ยอดนิยมจากบล็อกนี้

เฟต(FET)

เฟต(FET) เฟทมาจากคำว่า Field Effect Transistor เป็นอุปกรณ์สารกึ่งตัวนำชนิดหนึ่งคล้ายทรานซิสเตอร์ แต่คุณสมบัติอันพิเศษกว่าทรานซิสเตอร์จึงมีประโยชน์ในด้านการใช้งานนั้นมาก และถูกนำมาใช้งานอย่างกว้างขวาง รูปร่างภายนอกนั้นเหมือนทรานซิสเตอร์ทุกประการ แต่จะแตกต่างกันตรงเบอร์ใช้งานและคุณสมบัติอันพิเศษกว่าทรานซิสเตอร์นั่นเอง                                                                       รูปที่1 ความพิเศษของมันคือ มีค่าอิมพิแดนซ์ทางด้านอินพุตสูงมาก (ทรานซิสเตอร์มีอิมพิแดนซ์ต่ำ) อัตราการทนแรงดันและกระแส สูง และสำหรับเฟทแล้ว การทำงานจะใช้สนามไฟฟ้าควบคุม (ทรานซิสเตอร์ใช้กระแส) เป็นที่มาของคำว่า Field Effect Transistor มีสองแบบด้วยกันคือ แบบพีแชลแน...

คลาสต่างๆของวงจรขยายเสียง

การขยายสัญญาณเสียงให้มีความดังมากขึ้น ถือว่าเป็นสิ่งสำคัญในวงขยายเสียง และจะต้องนำไปใช้ในการขยายสัญญาณเสียงจากแหล่งกำเนิดต่างกัน ต้องการความดังสัญญาณต่างกันทำให้การจัดวงจรขยายสัญญาณเสียง หรือจัดคลาสของการขยายต่อกัน เพื่อให้เกิดความเหมาะสมในการนำไปใช้งาน และทำให้สัญญาณเสียงที่ได้ออกมามีความชัดเจนไม่ผิดเพี้ยน หรือมีความดังตามต้องการ การจัดคลาสการขยายจัดได้ตามการกำหนดจุดทำงานของวงจรขยาย แบ่งได้เป็น 4 แบบดังนี้ 1.คลาส-เอ(CLASS A) 2.คลาส-บี(CLASS B) 3.คลาส-เอบี(CLASS AB) 4.คลาส-ซี(CLASS C) การจัดวงจรขยายแต่ละคลาสมีจุดทำงานต่างกัน มีลักษณะการทำงานต่างกัน การใช้งานจะต้องเลือกคลาสการขยายให้เหมาะสมถูกต้อง จึงจะทำให้ขยายสมบูรณ์ และมีประสิทธฺภาพสูง วงจรขยายคลาส-เอ(CLASS-A AMPLIFIER) วงจรขยายคลาส-เอ เป็นวงจรขยายที่มีจุดการทำงานอยู่ในช่วงที่เรียกว่า แอกทีฟ คือ ช่วงการทำงานของทรานซิสเตอร์ที่เป็นลิเนียร์ หรือหากเปรียบเทียบก็เหมือนเครื่องยนต์ที่ทำการเร่งเครื่องพร้อมจะรับงานหนักๆได้อยู่ตลอดเวลา วงจรของขยายคลาสเอ จะมีกระแสสงบไหลตลอดเวลาเพื่อให้จุดของการทำงานมีช่วงสวิงของสัญญาณเอาท์พุตไม่ต่ำ...

การเปลี่ยนฐานของระบบเลข

การเปลี่ยนฐานของระบบเลข ในกระบวนการทางดิจิตอลนั้น การติดต่อสื่อสารทางตัวเลข บางครั้ง เมื่อต่างระบบ ค่าตัวเลขก็อาจต่างกัน ระบบหนึ่งอาจใช้เลขฐานสิบ อีกระบบอาจใช้เลขฐานสองในการทำงานในระบบ ดังนั้นจึงจำเป็นที่จะต้องมีการเปลี่ยนเลขฐานเพื่อการติดต่อสื่อสารให้ทั้ง สองระบบเข้าใจกัน  ดังนั้นจึงควรรู้วิธีการเปลี่ยนระบบเลขฐาน เพื่อเป็นความรู้พื้นฐานสำหรับการทำการเข้าใจเกี่ยวกับการทำงานของระบบ ดิจิตอลในคอมพิวเตอร์ สิ่งสำคัญในการเปลี่ยนฐานนั้น คือ ค่าประจำตำแหน่งของตัวเลขในแต่ละฐาน ซึ่งจะบอกให้เราทราบว่า ผลรวมจากค่าประจำตำแหน่งเป็นค่าจริงเท่าไหร่เมื่อเทียบกับค่าเลขในฐานอื่น ซึ่งค่าประจำตำแหน่งจะเขียนให้อยู่ในเลขยกกำลัง ได้ดังนี้                        ตารางเทียบค่าเลขยกกำลัง                                รูปที่1.ตาราง...