Page 12 - ipst-cmanual
P. 12
l¤ÁÙ Í× ¡ÒÃà¢ÂÕ ¹â»Ãá¡ÃÁÀÒÉÒ C ÊÒí ËÃºÑ ãª§ Ò¹¡ÅÍ §ÊÁͧ¡Å IPST-MicroBOX
µÇÑ ÍÂÒ §·èÕ 1-5
int result1 = 0; // µÇÑ á»Ã result2 à¡ºç ¤Ò ¢Í ÁÅ٠Ẻ int
int result2 = 0; // µÇÑ á»Ã result2 à¡ºç ¤Ò ¢Í ÁÅ٠Ẻ int
float result3 = 0.0; // µÇÑ á»Ã result3 à¡ºç ¤Ò ¢Í ÁÅ٠Ẻ float
float result4 = 0.0; // µÇÑ á»Ã result4 à¡ºç ¤Ò ¢Í ÁÅ٠Ẻ float
int sum(int a , int b)
{ // ¤¹× ¤Ò ¼ÅÅ¾Ñ ¸¨ Ò¡¡Òúǡ¡¹Ñ ÃÐËÇÒ § a áÅÐ b
return(a+b);
}
float mul(float x , float y)
{ // ¤¹× ¤Ò ¼ÅÅ¾Ñ ¸¨ Ò¡¡Òä³Ù ¡¹Ñ ÃÐËÇÒ § x áÅÐ y
return(x*y);
} // ¿§ ¡ª ¹Ñè ËÅ¡Ñ ¢Í§â»Ãá¡ÃÁ
void main(void)
{ // ãˤ Ò ¼ÅÅ¾Ñ ¸à ËÁÍ× ¹ 18+7=25
result1 = sum(18,7);
result2 = sum(12,4) + sum(4,9); // ãˤ Ò ¼ÅÅ¾Ñ ¸à ËÁÍ× ¹ (12+4)+(4+9)=29
result3 = mul(10.0,50.0) + mul(4.0,5.0);
// ãˤ Ò ¼ÅÅ¾Ñ ¸à ËÁÍ× ¹(10*50)+(4*5)=520
result4 = mul(12.4,2.6) + (float)sum(8,7);
// ãˤ Ò ¼ÅÅ¾Ñ ¸à ËÁÍ× ¹ (12.4*2.6)+(8*7)=47.24
}
1.3 äźÃÒÃÕ (Library)
äźÃÒÃÕ ¤Í× ä¿Å· ÃÕè ǺÃÇÁËÃÍ× ºÃè¿Ø § ¡ª ¹èÑ äÇã ¹µÇÑ à¾Íè× ¨´Ñ ËÁÇ´ËÁ¿Ù § ¡ª ¹èÑ ·ÁèÕ ÅÕ ¡Ñ ɳСÒÃ
㪧 Ò¹¡ÅÁØ ËÃÍ× »ÃÐàÀ·à´ÂÕ Ç¡¹Ñ ¶¡Ù ¨´Ñ ࡺç äÇã ¹·àèÕ ´ÂÕ Ç¡¹Ñ ÊÇ ¹ãËá ÅÇ Á¡Ñ ¨Ðµ§Ñé ªÍ×è ä¿Åä źÃÒÃ¹Õ ãéÕ Ë
ÊÍ´¤ÅÍ §¡ºÑ ¡ÅÁØ ¢Í§¿§ ¡ª ¹Ñè ËÃÍ× ¡ÒÃ㪧 Ò¹ áÅÐ§Ò ÂµÍ ¡ÒÃàÃÂÕ ¡ãªã ¹¤Ã§Ñé µÍ ä»
¿§ ¡ª ¹Ñè ¡ÅÁØ à´ÂÕ Ç¡¹Ñ ·ÁèÕ ¡Ñ 㪧 Ò¹ºÍ Âæ 㹡Òþ²Ñ ¹Òâ»Ãá¡ÃÁ¤ÇùÒí ÁÒÊÃÒ §à»¹ ä¿Åä źÃÒÃÕ
áÅШ´Ñ ࡺç äÇ àÁÍ×è µÍ §¡ÒÃ㪧 Ò¹¡àç ¾ÂÕ §»ÃСÒÈâ»Ãâµä·» (prototype) ¢Í§ªÍ×è äźÃÒÃäÕ ¿Å· ÊèÕ ÃÒ §äÇ
¡Í ¹Ë¹Ò ¹Õé à¾Í×è ¼¹Ç¡äźÃÒÃàÕ ËÅÒ ¹¹éÑ äÇÃ Ç Á·Òí §Ò¹¡ºÑ â»Ãá¡ÃÁ·¡èÕ Òí Å§Ñ ¾²Ñ ¹ÒÍÂÙ ËÅ§Ñ ¨Ò¡¹¹Ñé ¨Ð·Òí ãË
¼¾Ù ²Ñ ¹ÒÊÒÁÒöàÃÂÕ ¡ãª§ Ò¹¿§ ¡ª ¹Ñè ·ºÕè ÃÃ¨ÍØ ÂÀÙ ÒÂã¹ä¿Åä źÃÒÃ´Õ §Ñ ¡ÅÒ Çä´ (¢¹éÑ µÍ¹àËÅÒ ¹¨éÕ Ð¶¡Ù àªÍ×è Á
â§¡¹Ñ ÃÐËÇÒ § AVR Studio áÅÐ WinAVR â´Â¼¾Ù ²Ñ ¹Ò¨ÐµÍ §Ãк¾Ø Ò¸¢Í§¢Í§äźÃÒÃ·Õ àèÕ ÃÂÕ ¡ãªã Ë¡ ºÑ
¡ºÑ AVR Studio Í¡Õ ·Í´Ë¹§èÖ )
µÇÑ ÍÂÒ §·èÕ 1-5
int result1 = 0; // µÇÑ á»Ã result2 à¡ºç ¤Ò ¢Í ÁÅ٠Ẻ int
int result2 = 0; // µÇÑ á»Ã result2 à¡ºç ¤Ò ¢Í ÁÅ٠Ẻ int
float result3 = 0.0; // µÇÑ á»Ã result3 à¡ºç ¤Ò ¢Í ÁÅ٠Ẻ float
float result4 = 0.0; // µÇÑ á»Ã result4 à¡ºç ¤Ò ¢Í ÁÅ٠Ẻ float
int sum(int a , int b)
{ // ¤¹× ¤Ò ¼ÅÅ¾Ñ ¸¨ Ò¡¡Òúǡ¡¹Ñ ÃÐËÇÒ § a áÅÐ b
return(a+b);
}
float mul(float x , float y)
{ // ¤¹× ¤Ò ¼ÅÅ¾Ñ ¸¨ Ò¡¡Òä³Ù ¡¹Ñ ÃÐËÇÒ § x áÅÐ y
return(x*y);
} // ¿§ ¡ª ¹Ñè ËÅ¡Ñ ¢Í§â»Ãá¡ÃÁ
void main(void)
{ // ãˤ Ò ¼ÅÅ¾Ñ ¸à ËÁÍ× ¹ 18+7=25
result1 = sum(18,7);
result2 = sum(12,4) + sum(4,9); // ãˤ Ò ¼ÅÅ¾Ñ ¸à ËÁÍ× ¹ (12+4)+(4+9)=29
result3 = mul(10.0,50.0) + mul(4.0,5.0);
// ãˤ Ò ¼ÅÅ¾Ñ ¸à ËÁÍ× ¹(10*50)+(4*5)=520
result4 = mul(12.4,2.6) + (float)sum(8,7);
// ãˤ Ò ¼ÅÅ¾Ñ ¸à ËÁÍ× ¹ (12.4*2.6)+(8*7)=47.24
}
1.3 äźÃÒÃÕ (Library)
äźÃÒÃÕ ¤Í× ä¿Å· ÃÕè ǺÃÇÁËÃÍ× ºÃè¿Ø § ¡ª ¹èÑ äÇã ¹µÇÑ à¾Íè× ¨´Ñ ËÁÇ´ËÁ¿Ù § ¡ª ¹èÑ ·ÁèÕ ÅÕ ¡Ñ ɳСÒÃ
㪧 Ò¹¡ÅÁØ ËÃÍ× »ÃÐàÀ·à´ÂÕ Ç¡¹Ñ ¶¡Ù ¨´Ñ ࡺç äÇã ¹·àèÕ ´ÂÕ Ç¡¹Ñ ÊÇ ¹ãËá ÅÇ Á¡Ñ ¨Ðµ§Ñé ªÍ×è ä¿Åä źÃÒÃ¹Õ ãéÕ Ë
ÊÍ´¤ÅÍ §¡ºÑ ¡ÅÁØ ¢Í§¿§ ¡ª ¹Ñè ËÃÍ× ¡ÒÃ㪧 Ò¹ áÅÐ§Ò ÂµÍ ¡ÒÃàÃÂÕ ¡ãªã ¹¤Ã§Ñé µÍ ä»
¿§ ¡ª ¹Ñè ¡ÅÁØ à´ÂÕ Ç¡¹Ñ ·ÁèÕ ¡Ñ 㪧 Ò¹ºÍ Âæ 㹡Òþ²Ñ ¹Òâ»Ãá¡ÃÁ¤ÇùÒí ÁÒÊÃÒ §à»¹ ä¿Åä źÃÒÃÕ
áÅШ´Ñ ࡺç äÇ àÁÍ×è µÍ §¡ÒÃ㪧 Ò¹¡àç ¾ÂÕ §»ÃСÒÈâ»Ãâµä·» (prototype) ¢Í§ªÍ×è äźÃÒÃäÕ ¿Å· ÊèÕ ÃÒ §äÇ
¡Í ¹Ë¹Ò ¹Õé à¾Í×è ¼¹Ç¡äźÃÒÃàÕ ËÅÒ ¹¹éÑ äÇÃ Ç Á·Òí §Ò¹¡ºÑ â»Ãá¡ÃÁ·¡èÕ Òí Å§Ñ ¾²Ñ ¹ÒÍÂÙ ËÅ§Ñ ¨Ò¡¹¹Ñé ¨Ð·Òí ãË
¼¾Ù ²Ñ ¹ÒÊÒÁÒöàÃÂÕ ¡ãª§ Ò¹¿§ ¡ª ¹Ñè ·ºÕè ÃÃ¨ÍØ ÂÀÙ ÒÂã¹ä¿Åä źÃÒÃ´Õ §Ñ ¡ÅÒ Çä´ (¢¹éÑ µÍ¹àËÅÒ ¹¨éÕ Ð¶¡Ù àªÍ×è Á
â§¡¹Ñ ÃÐËÇÒ § AVR Studio áÅÐ WinAVR â´Â¼¾Ù ²Ñ ¹Ò¨ÐµÍ §Ãк¾Ø Ò¸¢Í§¢Í§äźÃÒÃ·Õ àèÕ ÃÂÕ ¡ãªã Ë¡ ºÑ
¡ºÑ AVR Studio Í¡Õ ·Í´Ë¹§èÖ )