Page 71 - ipst-cmanual
P. 71
¤ÁÙ Í× ¡ÒÃà¢ÂÕ ¹â»Ãá¡ÃÁÀÒÉÒ C ÊÒí ËÃºÑ ãª§ Ò¹¡ÅÍ §ÊÁͧ¡Å IPST-MicroBOX l 71
4.9.4 ¿§ ¡ª ¹Ñè uart_getkey
ãªÃѺ¢ÍÁÙÅ·èÕÁÒ¨Ò¡¾Íõ͹ءÃÁ¼Ò¹¡ÒÃÊè×ÍÊÒâÍÁÙÅ͹ءÃÁ¡Ñº¤ÍÁ¾ÔÇàµÍÃ
ÃٻẺ¿§¡ª ¹Ñè
char uart_getkey(void)
¾ÒÃÒÁÔàµÍÃ
äÁÁ ¡Õ Òä¹× ¤Ò
¡Òä¹× ¤Ò
l ¨Ð¤¹× ¤Ò ໹ 0 àÁÍ×è 处 äÁÁ ¡Õ ÒÃÃºÑ Í¡Ñ ¢ÃÐã´æ à¢Ò ÁÒ处 ÀÒ¤ÃºÑ ¢Í§âÁ´ÅÙ ÊÍ×è ÊÒÃ¢Í ÁÅ٠͹¡Ø ÃÁ
l àÁ×èÍÁÕ¡ÒÃÃѺÍÑ¡¢ÃÐà¢ÒÁÒÂѧâÁ´ÙÅÊè×ÍÊÒâÍÁÙÅ͹ءÃÁ ¨Ð¤×¹¤Ò·èյç¡ÑºÍÑ¡¢ÃйÑ鹿
¨Ò¡¿§ ¡ªèѹ
µÇÑ ÍÂÒ §·Õè 4-24
void main() // â»Ãá¡ÃÁËÅ¡Ñ
{ // ǹÃͺäÁà ¨Ù º
// µÃǨ¨ºÑ ¡Òá´á»¹ ¤ÂÕ a ÇÒ ¶¡Ù ¡´ËÃÍ× äÁ
while(1) // áÊ´§¢Í ¤ÇÒÁÇÒ ¨ºÑ ä´Ç Ò Á¡Õ Òá´á»¹ ¤ÂÕ a
{ // Ë¹Ç §àÇÅÒáÊ´§¢Í ¤ÇÒÁ»ÃÐÁÒ³ 1 Ç¹Ô Ò·Õ
if(uart_getkey()==’a’) // à¤ÅÂÕ Ã¢ Í ¤ÇÒÁ·¨èÕ ÍáÊ´§¼Å¢Í§âÁ´ÅÙ LCD
{
lcd(“Key a Active!”);
sleep(1000);
}
else
{
lcd(“#c”);
}
}
}
ËÁÒÂà赯 ¡ÒÃàÃÂÕ ¡ãª§ Ò¹¿§ ¡ª ¹èÑ uart à¾Í×è ʧ ¢Í ÁÅÙ ÍÍ¡·Ò§ä»Â§Ñ ¾Íõ ͹¡Ø ÃÁáÅп§ ¡ª ¹èÑ uart_getkey
à¾Í×è µÃǨ¨ºÑ Í¡Ñ ÉÃÐã´æ¹¹Ñé 굄 ÃҺʹËÃÍ× ÍµÑ ÃÒàÃÇç 㹡ÒÃÊÍ×è ÊÒÃ¢Í ÁÅÙ ÃÐËÇÒ §âÁ´ÅÙ ÊÍè× ÊÒÃ¢Í ÁÅ٠͹¡Ø ÃÁä´¶ ¡Ù
¡Òí ˹´à»¹ 9,600 ºµÔ µÍ Ç¹Ô Ò·Õ ¨Òí ¹Ç¹ºµÔ ¢Í ÁÅÙ 8 ºµÔ áÅÐäÁã ª§ Ò¹ºµÔ ¾ÒÃµÔ âéÕ ´Â굄 â¹ÁµÑ Ô (໹ ¤Ò µ§éÑ µ¹ ) àÁÍ×è
Á¡Õ ÒÃàÃÂÕ ¡ãª§ Ò¹¿§ ¡ª ¹èÑ ´§Ñ ¡ÅÒ Ç «§èÖ ¶Í× à»¹ 굄 ÃҺʹËÃÍ× ÍµÑ ÃÒàÃÇç 㹡ÒÃ¶Ò Â·Í´¢Í ÁÅÙ ÁÒµÃÒ°Ò¹·¹èÕ ÂÔ Á㪧 Ò¹
â´Â·ÇèÑ ä» à¾Í×è Å´¤ÇÒÁ«ºÑ «Í ¹ã¹¡ÒÃà¢ÂÕ ¹â»Ãá¡ÃÁŧ áµà ÁÍ×è ¼¾Ù ²Ñ ¹Òâ»Ãá¡ÃÁµÍ §¡ÒÃà»ÅÂèÕ ¹á»Å§¤Ò 굄 ÃҺʹ
㹡ÒÃÊÍ×è ÊÒÃ¢Í ÁÅÙ ¡Êç ÒÁÒö·Òí ä´â ´ÂàÃÂÕ ¡¡ÒáÒí ˹´¤Ò ¨Ò¡¿§ ¡ª ¹Ñè uart_set_baud â´Â¼¾Ù ²Ñ ¹Ò¤ÇäÒí ¹§Ö
¶§Ö ´Ç ÂÇÒ àÁÍè× ÍµÑ ÃҺʹ㹡ÒÃÊÍ×è ÊÒÃʧ٠¢¹Öé ÍҨʧ ¼Å¡ÃзºµÍ ¤ÇÒÁ¶¡Ù µÍ §ã¹¡ÒÃÊÍ×è ÊÒÃ¢Í ÁÅÙ ´Ç Â
4.9.4 ¿§ ¡ª ¹Ñè uart_getkey
ãªÃѺ¢ÍÁÙÅ·èÕÁÒ¨Ò¡¾Íõ͹ءÃÁ¼Ò¹¡ÒÃÊè×ÍÊÒâÍÁÙÅ͹ءÃÁ¡Ñº¤ÍÁ¾ÔÇàµÍÃ
ÃٻẺ¿§¡ª ¹Ñè
char uart_getkey(void)
¾ÒÃÒÁÔàµÍÃ
äÁÁ ¡Õ Òä¹× ¤Ò
¡Òä¹× ¤Ò
l ¨Ð¤¹× ¤Ò ໹ 0 àÁÍ×è 处 äÁÁ ¡Õ ÒÃÃºÑ Í¡Ñ ¢ÃÐã´æ à¢Ò ÁÒ处 ÀÒ¤ÃºÑ ¢Í§âÁ´ÅÙ ÊÍ×è ÊÒÃ¢Í ÁÅ٠͹¡Ø ÃÁ
l àÁ×èÍÁÕ¡ÒÃÃѺÍÑ¡¢ÃÐà¢ÒÁÒÂѧâÁ´ÙÅÊè×ÍÊÒâÍÁÙÅ͹ءÃÁ ¨Ð¤×¹¤Ò·èյç¡ÑºÍÑ¡¢ÃйÑ鹿
¨Ò¡¿§ ¡ªèѹ
µÇÑ ÍÂÒ §·Õè 4-24
void main() // â»Ãá¡ÃÁËÅ¡Ñ
{ // ǹÃͺäÁà ¨Ù º
// µÃǨ¨ºÑ ¡Òá´á»¹ ¤ÂÕ a ÇÒ ¶¡Ù ¡´ËÃÍ× äÁ
while(1) // áÊ´§¢Í ¤ÇÒÁÇÒ ¨ºÑ ä´Ç Ò Á¡Õ Òá´á»¹ ¤ÂÕ a
{ // Ë¹Ç §àÇÅÒáÊ´§¢Í ¤ÇÒÁ»ÃÐÁÒ³ 1 Ç¹Ô Ò·Õ
if(uart_getkey()==’a’) // à¤ÅÂÕ Ã¢ Í ¤ÇÒÁ·¨èÕ ÍáÊ´§¼Å¢Í§âÁ´ÅÙ LCD
{
lcd(“Key a Active!”);
sleep(1000);
}
else
{
lcd(“#c”);
}
}
}
ËÁÒÂà赯 ¡ÒÃàÃÂÕ ¡ãª§ Ò¹¿§ ¡ª ¹èÑ uart à¾Í×è ʧ ¢Í ÁÅÙ ÍÍ¡·Ò§ä»Â§Ñ ¾Íõ ͹¡Ø ÃÁáÅп§ ¡ª ¹èÑ uart_getkey
à¾Í×è µÃǨ¨ºÑ Í¡Ñ ÉÃÐã´æ¹¹Ñé 굄 ÃҺʹËÃÍ× ÍµÑ ÃÒàÃÇç 㹡ÒÃÊÍ×è ÊÒÃ¢Í ÁÅÙ ÃÐËÇÒ §âÁ´ÅÙ ÊÍè× ÊÒÃ¢Í ÁÅ٠͹¡Ø ÃÁä´¶ ¡Ù
¡Òí ˹´à»¹ 9,600 ºµÔ µÍ Ç¹Ô Ò·Õ ¨Òí ¹Ç¹ºµÔ ¢Í ÁÅÙ 8 ºµÔ áÅÐäÁã ª§ Ò¹ºµÔ ¾ÒÃµÔ âéÕ ´Â굄 â¹ÁµÑ Ô (໹ ¤Ò µ§éÑ µ¹ ) àÁÍ×è
Á¡Õ ÒÃàÃÂÕ ¡ãª§ Ò¹¿§ ¡ª ¹èÑ ´§Ñ ¡ÅÒ Ç «§èÖ ¶Í× à»¹ 굄 ÃҺʹËÃÍ× ÍµÑ ÃÒàÃÇç 㹡ÒÃ¶Ò Â·Í´¢Í ÁÅÙ ÁÒµÃÒ°Ò¹·¹èÕ ÂÔ Á㪧 Ò¹
â´Â·ÇèÑ ä» à¾Í×è Å´¤ÇÒÁ«ºÑ «Í ¹ã¹¡ÒÃà¢ÂÕ ¹â»Ãá¡ÃÁŧ áµà ÁÍ×è ¼¾Ù ²Ñ ¹Òâ»Ãá¡ÃÁµÍ §¡ÒÃà»ÅÂèÕ ¹á»Å§¤Ò 굄 ÃҺʹ
㹡ÒÃÊÍ×è ÊÒÃ¢Í ÁÅÙ ¡Êç ÒÁÒö·Òí ä´â ´ÂàÃÂÕ ¡¡ÒáÒí ˹´¤Ò ¨Ò¡¿§ ¡ª ¹Ñè uart_set_baud â´Â¼¾Ù ²Ñ ¹Ò¤ÇäÒí ¹§Ö
¶§Ö ´Ç ÂÇÒ àÁÍè× ÍµÑ ÃҺʹ㹡ÒÃÊÍ×è ÊÒÃʧ٠¢¹Öé ÍҨʧ ¼Å¡ÃзºµÍ ¤ÇÒÁ¶¡Ù µÍ §ã¹¡ÒÃÊÍ×è ÊÒÃ¢Í ÁÅÙ ´Ç Â