اطلاعیه

Collapse
No announcement yet.

چند سوال ساده در مورد UART و تابع

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

    چند سوال ساده در مورد UART و تابع

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

    اما سوال در مورد تابع، این امکان وجود داره که یه رشته ی مثلا حدود 60 کاراکتری رو به یه تابع بفرستم به عنوان ورودی؟

    سپاس از همفکری شما...
    همیشه بزرگوار تر از آن باشید که برنجید
    و نجیب تر از آن باشید که برنجانید!

    #2
    پاسخ : چند سوال ساده در مورد UART و تابع

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

    نوشته اصلی توسط جعفری
    اما سوال در مورد تابع، این امکان وجود داره که یه رشته ی مثلا حدود 60 کاراکتری رو به یه تابع بفرستم به عنوان ورودی؟
    به احتمال زیاد شدنی هست ...
    امتحان نکردم ولی حدس میزنم شدنیه ...
    ولی باید دقت کنید که حافظه استک را به اندازه مورد نیاز در نظر بگیرید ...

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

    دیدگاه


      #3
      پاسخ : چند سوال ساده در مورد UART و تابع

      سپاس فراوان از پاسخ شما...
      یه سوال دیگه: میشه یک تابع رو از درون یه تابع دیگه فراخوانی کرد؟ مثلا دو تابع Fun 1 و Fun 2 داشته باشیم، تابع اول رو درون تابع دوم فراخوانی کنیم؟
      همیشه بزرگوار تر از آن باشید که برنجید
      و نجیب تر از آن باشید که برنجانید!

      دیدگاه


        #4
        پاسخ : چند سوال ساده در مورد UART و تابع

        نوشته اصلی توسط جعفری
        سپاس فراوان از پاسخ شما...
        یه سوال دیگه: میشه یک تابع رو از درون یه تابع دیگه فراخوانی کرد؟ مثلا دو تابع Fun 1 و Fun 2 داشته باشیم، تابع اول رو درون تابع دوم فراخوانی کنیم؟
        اره میشه توی یه تابع یه تابع دیگه رو فراخوانی کرد فقط باید تابع دوم بالای تابع اول تعریف شده باشه.

        دیدگاه


          #5
          پاسخ : چند سوال ساده در مورد UART و تابع

          نوشته اصلی توسط جعفری
          سپاس فراوان از پاسخ شما...
          یه سوال دیگه: میشه یک تابع رو از درون یه تابع دیگه فراخوانی کرد؟ مثلا دو تابع Fun 1 و Fun 2 داشته باشیم، تابع اول رو درون تابع دوم فراخوانی کنیم؟
          به به .... عجب سوالات خوبی ... :applause:
          بله میشه ...
          تعریف کردن تابع به صورت کلی دو جا میتوان تعریف کرد
          1. تعریف کردن پیش از برنامه اصلی
          کد:
          #include <mega8.h>
          #include <delay.h>
          
          void fun1(void)
          {
            //.........
            //.........
            //.........
          }
          void fun2(void)
          {
            fun1();
            //.........
            //.........
            //.........
          }
          
          void main(void)
          {
          
          }
          2. تعریف کردن پس از برنامه اصلی
          کد:
          #include <mega8.h>
          #include <delay.h>
          
          void fun1(void)
          void fun2(void)
          
          
          void main(void)
          {
          
          }
          void fun1(void)
          {
            //.........
            //.........
            //.........
          }
          void fun2(void)
          {
            fun1();
            //.........
            //.........
            //.........
          }
          در نوع اول پیش از تابع اصلی برنامه توابع تعریف میشوند ... باید توجه شود که اگر بخواهیم یک تابع را در یک تابع دیگر تعریف کنید باید ابتدا آن تابع را قبلا تعریف کرده باشید ...
          در نوع دوم همانطور که مشاهده میکنید توابع ابتدا تعریف کلی میشود و پس از تابع اصلی تعریف میشود ...
          در این نوع اگر توابع را ابتدا تعریف کلی کرده باشید دیگر فرقی نمیکند که کدام ابتدا تعریف کرده باشید ...
          در کل اگر از نوع دوم تعریف کنید خیلی بهتر است ...

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

          دیدگاه


            #6
            پاسخ : چند سوال ساده در مورد UART و تابع

            نوشته اصلی توسط Saman.Asadi
            به به .... عجب سوالات خوبی ... :applause:
            بله میشه ...
            تعریف کردن تابع به صورت کلی دو جا میتوان تعریف کرد
            1. تعریف کردن پیش از برنامه اصلی
            کد:
            #include <mega8.h>
            #include <delay.h>
            
            void fun1(void)
            {
              //.........
              //.........
              //.........
            }
            void fun2(void)
            {
              fun1();
              //.........
              //.........
              //.........
            }
            
            void main(void)
            {
            
            }
            2. تعریف کردن پس از برنامه اصلی
            کد:
            #include <mega8.h>
            #include <delay.h>
            
            void fun1(void)
            void fun2(void)
            
            
            void main(void)
            {
            
            }
            void fun1(void)
            {
              //.........
              //.........
              //.........
            }
            void fun2(void)
            {
              fun1();
              //.........
              //.........
              //.........
            }
            در نوع اول پیش از تابع اصلی برنامه توابع تعریف میشوند ... باید توجه شود که اگر بخواهیم یک تابع را در یک تابع دیگر تعریف کنید باید ابتدا آن تابع را قبلا تعریف کرده باشید ...
            در نوع دوم همانطور که مشاهده میکنید توابع ابتدا تعریف کلی میشود و پس از تابع اصلی تعریف میشود ...
            در این نوع اگر توابع را ابتدا تعریف کلی کرده باشید دیگر فرقی نمیکند که کدام ابتدا تعریف کرده باشید ...
            در کل اگر از نوع دوم تعریف کنید خیلی بهتر است ...

            موفق باشید
            توضیح کامل و جامعی بود .دستتون درد نکنه.

            دیدگاه


              #7
              پاسخ : چند سوال ساده در مورد UART و تابع

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

              دیدگاه

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