หากต่อไฟเลี้ยงผิดก็คงต้องซื้อใหม่ครับ ทำใจ...
การเขียนออก LCD ก็ต้องแปลงเป็น String ก่อนครับค่อยส่งออก LCD
char buff[12];
.
.
.
จาก printf("T=%3.2f C\r\n",fTemp_true);
ใช้ sprintf(buff,"T=%3.2f C\r\n",fTemp_true); ทำข้อมูลให้เป็น string เก็บไว้ในตัวแปร buff
จากตัวอย่าง
http://www.thaimicrotron.com/Referrence/LCD/LCD-Module5.htmก็ให้ใช้ printf(WriteLCDData,buff); นำค่าใน buff แสดงออกทาง LCD
ส่วนคำสั่ง
set_tris_c(0B10000000);
ฺ0B หมายถึง ไบนารีครับ 10000000 ทำให้ดูง่ายครับ
C7 เป็น input ครับ
หากเป็น HEX จะเขียนเป็น set_tris_c(0x80);
ต้องการให้บิทใดเป็น
อินพุตก็ให้เซ็ทเป็น
1ต้องการให้บิทใดเป็น
เอาต์พุตก็ให้เซ็ทเป็น
0ส่วนเพิ่มเติมก็คือ
set_tris_c(0B
10000000);
ไม่ต้องเซ็ทก็ได้ เพราะเมื่อเราประกาศ
#use rs232(baud=9600,parity=N,
xmit=PIN_C6,rcv=PIN_C7)
คอมไพล์เลอร์จะเซ็ท PIN_C6 เป็นเอาต์พุต PIN_C7 เป็น อินพุตให้โดยอัตโนมัติ
และทุกๆครั้งที่เราใช้คำสั่ง อินพุต-เอาต์พุต ก็เช่นกัน คอมไพล์เลอร์จะเซ็ท I/O ให้ก่อนเรียกใช้ฟังก์ชั่น
ทำให้ผู้ใช้เคยตัวพอสมควร
แต่สำหรับงานที่ต้องการ อินพุต-เอาต์พุต ความเร็วสูง เราจะต้องประกาศ
#use fast_io (port)ตรงนี้
คอมไพล์เลอร์จะไม่เซ็ท I/O ให้ก่อนเรียกใช้ฟังก์ชั่น อินพุต-เอาต์พุต
เราจะต้องเซ็ทเอง เราเองก็ควรพึงระวังในการใช้ I/O ทุกครั้ง โดยกำหนดค่าตอนเริ่มต้น