اطلاعیه

Collapse
No announcement yet.

دریافت رشته از وقفه ی یوزارت

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

    #16
    پاسخ : دریافت رشته از وقفه ی یوزارت

    سلام
    جناب دستت درد نکنه ممنون از راهنمایتون
    ببخشید چطور باید از
    وقفه سریال استفاده کنم
    چون منم میخوام مثل بیسیک که از وقفه استفاده کرده در کدویژن هم از وقفه استفاده کنم

    اگه راهنماییم کنید خیلی ممنونتون میشم

    جناب خیلی لطف کردید

    دیدگاه


      #17
      پاسخ : دریافت رشته از وقفه ی یوزارت

      خواهش میکنم
      جواب گرفتید؟؟
      من زیاد با کدویژن کار نکردم ولی الان که codewizard رو نگاه کردم دیدم یه اینطور چیزایی تو خودش داره (جناب خان)
      شما قسمت usart که برید تیک receiver رو بزنید و بعدش تیک rx interrupt رو هم فعال کنید زیرش که نوشته receiver buffer رو به نسبت تعداد کاراکتری که به عنوان هر دستور که از ماژول میفرستید دریافت میکنید بزارید و تمام!
      حالا هر وقت که دیتایی از پورت سریال دریافت بشه تو یه بافر قرار میگیره و شما اگه زمان دریافت داده از پورت سریال کار دیگه ای انجام بدید دیگه اون دیتا از بین نمیره!
      روش دریافتش هم مثله همون برنامه بالا که نوشتم!
      (اون برنامه بالایی هم که گذاشتم فک نکنم بدون استفاده از وقفه سریال جواب بده)
      ببینم چه میکنی

      دیدگاه


        #18
        پاسخ : دریافت رشته از وقفه ی یوزارت

        سلام
        جناب بازهم نشد
        نمی دونم مشکل از کجاست !!!!!!
        چرا مقداری که میخونه با مقداری که براش تعریف کردم برابر نمیشه حتی 2 رو که وارد میکنه هم همین طوره تو این داده ها رشته و کاراکتوری گیج شدم والاااا

        بازهم ممنون که حداقل شما هستید کمکم کنه
        تشکر

        دیدگاه


          #19
          پاسخ : دریافت رشته از وقفه ی یوزارت

          رشته دریافت شده رو روی lcd نمایش بده ببین چی مبینی؟
          همراه رشته ای که ارسال میکنی کد اینتر و یا نیو لاین ارسال نمیشه؟

          دیدگاه


            #20
            پاسخ : دریافت رشته از وقفه ی یوزارت

            سلام
            نه 15 یا A5 که ار سال میشه روی lcd هم همین رو نمایش میده
            ممنون

            دیدگاه


              #21
              پاسخ : دریافت رشته از وقفه ی یوزارت

              اگه امکانش هست کل برنامه ای که تا الان نوشتی رو بزار ببینم چشه؟؟

              دیدگاه


                #22
                پاسخ : دریافت رشته از وقفه ی یوزارت

                سلام دوست عزیز
                کل برنامه من :
                مرحله اول:
                ارسالی کد از گوشی ( که به صورت رشته )

                مرحله دوم:
                دریافت کد از طریق بلوتوث ( که نمی دونی چی رو دریافت میکنی : رشته یا اسکی یا کارکاتور و ...)

                مرحله سوم:
                مقایسه کد دریافتی با کد مورد نظر برای کنترل یهک پایه میکرو ( که اینجا نمی دونم باید رشته مقایسه بشه یا نه )

                که این میشه برنامه :
                کد:
                [COLOR=#333333][FONT=Yekan] char code[80];                  [/FONT][/COLOR][COLOR=#333333][FONT=monospace]    int result;[/FONT][/COLOR]    char example1[50];
                    char example2[50];
                    
                    
                    code[10]=getchar(); 
                
                
                                                 
                    strcpy(example1,"15");
                    strcpy(example2,code);
                
                
                    result = strcmp(example1, example2);
                
                
                    if (result == 0){ 
                        PORTB.1=1; [COLOR=#333333][FONT=monospace]    };[/FONT][/COLOR]
                ممنون و تشکر
                جدیدترین ویرایش توسط alinavidy; ۰۸:۲۹ ۱۳۹۵/۰۵/۱۳.

                دیدگاه


                  #23
                  پاسخ : دریافت رشته از وقفه ی یوزارت

                  سلام
                  خوب عزیز دل برنامه رو اشتباه نوشتی!!

                  char example1[50];
                  char example2[50];
                  char temp[10],f1,t;

                  void receive (void)
                  {
                  temp[0]=t;
                  f1=1;
                  while ( (t = uart_getc()) != 0 ) {

                  temp[f1] =t;
                  if (t>20) f1++;
                  temp[f1]=0;
                  _delay_ms(10);
                  }
                  f1=0;
                  strcpy(example2,temp);
                  }



                  void main (void)
                  {

                  strcpy(example1,"15");

                  while (1)
                  {
                  t=getchar();
                  if ( t != 0 ) receive();
                  if(strcmp ((const char*)example1,example2)==0) PORTB.1=1;
                  //if(strcmp ((const char*)example2,"15")==0) PORTB.1=1;
                  }
                  }


                  اینو یه تست بزن ببین چی میشه!
                  در ضمن یادت نره که تنظیمات پورت سریال رو مثل همون چند پست قبل که خدمتتون عرض کردم (فعال سازی وقفه usart و بافر و....) انجام بدی

                  دیدگاه


                    #24
                    پاسخ : دریافت رشته از وقفه ی یوزارت

                    سلام ببخشید وسط بحثتون برا منم یه سوال پیش اومده
                    وقتی با rs232 از میکرو به کامپیوتر رشته ای رو میفرستیم، مثلاً 'hello' این رشته چطور به صورت کد اسکی از طرف هایپر ترمینال دریافت میشه و نمایش داده میشه؟ (در سطح برنامه نویسی اسمبلی صحبت میکنم) یعنی میکرو که کد هگز میفرسته،خب چرا هایپر ترمینال عدد رو نشون نمیده و همون رشته رو نشون میده؟کلاً فرم ارتباط یوزارت کد اسکی هستش؟ و یه سوال دیگه هم اینکه وقتی عددی رو میفرستیم،مثلاً ۹ این عدد هم به صورت کد اسکی ارسال میشه؟
                    [آموزشی] کنترل رله با پیامک توسط sim800l
                    [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
                    [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
                    [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
                    صفحه اینستاگرام : ecdco_ir

                    دیدگاه


                      #25
                      پاسخ : دریافت رشته از وقفه ی یوزارت

                      سلام
                      کدویژن دستور زیر رو خطا میزنه!!!!
                      uart_getc

                      دیدگاه


                        #26
                        پاسخ : دریافت رشته از وقفه ی یوزارت

                        من چون با کدویژن کار نمیکنم اون قسمت رو اشتباه نوشتم شما همون getchar رو بزار

                        دیدگاه


                          #27
                          پاسخ : دریافت رشته از وقفه ی یوزارت

                          نوشته اصلی توسط reza0506 نمایش پست ها
                          سلام ببخشید وسط بحثتون برا منم یه سوال پیش اومده
                          وقتی با rs232 از میکرو به کامپیوتر رشته ای رو میفرستیم، مثلاً 'hello' این رشته چطور به صورت کد اسکی از طرف هایپر ترمینال دریافت میشه و نمایش داده میشه؟ (در سطح برنامه نویسی اسمبلی صحبت میکنم) یعنی میکرو که کد هگز میفرسته،خب چرا هایپر ترمینال عدد رو نشون نمیده و همون رشته رو نشون میده؟کلاً فرم ارتباط یوزارت کد اسکی هستش؟ و یه سوال دیگه هم اینکه وقتی عددی رو میفرستیم،مثلاً ۹ این عدد هم به صورت کد اسکی ارسال میشه؟
                          کلا تمام اعداد و حروف به صورت یک عدد باینری ارسال میشن و این شما هستید که تو هایپر ترمینال تعیین میکنید که داده دریافتی تبدیل به رشته بشه و یا کد هگز داده دریافتی نمایش داده بشه!
                          پست شماره 11 این تاپیک رو نگاه کن.یه جدول هست که معادل هگز کاراکترها رو نشون داده مثلا وقتی شما حرف A رو ارسال میکنید عدد 65 ارسال میشه به هایپر ترمینال!
                          جدیدترین ویرایش توسط M3R-E; ۰۱:۲۸ ۱۳۹۵/۰۵/۱۴.

                          دیدگاه


                            #28
                            پاسخ : دریافت رشته از وقفه ی یوزارت

                            سلام ببخشید میشه یه توضیح کامل درباره دریافت رشته از وقفه USART بدید.منخیلی گشتم ولی چیزی نفهمیدم.در ضمن با کدویژن کار می کنم.

                            دیدگاه

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