หัวข้อ: ช่วยด้วยครับ....คอมไพล์แล้วerror เริ่มหัวข้อโดย: got_extra ที่ กรกฎาคม 24, 2010, 08:46:14 pm int conv7segment(in number);
main() { int i; TRISB = 0x00; CMCON = 0x07; while(1) { for(i=0;i<10;i++) { PORTB=(i); while(PORTA.F0==1); { } Delay_ms(1000); } } } int conv7segment(int number); { switch (number); { case 1; return 0x06; case 2; return 0x5b; case 3; return 0x4f; case 4; return 0x66; case 5; return 0x6d; case 6; return 0x7d; case 7; return 0x07; case 8; return 0x7f; case 9; return 0x6f; case 0; return 0x3f; } } ตามนั้นครับคอมไพล์แล้วerror ต้องแก้ตรงไหนอีกครับ...... cry2!! หัวข้อ: Re: ช่วยด้วยครับ....คอมไพล์แล้วerror เริ่มหัวข้อโดย: kiano♥ ที่ กรกฎาคม 24, 2010, 10:28:36 pm แก้หลายที่ ดูเปรียบเทียบเองแล้วกัน
ทำไมไม่ลองดูว่ามันเออเร่ออย่างไร แล้วค่อยๆไล่ไป ฟังก์ชั่น conv7segment เขียนขึ้นมาแต่ไม่มีการเรียกใช้งาน งง ถ้าไม่รู้ว่าจะแก้อย่างไร ก็ลองเขียนทีละน้อยๆ แล้วกดคอมไพไปเรื่อยๆครับ int conv7segment(int number); main() { int i; TRISB = 0x00; CMCON = 0x07; while(1) { for(i=0;i<10;i++) { PORTB=(i); while(PORTA.F0==1) { } Delay_ms(1000); } } } int conv7segment(int number) { switch (number) { case 1: return 0x06; case 2: return 0x5b; case 3: return 0x4f; case 4: return 0x66; case 5: return 0x6d; case 6: return 0x7d; case 7: return 0x07; case 8: return 0x7f; case 9: return 0x6f; case 0: return 0x3f; } } หัวข้อ: Re: ช่วยด้วยครับ....คอมไพล์แล้วerror เริ่มหัวข้อโดย: got_extra ที่ กรกฎาคม 24, 2010, 11:14:18 pm ขอบคุณมากครับทำได้แล้ว........ lv!
แล้วถ้าจะสั่งให้ตรง case 1: return 0x06; (แสดงเป็นเลข1) มันกระพริบจะทำได้เปล่าครับต้องใช้คำสั่งอะไรรบกวนหน่อยครับ.....(พึงเล่นpicได้3วันเองแต่เริ่มชอบแล้ว..อิอิ) ping! หัวข้อ: Re: ช่วยด้วยครับ....คอมไพล์แล้วerror เริ่มหัวข้อโดย: kiano♥ ที่ กรกฎาคม 25, 2010, 07:44:25 am ให้ทดลองกับโค๊ดนี้นะ
// // counter 0~9 PIC16F628 // 0 1 2 3 4 5 6 7 8 9 unsigned const number[10]={63,6,91,79,102,109,125,39,127,111}; main(){ char i; cmcon=0x07; trisA=0x00; trisB=0x00; while(1){ i++; if(i>=10){ i=0; } portB=number[ไอ]; delay_ms(500); portB=0x00; delay_ms(500); } // end while(1) } // end main หัวข้อ: Re: ช่วยด้วยครับ....คอมไพล์แล้วerror เริ่มหัวข้อโดย: got_extra ที่ กรกฎาคม 25, 2010, 09:44:16 am แบบนี้คอมไพล์ผ่าน แต่พอมาต่อวงจรไม่มีอะไรเกิดขึ้นเลยครับงง........ผมใช้PIC16F627Aครับ............. shocked2
หัวข้อ: Re: ช่วยด้วยครับ....คอมไพล์แล้วerror เริ่มหัวข้อโดย: got_extra ที่ กรกฎาคม 25, 2010, 05:24:50 pm แบบข้างบนผมต่อวงจรแล้วไม่เกิดอะไรเลยครับ.....คอมไฟล์ก็ผ่าน....
***** ถ้าจะลองแบบนี้ได้เปล่าครับ.....(เป็นไฟได้กระพริบ3รูปแบบมีสวิสกดเปลี่ยนรูปแบบ).หรือจะต้องแก้ตรงไหนอีกครับเพราะผมคอมไฟล์แล้วผ่านแต่ต่อวงจรไม่มีอะไรเกิดขึ้น....ป.ล.ผมใช้pic 16F627A ใช้คลิสตอล 4MHz. ต่อสวิสเปลี่ยนรูปแบบเข้าที่ขา17 shocked2 main() { char p=0; cmcon=0x07; portA=0xFF; portB=0x00; while(1) { if(portA.f0==0) { p++; while(portA.f0==0) { portB=0xFF; } if(p>2) { p=0; } } if(p==0) { portB=0b11111111; delay_ms(500); portB=0b00000000; delay_ms(500); portB=0b00001111; delay_ms(500); portB=0b11100000; delay_ms(500); } else { if(p==1) { portB=0b11110000; delay_ms(500); portB=0b00001111; delay_ms(500); portB=0b11111111; delay_ms(500); portB=0b00000000; delay_ms(500); } else { portB=0b11000000; delay_ms(500); portB=0b00110000; delay_ms(500); portB=0b00001100; delay_ms(500); portB=0b00000011; delay_ms(500); } } } } void timer(void) { delay_ms(100); } |