พฤษภาคม 31, 2020, 08:33:40 AM *
ยินดีต้อนรับคุณ, บุคคลไม่รู้ว่าใคร กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
หน้า: [1]   ลงล่าง
  พิมพ์  
ใครเขียน ภาษาซีเป็น ช่วยหน่อยคร้าบ ด่วนมาก  (อ่าน 2207 ครั้ง)
ขั้น 3 : ซุปเปอร์สตาร์ *** ออฟไลน์ ออฟไลน์ เพศ: ชาย พลังสะสม: 197
พฤศจิกายน 18, 2010, 04:41:11 PM
ผลงาน: 16
cawados
แฟนคลับ
ขั้น 3 : ซุปเปอร์สตาร์
***

ผลงาน: 16
ออฟไลน์ ออฟไลน์

เพศ: ชาย
พลังสะสม: 197

« เมื่อ: พฤศจิกายน 18, 2010, 04:41:11 PM »
คือ อาจารที่มหาลัยให้เขียนโปรแกรมเกี่ยวกับวงจรไฟฟ้าอ่ะคับ   มีหลอดไฟทั้งหมด 8หลอด   ให้เป็นแบบติดและดับสลับกันไปเรื่อย ภายในเวลา 1วินาที
อันนี้เป็นตัวอย่างนะคับ(แต่อันนี้เป็นแบบหลอดเดียวคับ)ที่ต้องการจิงจิงอ่ะ 8 หลอดคับ

// ___________________________________________//
// Program : Output port
// Description : Example for dasic Output port
// Frequency : Fch/4
// Filename : Output_port.c
// C compiler : Softune Workbench
//______________________________________________//

#include "mb89201.h"          // Header file for MB89N202/MB89F202
//__________ Delay function _________________________//
void delay_ms (unsigned int ms)
{
   unsigned int x,a;         // Keep for counter loop
   for (x=0;x<ms;x++)
    {
      for(a=0;a<62;a++);     // Loop delay 1 ms per unit (@ClockSpeed=Fch/4)
    }
}
//___________ Main Program __________________________//
void main (void)
    SYCC = 0x13;             // ClockSpeed=Fch4, OscWaitTime=Fch/2^17
    DDR3_D30 = 1;            // Config P30 as output port
    While (1)                // Infinite loop
    {
       PDR3_P30 = !PDR3_P30  // Toggle LED
       delay_ms(500);        // Delay 500 ms
    }
}

ช่วยหน่อยคับ....ต้องส่งวันอาทิตแล้วคับ  [ขอบคุนสำหรับความช่วยเหลือ]
ขั้น 0 : ทารก (เริ่มหัดโพสต์) *** ออฟไลน์ ออฟไลน์ พลังสะสม: 6
พฤศจิกายน 20, 2010, 11:34:55 PM
ผลงาน: 1
Northnroro
แฟนคลับ
ขั้น 0 : ทารก (เริ่มหัดโพสต์)
***

ผลงาน: 1
ออฟไลน์ ออฟไลน์

พลังสะสม: 6

« ตอบ #1 เมื่อ: พฤศจิกายน 20, 2010, 11:34:55 PM »
// ___________________________________________//
// Program : Output port
// Description : Example for dasic Output port
// Frequency : Fch/4
// Filename : Output_port.c
// C compiler : Softune Workbench
//______________________________________________//

#include "mb89201.h"          // Header file for MB89N202/MB89F202
//__________ Delay function _________________________//
void delay_ms (unsigned int ms)
{

   unsigned int x,a;         // Keep for counter loop
  for (x=0;x<ms;x++)
    {
      for(a=0;a<62;a++);
    // Loop delay 1 ms per unit (@ClockSpeed=Fch/4)
    }
}

//___________ Main Program __________________________//
void main (void)
    SYCC = 0x13;
            // ClockSpeed=Fch4, OscWaitTime=Fch/2^17
    DDR3_D30 = 1;           // Config P30 as output port
    While (1)                // Infinite loop
    {
       PDR3_P30 = !PDR3_P30
// Toggle LED
       delay_ms(500);        // Delay 500 ms
    }
}

สีเทาคือcomment ซึ่งไม่มีผลต่อโปรแกรมครับ
สีส้มคือ header file ก็คือตัวที่เก็บfunctionต่างๆที่ใช้ในโปรแกรม
สีแดงคือ functionที่สร้างมาเพื่อนับเวลา โดยมีรับค่าพารามิเตอร์เป็นหน่วงเวลา(ms)
สีน้ำเงินคือ ให้วนลูปทำคำสั่ง PDR3_P30 = !PDR3_P30;delay_ms(500); ไปเรื่อยๆครับ

PDR3_P30 = !PDR3_P30;delay_ms(500); คือ ให้ PDR3_P30 สลับระหว่าง 0(เท็จ) กับ 1(จริง) ทุกๆ500ms

ถ้า8หลอดติดทีละดวงเรียงไปก็
int count = 0,i = 0; ไว้นอกลูป
ในลูปif(count >= 8)count = 0;else{count++;delay_ms(1000/8);}
ต่อจากอันบน ในลูปเลย
for(i=0;i<8;i++)
     if(i == count)
          หลอดที่i = 1;
     else
          หลอดที่i = 0;


ผมไม่ค่อยรู้เท่าไหร่ แต่ก็หวังว่าคงพอจะช่วยอะไรได้บ้างนะครับ
ขั้น 3 : ซุปเปอร์สตาร์ *** ออฟไลน์ ออฟไลน์ เพศ: ชาย พลังสะสม: 197
พฤศจิกายน 22, 2010, 07:40:25 PM
ผลงาน: 16
cawados
แฟนคลับ
ขั้น 3 : ซุปเปอร์สตาร์
***

ผลงาน: 16
ออฟไลน์ ออฟไลน์

เพศ: ชาย
พลังสะสม: 197

« ตอบ #2 เมื่อ: พฤศจิกายน 22, 2010, 07:40:25 PM »
ขอบคุนสำหรับความช่วยเหลือคับ....ช่วยได้เยอะเลยคับ
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

Powered by MySQL Powered by PHP Valid XHTML 1.0! Valid CSS!