Page 11 - ipst-cmanual
P. 11
¤ÁÙ Í× ¡ÒÃà¢ÂÕ ¹â»Ãá¡ÃÁÀÒÉÒ C ÊÒí ËÃºÑ ãª§ Ò¹¡ÅÍ §ÊÁͧ¡Å IPST-MicroBOX l 11
µÇÑ ÍÂÒ §·Õè 1-4
ÊÃÒ §¿§ ¡ª ¹Ñè àŢ¡¡Òí Å§Ñ ã´æ à¾Íè× ËÒ¤Ò ¼ÅÅ¾Ñ ¸¢ ͧàŢ¡¡Òí Å§Ñ â´Âµ§Ñé ªÍ×è ¿§ ¡ª ¹Ñè ໹ power áÅÐãË
Á¡Õ ÒÃÃºÑ ¤Ò ¾ÒÃÒÁàÔ µÍà 2 µÇÑ â´ÂµÇÑ áá¤Í× ¤Ò °Ò¹ x áÅоÒÃÒÁàÔ µÍõ ÇÑ ·ÊèÕ Í§¤Í× ¤Ò ¡Òí Å§Ñ y
float power(float x,float y) // ¿§ ¡ª ¹Ñè power ·ÁÕè ¡Õ ÒÃÃºÑ áÅФ¹× ¤Ò ¢Í ÁÅÙ ª¹´Ô float
{ // ÃºÑ ¤Ò °Ò¹ x áÅÐ¤Ò ¡Òí Å§Ñ y ÁÒ¤Òí ¹Ç³ áÅÇ ¤¹× ¤Ò ¼ÅÅ¾Ñ ¸
return(exp(y*log(x)));
}
ÊÒÁÒöàÃÂÕ ¡ãª§ Ò¹ÀÒÂ㹿§ ¡ª ¹Ñè main ä´´ §Ñ ¹Õé
void main() // ¿§ ¡ª ¹èÑ ËÅ¡Ñ ¢Í§â»Ãá¡ÃÁ
{
lcd(“result = %f “,power(2.0,4.0)); // áÊ´§¤Ò ¼ÅÅ¾Ñ ¸ 24 ·âÕè Á´ÅÙ LCD
while(1);
}
¨Ò¡µÇÑ ÍÂÒ §à»¹ ¡ÒÃÊÃÒ §¿§ ¡ª ¹Ñè ªÍè× power à¾Í×è 㪤 Òí ¹Ç³ËÒ¤Ò ¢Í§àŢ¡¡Òí Å§Ñ ã´æ â´Âã¹â»Ãá¡ÃÁ
WinAVR 处 äÁÁ ÁÕ ¿Õ § ¡ª ¹èÑ ÊÇ ¹¹ÁÕé ÒãË áµã ¹µÇÑ ÍÂÒ §¹äÕé ´¹ Òí àʹÍÇ¸Ô ¡Õ ÒûÃÐÂ¡Ø µÊ ÃÒ §¨Ò¡¿§ ¡ª ¹èÑ ·ãÕè ª¤ Òí ¹Ç³·Ò§
¤³µÔ ÈÒʵ÷ èÕ WinAVR ÁÁÕ ÒãË «§èÖ ä´á ¡
¿§ ¡ª ¹Ñè exp (¨Ò¡äźÃÒÃÕ math.h ¢Í§Ãкº) ãªÊ Òí ËÃºÑ ËÒ¤Ò àÅ¢°Ò¹ e ¡¡Òí Å§Ñ ã´æ (e=2.71)
¿§ ¡ª ¹èÑ log (¨Ò¡äźÃÒÃÕ math.h ¢Í§Ãкº) ãªÊ Òí ËÃºÑ ËÒÅÍ¡ÒÃ·Ô ÁÖ °Ò¹ e ¢Í§µÇÑ àÅ¢ã´æ
¨Ò¡¤ÇÒÁ÷٠ҧ¤³µÔ ÈÒʵ÷ ÇèÕ Ò
(1) ln x y = y.ln x
(2) elnx = x
(3) ln x y = y ln x
´§Ñ ¹¹éÑ x y = eln x y = e y.ln x
áÅйÒí ÁÒà¢ÂÕ ¹à»¹ ¿§ ¡ª ¹èÑ ã¹¡ÒäÒí ¹Ç³¤Ò ¼ÅÅ¾Ñ ¸ä ´à »¹
exp(ylog(x)) «§Öè ¤¹× ¤Ò ¼ÅÅ¾Ñ ¸¨ Ò¡ x y
´§Ñ ¹¹Ñé ¼ÅÅ¾Ñ ¸¨ Ò¡â»Ãá¡ÃÁ¹àÕé ÁÍè× Ê§èÑ Ã¹Ñ ·âÕè Á´ÅÙ LCD ¨ÐáÊ´§¢Í ¤ÇÒÁ result = 16.000
«§Öè ¡¤ç Í× ¼ÅÅ¾Ñ ¸¢ ͧ 24 áµ¢ Í ¤ÇÃÃÐÇ§Ñ ã¹¡ÒÃàÃÂÕ ¡ãª¿ § ¡ª ¹èÑ ¹¡éÕ ¤ç Í× ¡ÒÃ»Í ¹¤Ò ¾ÒÃÒÁàÔ µÍâ ͧ¤Ò °Ò¹áÅÐ¤Ò ¡Òí ŧÑ
¨ÐµÍ §»Í ¹à»¹ ¤Ò ¨Òí ¹Ç¹¨Ã§Ô Ẻ float ·§éÑ ¤Ù ´§Ñ ¹¹éÑ ã¹â»Ãá¡ÃÁ¨§Ö »Í ¹¤Ò ໹ 2.0 áÅÐ 4.0 µÒÁÅÒí ´ºÑ
¢Í ¤Ç÷ÃÒº : ËÒ¡µÍ §¡Ò÷´ÊͺµÇÑ ÍÂÒ §¹¨éÕ ÐµÍ §µ´Ô µ§éÑ á¼§Ç§¨ÃáÊ´§¼ÅáÅоÍõ à͹¡»ÃÐʧ¤
(Display-io) à¢Ò ¡ºÑ ἧǧ¨ÃËÅ¡Ñ MicroBOX áÅÐἧǧ¨ÃáÊ´§¼ÅáÅоÍõ à͹¡»ÃÐʧ¤ (Display-io) ¹¨éÕ Ð
µÍ §¨´Ñ ËÒà¾ÁèÔ àµÁÔ à¹Í×è §¨Ò¡äÁä ´Ã ÇÁÍÂãÙ ¹ª´Ø ¡ÅÍ §ÊÁͧ¡Å IPST-MicroBOX ã¹Ã¹Ø àÃÁÔè µ¹ áÅÐÃ¹Ø Áҵðҹ
µÇÑ ÍÂÒ §·Õè 1-4
ÊÃÒ §¿§ ¡ª ¹Ñè àŢ¡¡Òí Å§Ñ ã´æ à¾Íè× ËÒ¤Ò ¼ÅÅ¾Ñ ¸¢ ͧàŢ¡¡Òí Å§Ñ â´Âµ§Ñé ªÍ×è ¿§ ¡ª ¹Ñè ໹ power áÅÐãË
Á¡Õ ÒÃÃºÑ ¤Ò ¾ÒÃÒÁàÔ µÍà 2 µÇÑ â´ÂµÇÑ áá¤Í× ¤Ò °Ò¹ x áÅоÒÃÒÁàÔ µÍõ ÇÑ ·ÊèÕ Í§¤Í× ¤Ò ¡Òí Å§Ñ y
float power(float x,float y) // ¿§ ¡ª ¹Ñè power ·ÁÕè ¡Õ ÒÃÃºÑ áÅФ¹× ¤Ò ¢Í ÁÅÙ ª¹´Ô float
{ // ÃºÑ ¤Ò °Ò¹ x áÅÐ¤Ò ¡Òí Å§Ñ y ÁÒ¤Òí ¹Ç³ áÅÇ ¤¹× ¤Ò ¼ÅÅ¾Ñ ¸
return(exp(y*log(x)));
}
ÊÒÁÒöàÃÂÕ ¡ãª§ Ò¹ÀÒÂ㹿§ ¡ª ¹Ñè main ä´´ §Ñ ¹Õé
void main() // ¿§ ¡ª ¹èÑ ËÅ¡Ñ ¢Í§â»Ãá¡ÃÁ
{
lcd(“result = %f “,power(2.0,4.0)); // áÊ´§¤Ò ¼ÅÅ¾Ñ ¸ 24 ·âÕè Á´ÅÙ LCD
while(1);
}
¨Ò¡µÇÑ ÍÂÒ §à»¹ ¡ÒÃÊÃÒ §¿§ ¡ª ¹Ñè ªÍè× power à¾Í×è 㪤 Òí ¹Ç³ËÒ¤Ò ¢Í§àŢ¡¡Òí Å§Ñ ã´æ â´Âã¹â»Ãá¡ÃÁ
WinAVR 处 äÁÁ ÁÕ ¿Õ § ¡ª ¹èÑ ÊÇ ¹¹ÁÕé ÒãË áµã ¹µÇÑ ÍÂÒ §¹äÕé ´¹ Òí àʹÍÇ¸Ô ¡Õ ÒûÃÐÂ¡Ø µÊ ÃÒ §¨Ò¡¿§ ¡ª ¹èÑ ·ãÕè ª¤ Òí ¹Ç³·Ò§
¤³µÔ ÈÒʵ÷ èÕ WinAVR ÁÁÕ ÒãË «§èÖ ä´á ¡
¿§ ¡ª ¹Ñè exp (¨Ò¡äźÃÒÃÕ math.h ¢Í§Ãкº) ãªÊ Òí ËÃºÑ ËÒ¤Ò àÅ¢°Ò¹ e ¡¡Òí Å§Ñ ã´æ (e=2.71)
¿§ ¡ª ¹èÑ log (¨Ò¡äźÃÒÃÕ math.h ¢Í§Ãкº) ãªÊ Òí ËÃºÑ ËÒÅÍ¡ÒÃ·Ô ÁÖ °Ò¹ e ¢Í§µÇÑ àÅ¢ã´æ
¨Ò¡¤ÇÒÁ÷٠ҧ¤³µÔ ÈÒʵ÷ ÇèÕ Ò
(1) ln x y = y.ln x
(2) elnx = x
(3) ln x y = y ln x
´§Ñ ¹¹éÑ x y = eln x y = e y.ln x
áÅйÒí ÁÒà¢ÂÕ ¹à»¹ ¿§ ¡ª ¹èÑ ã¹¡ÒäÒí ¹Ç³¤Ò ¼ÅÅ¾Ñ ¸ä ´à »¹
exp(ylog(x)) «§Öè ¤¹× ¤Ò ¼ÅÅ¾Ñ ¸¨ Ò¡ x y
´§Ñ ¹¹Ñé ¼ÅÅ¾Ñ ¸¨ Ò¡â»Ãá¡ÃÁ¹àÕé ÁÍè× Ê§èÑ Ã¹Ñ ·âÕè Á´ÅÙ LCD ¨ÐáÊ´§¢Í ¤ÇÒÁ result = 16.000
«§Öè ¡¤ç Í× ¼ÅÅ¾Ñ ¸¢ ͧ 24 áµ¢ Í ¤ÇÃÃÐÇ§Ñ ã¹¡ÒÃàÃÂÕ ¡ãª¿ § ¡ª ¹èÑ ¹¡éÕ ¤ç Í× ¡ÒÃ»Í ¹¤Ò ¾ÒÃÒÁàÔ µÍâ ͧ¤Ò °Ò¹áÅÐ¤Ò ¡Òí ŧÑ
¨ÐµÍ §»Í ¹à»¹ ¤Ò ¨Òí ¹Ç¹¨Ã§Ô Ẻ float ·§éÑ ¤Ù ´§Ñ ¹¹éÑ ã¹â»Ãá¡ÃÁ¨§Ö »Í ¹¤Ò ໹ 2.0 áÅÐ 4.0 µÒÁÅÒí ´ºÑ
¢Í ¤Ç÷ÃÒº : ËÒ¡µÍ §¡Ò÷´ÊͺµÇÑ ÍÂÒ §¹¨éÕ ÐµÍ §µ´Ô µ§éÑ á¼§Ç§¨ÃáÊ´§¼ÅáÅоÍõ à͹¡»ÃÐʧ¤
(Display-io) à¢Ò ¡ºÑ ἧǧ¨ÃËÅ¡Ñ MicroBOX áÅÐἧǧ¨ÃáÊ´§¼ÅáÅоÍõ à͹¡»ÃÐʧ¤ (Display-io) ¹¨éÕ Ð
µÍ §¨´Ñ ËÒà¾ÁèÔ àµÁÔ à¹Í×è §¨Ò¡äÁä ´Ã ÇÁÍÂãÙ ¹ª´Ø ¡ÅÍ §ÊÁͧ¡Å IPST-MicroBOX ã¹Ã¹Ø àÃÁÔè µ¹ áÅÐÃ¹Ø Áҵðҹ