اطلاعیه

Collapse
No announcement yet.

سوال شرط در برنامه نویسی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال شرط در برنامه نویسی

    سلام
    من یک برنامه دارم. با میکرو 1768 . می خواهم هروقت متغیر من به کمتراز 20 رسید ، یکی از پایه ی p2.12 روشن شود ؛ بااین روشن شدن ، یک دستگاه متصل به رله روشن می شود. بعد متغیر بالامیرود . و وقتی که به20رسید ، پایه p2.12 خاموش شود.
    میشه بگید باید شرط ر ا چطور برای 1768 بنویسم . ؟
    چطوری پایه 2.12 یا کلا پورت 2 را خروجی کنم ؟

    من خودم حدسم این کده : مشکل داره یا نه ؟
    کد:
    	if(temperature<20){
        LPC_GPIO2->FIOPIN |= (1<<12);     // p2.12 is on
         }
      else if(temperature>20){
         LPC_GPIO2->FIOPIN |= (0<<12);     // p2.12 is off
          }
    امضاندارم. ميشه انگشت بزنم...؟

    www.AsanService.ir

    #2
    پاسخ : سوال شرط در برنامه نویسی

    سلام
    بنظرم درست باشه
    اگه میخوای کل پین ها رو روشن یا خاموش کنی ازین هم میتونی استفاده کنی
    کد:
     LPC_GPIO2->FIOPIN = 0xffffffff; روشن
    
    LPC_GPIO2->FIOPIN = 0x00000000; خاموش

    امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

    دیدگاه


      #3
      پاسخ : سوال شرط در برنامه نویسی

      با چی تست کنم که درست هست یا نه ؟ من دیود زدم به این پایه روشن نشد . روش تستم درست بوده ؟
      امضاندارم. ميشه انگشت بزنم...؟

      www.AsanService.ir

      دیدگاه


        #4
        پاسخ : سوال شرط در برنامه نویسی

        سلام
        خب باید ببینی کد رو درست نوشتی مثلا پورت مورد نظر رو خروجی قرار دادی؟ مثل کد زیر
        کد:
         LPC_PINCON->PINSEL2 = 0x000000;
        
        LPC_GPIO2->FIODIR = 0xffffffff;
        خود کیل سیمیلاتور داره باهاش تست کن درست بود رو مدار تست کن
        امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

        دیدگاه


          #5
          پاسخ : سوال شرط در برنامه نویسی

          اگر بخوام فقط یکی از پین ها رو خروجی کنم دستورش چیه؟
          کد بالا جواب نداد
          امضاندارم. ميشه انگشت بزنم...؟

          www.AsanService.ir

          دیدگاه


            #6
            پاسخ : سوال شرط در برنامه نویسی

            باسلام
            کدهای ساده و آماده ای مثل LED BLINK میتونه به شما کمک کنه- اگر بگردید احتمالا گیر بیاد
            رجیستر FIOPIN برای خواندن مقدار دیجیتال روی ورودی هاست نه برای نوشتن
            برای نوشتن صفر و یک روی خروجی باید از رجیسترهای FIOSET و FIOCLR استفاده شود
            فقط قبل از استفاده از این دستورات باید دو رجیستر زیر هم تنظیم شوند
            PINSEL که به صورت پیش فرض به GPIO اختصاص داره و اگر از اون پایه استفاده دیگری نکردید نیاز به تغییر نداره
            FIODIR که باید با نوشتن یک در بیت مورد نظر، آن پایه خروجی تعریف شود
            در ضمن سیمولاتور کیل هم چیز خوبیه و بخش های مختلف LPC1768 رو بخوبی شبیه سازی میکنه

            دیدگاه


              #7
              پاسخ : سوال شرط در برنامه نویسی

              نوشته اصلی توسط smf121
              باسلام
              کدهای ساده و آماده ای مثل LED BLINK میتونه به شما کمک کنه- اگر بگردید احتمالا گیر بیاد
              رجیستر FIOPIN برای خواندن مقدار دیجیتال روی ورودی هاست نه برای نوشتن
              برای نوشتن صفر و یک روی خروجی باید از رجیسترهای FIOSET و FIOCLR استفاده شود
              فقط قبل از استفاده از این دستورات باید دو رجیستر زیر هم تنظیم شوند
              PINSEL که به صورت پیش فرض به GPIO اختصاص داره و اگر از اون پایه استفاده دیگری نکردید نیاز به تغییر نداره
              FIODIR که باید با نوشتن یک در بیت مورد نظر، آن پایه خروجی تعریف شود
              در ضمن سیمولاتور کیل هم چیز خوبیه و بخش های مختلف LPC1768 رو بخوبی شبیه سازی میکنه
              ُسلام مهندس
              من از روی همین مثال که گفتید، این قسمت رو نوشتم. ولی نتیجه نداد.
              کل کد پروژه رو قرار دادم . مشکل بعداز خط چین هستش. موضوع پروژه هم کنترل دما به هیتر هست . اگر میشه این قسمت رو بررسی کنید .
              کد:
              
              
              امضاندارم. ميشه انگشت بزنم...؟

              www.AsanService.ir

              دیدگاه


                #8
                پاسخ : سوال شرط در برنامه نویسی

                اول از همه من حرفم رو اصلاح کنم- رجیستر FIOPIN برای نوشتن در خروجی هم میتونه استفاده بشه
                حواسم نبود- عذر میخوام
                برای نوشتن در FIOSET و FIOCLR دیگه or نمیخواد انجام بدید- توش یک بنویسید کافیه و به بقیه کاری نداره
                else if نمیخواد و همون else کافیه
                والا قسمت قبل خط چین رو با دقت چک نکردم- از کجا مطمئنید که درسته؟؟
                من فکر میکنم قبل خط چین ایراد داره
                تابع ADC_read رو بررسی کنید که چیه؟ خروجیش در چه محدوده ایه؟ ورودی vref رو چکارش داره؟
                بعد از خط چین بنظرم موردی نداره- اگر فکر میکنید خرابه یک کاری رو انجام بدید
                بعد خط چین بیاید بنویسید temprature=10 و برنامه رو اجرا کنید
                و یکبار دیگه بنویسید temprature=50 و برنامه رو اجرا کنید
                ببینید چی میشه؟

                دیدگاه


                  #9
                  پاسخ : سوال شرط در برنامه نویسی

                  سلام
                  شما کد زیر رو قبل خروجی کردن پورت نذاشتی
                  کد:
                  LPC_PINCON->PINSEL2 = 0x000000;
                  امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                  دیدگاه


                    #10
                    پاسخ : سوال شرط در برنامه نویسی

                    یه برنامه میذارم اینو امتحان کن ببین جواب میده یه چشمک زن سادست
                    اگه جواب داد نمیخواد فعلا adc رو بخونی کد سگمنت رو به پورت gpio2 بده ببین جواب میده ؟اگه جواب داد بقیه برنامه رو بهش اضافه کن
                    کد:
                    #include <lpc17xx.h>  
                    #include "delay.h" 
                    
                    void main() 
                    {
                      SystemInit(); 
                    پیکره بندی پورت و قردادن در حالت خروجی          
                      LPC_PINCON->PINSEL2 = 0x000000; 
                      LPC_GPIO2->FIODIR = 0xffffffff; 
                    
                     while(1)
                      {
                    
                      روشن کردن کل پین ها
                        LPC_GPIO2->FIOPIN = 0xffffffff;    
                        DELAY_sec(1);
                    
                    
                     خاموش کردن کل پین ها
                        LPC_GPIO2->FIOPIN = 0x00000000;    
                        DELAY_sec(1);
                      }
                    }
                    امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                    دیدگاه


                      #11
                      پاسخ : سوال شرط در برنامه نویسی

                      نوشته اصلی توسط mahdi8866
                      سلام
                      شما کد زیر رو قبل خروجی کردن پورت نذاشتی
                      کد:
                      LPC_PINCON->PINSEL2 = 0x000000;
                      سلام .
                      منظورتون اینه که این شکلی بشه :
                      کد:
                      
                      
                      امضاندارم. ميشه انگشت بزنم...؟

                      www.AsanService.ir

                      دیدگاه


                        #12
                        پاسخ : سوال شرط در برنامه نویسی

                        قبل این کد بنویسی
                        کد:
                        LPC_GPIO2->FIODIR=0x0000FFFF;
                        امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                        دیدگاه


                          #13
                          پاسخ : سوال شرط در برنامه نویسی

                          اول باید پین رو کانکت کنی خط اول
                          کد:
                          LPC_PINCON->PINSEL2 = 0x000000;
                          بعد خروجی
                          کد:
                          LPC_GPIO2->FIODIR = 0xffffffff;
                          امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                          دیدگاه


                            #14
                            پاسخ : سوال شرط در برنامه نویسی

                            نوشته اصلی توسط mahdi8866
                            اول باید پین رو کانکت کنی خط اول
                            کد:
                            LPC_PINCON->PINSEL2 = 0x000000;
                            بعد خروجی
                            کد:
                            LPC_GPIO2->FIODIR = 0xffffffff;
                            ممنون.
                            من تست کردم ولی جواب نگرفتم . میشه خودتون الان این شرط را برای یک پین از پورت صفر ( یکی غیراز 2 چون سون سگمنت به پورت 2 وصله)بنویسید ...
                            امضاندارم. ميشه انگشت بزنم...؟

                            www.AsanService.ir

                            دیدگاه


                              #15
                              پاسخ : سوال شرط در برنامه نویسی

                              سلام کد چشمک زن بالا رو تغییر دادم اینو سریع تست کن چون دستورش رو تغییر دادم من 2 سال هست چون کدنویسی با arm رو بخاطر یه مشکلی کنار گذاشتم یخورده یادم رفته
                              کد:
                              #include <lpc17xx.h>  
                              #include "delay.h"
                              
                              void main()
                              {
                                SystemInit();
                              پیکره بندی پورت و قردادن در حالت خروجی          
                               LPC_GPIO0->FIODIR |= 1 << 20;
                              LPC_GPIO0->FIOCLR = 1 << 20
                               while(1)
                                {
                              
                               
                               روشن کردن پین 20
                              LPC_GPIO0->FIOSET = 1 << 20; 
                               
                                  DELAY_sec(1);
                              
                              
                               خاموش کردن پین20
                                LPC_GPIO0->FIOCLR = 1 << 20;
                                  DELAY_sec(1);
                                }
                              }
                              امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                              دیدگاه

                              لطفا صبر کنید...
                              X