اطلاعیه

Collapse
No announcement yet.

مقایسه ارایه دریافتی از usart

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

    #46
    پاسخ : مقایسه ارایه دریافتی از usart

    اون اشتباه نمیفرسته
    در واقع شما درست وارد نمیکنی. چون اون همونایی که شما وارد کردین رو دوباره واسه خودتون میفرسته
    گفت که دیوانه نهی لایق این خانه نهی

    دیدگاه


      #47
      پاسخ : مقایسه ارایه دریافتی از usart

      خوب با توجه به ارایم که تو کد میبینید چی باید وارد کنم که درست کار کنه؟

      دیدگاه


        #48
        پاسخ : مقایسه ارایه دریافتی از usart

        به نظر من آرایه رو عوض کن تا با اونی که وارد میکنی برابر بشه
        گفت که دیوانه نهی لایق این خانه نهی

        دیدگاه


          #49
          پاسخ : مقایسه ارایه دریافتی از usart

          میشه یه مثال بزنید ؟

          دیدگاه


            #50
            پاسخ : مقایسه ارایه دریافتی از usart

            مثلا مقدار a رو بذارید {"1234","efgh","9abc&quot ;,"5678"}.
            تا مقدار وارد شده با این رشته مقایسه بشه
            گفت که دیوانه نهی لایق این خانه نهی

            دیدگاه


              #51
              پاسخ : مقایسه ارایه دریافتی از usart

              خوب رشته ای که وارد میکنم چی باشه؟
              من همین کار رو اینجوری انچام دادم اما جواب نگرفتم
              ارایه برنامه:[code=c]a[4][7]={"sami","sami","sami&quo t;,"sami"}[/code]
              و این رو توسریال وارد کردم:
              [code=c]
              asamisamisamisami[/code]

              دیدگاه


                #52
                پاسخ : مقایسه ارایه دریافتی از usart

                داده ای که در سریال وارد کردی یه دونه a اولش اضافیه
                رشته ای که میفرستی با اونی که بر میگردونه برابره؟
                گفت که دیوانه نهی لایق این خانه نهی

                دیدگاه


                  #53
                  پاسخ : مقایسه ارایه دریافتی از usart

                  الان اشتباه نوشتم نه برابر نیست

                  دیدگاه


                    #54
                    پاسخ : مقایسه ارایه دریافتی از usart

                    خب بررسی کنید چرا اینطوریه و رفعش کنید :mrgreen:
                    گفت که دیوانه نهی لایق این خانه نهی

                    دیدگاه


                      #55
                      پاسخ : مقایسه ارایه دریافتی از usart

                      نوشته اصلی توسط Finder_
                      خب بررسی کنید چرا اینطوریه و رفعش کنید :mrgreen:



                      اضافه شده در تاریخ :
                      دوست عزیز اصلا بیخیال این اگه بخوام اینو از وقفه دریافت اجرا کنم چجوریه؟
                      [code=c]#include <string.h>
                      #include <stdio.h>

                      char a[]="{ETX}B{\X80}{\XC1}";
                      char string[19];


                      #int_RDA9.void RDA_isr(void)
                      { gets(string);

                      if(strcmp(string, a)==0)
                      output_high(CMD4);

                      }//END OF INT
                      [/code]

                      اضافه شده در تاریخ :
                      دوست عزیز به نتایج خوبی رسیدم الان همه چیز ok هست این کد:
                      [code=c]unsigned char data[16];
                      unsigned char c[22]={"{ETX}B{X80}{XC1}"};

                      #int_RDA
                      void RDA_isr(void)
                      {

                      data[0]=getchar(com1);
                      data[1]=getchar(com1);
                      data[2]=getchar(com1);
                      data[3]=getchar(com1);
                      data[4]=getchar(com1);
                      data[5]=getchar(com1);
                      data[6]=getchar(com1);
                      data[7]=getchar(com1);
                      data[8]=getchar(com1);
                      data[9]=getchar(com1);
                      data[10]=getchar(com1);
                      data[11]=getchar(com1);
                      data[12]=getchar(com1);
                      data[13]=getchar(com1);
                      data[14]=getchar(com1);
                      data[15]=getchar(com1);
                      //data[16]=getchar(com1);
                      //data[17]=getchar(com1);
                      for(i=0;i<16;i++)
                      if(c[i]!=data[i])
                      break;
                      if(i==16)
                      output_high(CMD4);

                      }//END OF INT
                      [/code]

                      اینم چیزی که تو سریال وارد میکنم
                      [code=c]{ETX}B{X80}{XC1}[/code]
                      کد بالا درست کار میکنه اما مشکل ااینجاست که من میخوام ارایه ام این باشه:
                      [code=c]unsigned char c[22]={"0X030X420X800XC1"};[/code]
                      الان مشکل سر ابک اسلش هست با این درست کار نمیکنه

                      دیدگاه


                        #56
                        پاسخ : مقایسه ارایه دریافتی از usart

                        قبلا هم بهتون گفتم باید گرفتن اطلاعاتو توی تابع اصلی بنویسید نه زیرروتین اینتراپت
                        گفت که دیوانه نهی لایق این خانه نهی

                        دیدگاه


                          #57
                          پاسخ : مقایسه ارایه دریافتی از usart

                          یعنی هیچ کدی تو روتین اینتراپت نوشته نشه؟

                          دیدگاه


                            #58
                            پاسخ : مقایسه ارایه دریافتی از usart

                            سلام
                            من پیغام خصوصی شما رو در مورد این تاپیک دریافت کردم.
                            راستش اصلاً نفهمیدم مشکل شما دقیقاً چیه و چی کار میخاید بکنید کلاً. یعنی پروژه چیه. اون رشته که از کامپیوتر میاد چیه. کدوم برنامه میفرسته؟


                            کدی که فرستاده بودید رو دیدم. خیلی طولانی بود و ایراد یابی اش ممکن نیست.
                            کدی که اینجا میزارید باید کوتاه و قابل کامپایل باشه و ایراد رو نشون بده.
                            شما باید یک قدم به عقب برگردید. شما باید اول یک برنامه ساده برای دریافت سریال بنویسید و وقتی مطمئن شدید دریافت به درستی انجام میشه به مرحله بعد برید.
                            مرحله بعد مقایسه رشته دریافتی با رشته مرجع هست.


                            علی الحساب یه ایرادی که به چشمم خورد این بود که توی use_rs232 باید المان ERRORS حتماً باشه.(دلیلش مفصله. شما فقط اضافه کنید.)

                            دیدگاه


                              #59
                              پاسخ : مقایسه ارایه دریافتی از usart

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

                              دیدگاه


                                #60
                                پاسخ : مقایسه ارایه دریافتی از usart

                                سلام دوست عزیز برای یک led درست کار میکنه با این کد و اینکه من تو جاهای مختلف برنامه تست کردم جواب نداد.حالا میخوام اینو به تابع تبدیل کنم میشه یه راهنمایی کنید یه مقدار تو این قسمت ضعیف ام
                                [code=c]int i;

                                unsigned char c[4]={0x03,0x42,0x80,0xc1};
                                unsigned char data[4];


                                #int_RDA
                                void RDA_isr(void)
                                {

                                for(i=0;i<4;i++){
                                data[i]=getchar(com1);
                                if(data[i]==c[i])
                                output_high(CMD4);}


                                }//END OF INT
                                [/code]

                                دیدگاه

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