اطلاعیه

Collapse
No announcement yet.

استفاده از دستور int + تبدیل byte از 0 تا 256 به 0 تا 3

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

    استفاده از دستور int + تبدیل byte از 0 تا 256 به 0 تا 3

    سلام به همه اعضای سایت
    یه سوال دارم عجیباااا :icon_razz:
    میشه از پایه int طوری استفاده کرد که با هر بار زدن یک دستورو اجرا کنه یعنی هریار که میزنم به یک قسمت برنامه پرش کنه؟؟؟؟؟ :-?
    خوب دوستان مشکل بالا حل شد اما الان میخوام یهمتغیر داشته باشم که از صفر شروع بشه و با هربار زدن میکروسوییچ یک عدد به اون اضافه شه و وقتی که به سه یا چهار رسید عین بایت که زمانی که به 256 میرسه سرریز میشه و دوباره میاد روی صفر
    چطوری این متغیر رو بدست بیارم؟؟؟

    #2
    پاسخ : استفاده از دستور int

    نوشته اصلی توسط zoheyr79
    سلام به همه اعضای سایت
    یه سوال دارم عجیباااا :icon_razz:
    میشه از پایه int طوری استفاده کرد که با هر بار زدن یک دستورو اجرا کنه یعنی هریار که میزنم به یک قسمت برنامه پرش کنه؟؟؟؟؟ :-?
    درود
    بله ... چرا که نشه ؟؟
    پرش کنه ؟؟ منظورتون از دستورات goto است ؟؟
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    دیدگاه


      #3
      پاسخ : استفاده از دستور int

      نوشته اصلی توسط سامان اسدی
      درود
      بله ... چرا که نشه ؟؟
      پرش کنه ؟؟ منظورتون از دستورات goto است ؟؟
      سللام آقا سامان
      بله پرش.برای همون rgb میخوام
      میخوام با یه بار زدن بره تو یه حلقه و برای بار دوم که زدم برهتو حلقه دیگه و دوباره اگه زدم باز بره حلق اولو ....

      دیدگاه


        #4
        پاسخ : استفاده از دستور int

        با سلام
        ببینید با هر بار اتفاق افتادن وقفه میکرو میره و روتین اون رو اجرا می کنه، حالا شما بیاین و در برنامه فلگ تعریف کنین، و بر اساس مقدار فعلی اون مقدار بعدیشو مشخص کنید و تو while با چک کردن مقدار فلگ حلقه مورد نظرتون رو اجرا کنید. با استفاده از فلگ های کنترلی راحت میشه انجام داد.
        The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

        دیدگاه


          #5
          پاسخ : استفاده از دستور int

          نوشته اصلی توسط hessam2013
          با سلام
          ببینید با هر بار اتفاق افتادن وقفه میکرو میره و روتین اون رو اجرا می کنه، حالا شما بیاین و در برنامه فلگ تعریف کنین، و بر اساس مقدار فعلی اون مقدار بعدیشو مشخص کنید و تو while با چک کردن مقدار فلگ حلقه مورد نظرتون رو اجرا کنید. با استفاده از فلگ های کنترلی راحت میشه انجام داد.
          :eek:
          من که نفهمیدم چی گفتین :-"
          اگه با بیسیک کار میکنین لطفا بهم نشون بدین قضیه چیه... :-bd

          دیدگاه


            #6
            پاسخ : استفاده از دستور int

            به زبون کاری ندارم، الگوریتم رو میگم چون من سی کارم
            شما یک حلقه داری که برنامت اونجا داره میچرخه، ما اینجا می خوایم شروطی رو چک و برنامه مون رو طبق اونا اجرا کنیم.حالا به صورت گلوبال بیا دو تا پرچم (فلگ) تعریف کن، یکی برای تعیین مرحله، و دیگری هم اگه لازمه برای شرط ورود، اولش هر دو مثلا صفر هستن و هیچی تو حلقه که بالا گفتم شرط ها چک میشن و مثلا وارد زیر حلقه ها که مد نظر شماست نمیشیم، حالا وقفه میاد تو وقفه میام میگیم خب الان فلگ مرحله صفره پس یکش بکن، و شرط ورود رو هم یک کن، بعد از وقفه میاد بیرون دوباره میره تو حلقه حالا باز شرط چک می کنه و ایندفعه حلقه اول اجرا میشه، برای اینکه یکبار بیشتر اجرا نشه، فلگ شرط ورود رو صفر می کنیم، اگه مهم نیست که هیچی، حالا دفعه دوم وقفه بیاد میگی دوباره شرط ورود یک فلگ مرحله هم یک بوده بکنش دو، و بعد دوباره و همین طور الا آخر ، امیدوارم خوب توضیح داده باشم.
            The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

            دیدگاه


              #7
              پاسخ : استفاده از دستور int

              چرا با وقفه میخوای کار کنی ؟؟
              توی حلقه اصلی برنامه بیا کلید ها رو بخون بعد اون کاری که میخوای انجام بدید رو اعمال کنید ...
              زیاد سخت نیست ...
              برنامه هم که براتون گذاشتم ... فقط کافیه یکسری تنظیمات کلید به برنامه اضاف کنید ...

              پیروز باشید
              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
              معرفی نرم افزار Codewizard PWM
              با من بیشتر آشنا شوید

              دیدگاه


                #8
                پاسخ : استفاده از دستور int

                نوشته اصلی توسط سامان اسدی
                چرا با وقفه میخوای کار کنی ؟؟
                توی حلقه اصلی برنامه بیا کلید ها رو بخون بعد اون کاری که میخوای انجام بدید رو اعمال کنید ...
                زیاد سخت نیست ...
                برنامه هم که براتون گذاشتم ... فقط کافیه یکسری تنظیمات کلید به برنامه اضاف کنید ...

                پیروز باشید
                حالا اینکه اگه از وقفه استفاده کنم هم زیاد مهم نیست (میخواستم اینو هم یاد بگیرم و یه جایی از این دستور استفاده کنم)الان مشکل کلیم اینه که چطور با یکبار زدن بره تو یه حلقه و با دوباره زدن بره تو حلقه دیگه...
                اگه کلیدو به عنوان متغیر تعریف کنم میشه؟؟؟مثلا یه متغیر از نوع بیت بزارم اگه 0 بود بره تو یه حلقه اگه یک بود بره تو یه حلقه دیگه

                دیدگاه


                  #9
                  پاسخ : استفاده از دستور int

                  نوشته اصلی توسط zoheyr79
                  میخوام با یه بار زدن بره تو یه حلقه و برای بار دوم که زدم برهتو حلقه دیگه و دوباره اگه زدم باز بره حلق اولو ....
                  سلام

                  شما داخل اینتراپت تون یک switch case()r بذارین .
                  حالا هر وقت که int را زدین اتوماتیک وار داخل یکی از case ها رفته و برنامه های دلخواه شما را اجرا خواهد کرد.
                  کد:
                   c=c+1;   
                    switch(c)
                    {
                     
                     case 1:
                       {
                       }
                   case 2:
                       {
                       }
                    .
                    .
                    .
                   case n:
                       {
                       }
                    }
                  - تو همانی که می اندیشی، هرگاه به این اندیشیدی که تو یک عقابی؟ پس به دنبال رویاهایت برو و به یاوه های مرغ و خروس های اطرافت فکر نکن.

                  - یک تصمیم می تواند دریچه های زندگی ما را به روی اندوه یا شادی ، سعادت یا تنگدستی ، مصاحبت یا تنهایی ، و عمری طولانی یا مرگی زودرس باز کند

                  دیدگاه


                    #10
                    پاسخ : استفاده از دستور int

                    نوشته اصلی توسط jim gary
                    سلام

                    شما داخل اینتراپت تون یک switch case()r بذارین .
                    حالا هر وقت که int را زدین اتوماتیک وار داخل یکی از case ها رفته و برنامه های دلخواه شما را اجرا خواهد کرد.
                    سلام ممنون ولی من زبونم بیسیکه و همچنین مبتدی هستم(اینتراپت چیه؟؟ )

                    دیدگاه


                      #11
                      پاسخ : استفاده از دستور int

                      فرض کنید خونه نشستید و فردا امتحان دارین، کسی هم خونه نیست زنگ هم اختراع نشده صدای در هم نمیاد، بعد یه پیتزا سفارش میدین، پیک هر وقت بیاد 30 ثانیه بیشتر صبر نمی کنه و میره، خب، چطور میشه که پیتزا رو از دست ندین، باید که هر مثلا 20 ثانیه برین دم در، خب الان میشه درس خوند؟؟!!
                      راه بهتر استفاده از زنگه، هر وقت پیتزا بیاد زنگ میزنه شما هم میری دم در
                      حالا اینتراپت هم همینه، فرض کن می خوای ببینی فلان پایه یک شده یا نه(در نقش پیتزا) یا CPU هی باید بره وضعیت فلان پایه رو بخونه، که خب مثل اول نمیتونه به کارای دیگش برسه و برنامه کند میشه و در حالاتی که برنامه سنگینه اصلا اجرا نمیشه، یا اینکه از قابلیت اینتراپت استفاده کنین. اینتراپت یا وقفه میان و بعد از اتفاق افتادن موارد خاصی به cpu اون اتفاق رو اعلام می کنن، حالا cpu بعد از اومدن هر وقفه میره به تابع خاصی که شمال براش تعریف کردی و اون کار رو انجام میده.
                      شما داخل اینتراپت تون یک switch case()r بذارین .
                      حالا هر وقت که int را زدین اتوماتیک وار داخل یکی از case ها رفته و برنامه های دلخواه شما را اجرا خواهد کرد.
                      این کار توصیه نمیشه، اگه برنامه سبکه اشکال نداره اما همیشه یادتون باشه روتین اینتراپت باید در حد امکان سبک باشه و پردازش ها در روال اصلیه برنامه اجرا شه نه در وقفه.
                      The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

                      دیدگاه


                        #12
                        پاسخ : استفاده از دستور int

                        نوشته اصلی توسط zoheyr79
                        سلام ممنون ولی من زبونم بیسیکه و همچنین مبتدی هستم(اینتراپت چیه؟؟ )
                        همون INT هست که میگید ...
                        Interrupt یعنی وقفه ...
                        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                        معرفی نرم افزار Codewizard PWM
                        با من بیشتر آشنا شوید

                        دیدگاه


                          #13
                          پاسخ : استفاده از دستور int

                          نوشته اصلی توسط سامان اسدی
                          همون INT هست که میگید ...
                          Interrupt یعنی وقفه ...
                          ممنون بابت راهنمایی

                          رض کنید خونه نشستید و فردا امتحان دارین، کسی هم خونه نیست زنگ هم اختراع نشده صدای در هم نمیاد، بعد یه پیتزا سفارش میدین، پیک هر وقت بیاد 30 ثانیه بیشتر صبر نمی کنه و میره، خب، چطور میشه که پیتزا رو از دست ندین، باید که هر مثلا 20 ثانیه برین دم در، خب الان میشه درس خوند؟؟!!
                          راه بهتر استفاده از زنگه، هر وقت پیتزا بیاد زنگ میزنه شما هم میری دم در
                          حالا اینتراپت هم همینه، فرض کن می خوای ببینی فلان پایه یک شده یا نه(در نقش پیتزا) یا CPU هی باید بره وضعیت فلان پایه رو بخونه، که خب مثل اول نمیتونه به کارای دیگش برسه و برنامه کند میشه و در حالاتی که برنامه سنگینه اصلا اجرا نمیشه، یا اینکه از قابلیت اینتراپت استفاده کنین. اینتراپت یا وقفه میان و بعد از اتفاق افتادن موارد خاصی به cpu اون اتفاق رو اعلام می کنن، حالا cpu بعد از اومدن هر وقفه میره به تابع خاصی که شمال براش تعریف کردی و اون کار رو انجام میده.
                          منظورتون اینه که این دستوره int باعث میشه برنامه کند اجرا شه؟؟؟
                          اگه بجای این دستور int زیر دستور شروع حلقه یه شرط بزارم میشه؟؟؟

                          دیدگاه


                            #14
                            پاسخ : استفاده از دستور int

                            اگر از اینتراپت بخوای استفاده کنی حتما باید مدار دیبانس گذاشته بشه تا برنامه بهتر کار کنه ...
                            مدارش به صورت زیر هست ...
                            روی Falling بگذارش
                            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                            معرفی نرم افزار Codewizard PWM
                            با من بیشتر آشنا شوید

                            دیدگاه


                              #15
                              پاسخ : استفاده از دستور int

                              نوشته اصلی توسط سامان اسدی
                              اگر از اینتراپت بخوای استفاده کنی حتما باید مدار دیبانس گذاشته بشه تا برنامه بهتر کار کنه ...
                              مدارش به صورت زیر هست ...
                              روی Falling بگذارش
                              باشه ممنون
                              اما نمیدونم چطور byte رو به 0 و 1 تبدیل کنم از bit هم نمیشه استفاده کرد

                              دیدگاه

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