اطلاعیه

Collapse
No announcement yet.

مشکل در USART AT91SAM7 فقط برای عدد 10

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

    مشکل در USART AT91SAM7 فقط برای عدد 10

    سلام
    کسی تا حالا به این مشکل خورده که یه عدد رو نتونه بفرسته رو USART?
    من همه اعداد رو درست می تونم ارسال کنم
    اما عدد 10 نمی شه
    عدد 10 تو کد اسکی میشه LINE FEED
    حالا زحمتی که ARM میکشه ENTER هم بهش اضافه می کنه
    یعنی کد 13
    SENDCHAR(10
    جواب:
    0D 0A
    من 0D رو منی خوام
    چیکار کنم؟ :question:
    کم رنگ ترین جوهر ها از قویترین حافظه ها ماندگارترند.

    #2
    پاسخ : مشکل در USART AT91SAM7 فقط برای عدد 10

    نوشته اصلی توسط jolfaplc
    سلام
    کسی تا حالا به این مشکل خورده که یه عدد رو نتونه بفرسته رو USART?
    من همه اعداد رو درست می تونم ارسال کنم
    اما عدد 10 نمی شه
    عدد 10 تو کد اسکی میشه LINE FEED
    حالا زحمتی که ARM میکشه ENTER هم بهش اضافه می کنه
    یعنی کد 13
    SENDCHAR(10
    جواب:
    0D 0A
    من 0D رو منی خوام
    چیکار کنم؟ :question:
    رقم هاشو جدا جدا بفرستید

    دیدگاه


      #3
      پاسخ : مشکل در USART AT91SAM7 فقط برای عدد 10

      پیدا کردم
      مورد از اینجا بود
      int sendchar (int ch) { /* Write character to Serial Port */
      if (mode==0) {
      if (ch == '\n&#039 { // Check for CR
      while (!((*AT91C_US0_CSR) & AT91C_US_TXRDY)); // Wait for Empty Tx Buffer
      // *AT91C_US0_THR = '\r';
      }
      while (!((*AT91C_US0_CSR) & AT91C_US_TXRDY)); // Wait for Empty Tx Buffer
      return (*AT91C_US0_THR = ch);
      }
      else{
      if (ch == '\n&#039 { // Check for CR
      while (!((*AT91C_US1_CSR) & AT91C_US_TXRDY)); // Wait for Empty Tx Buffer
      // *AT91C_US1_THR = '\r';
      }
      while (!((*AT91C_US1_CSR) & AT91C_US_TXRDY)); // Wait for Empty Tx Buffer
      return (*AT91C_US1_THR = ch);
      } // Output CR
      }
      // Transmit Character

      وقتی این جمله رو حذف کردم
      // *AT91C_US1_THR = '\r';
      درست شد
      کم رنگ ترین جوهر ها از قویترین حافظه ها ماندگارترند.

      دیدگاه


        #4
        پاسخ : مشکل در USART AT91SAM7 فقط برای عدد 10

        برنامم این سبکیه
        ran[1]=s[1];
        ran[2]=s[2];
        ran[3]=s[3];
        ran[4]=s[4];
        ran[5]=s[5];
        ran[6]=s[6];
        ran[7]=s[7];
        ran[8]=s[8];
        for(iranxxxx=1;iranxxxx<=8;iranxxxx++){
        sendchar(ran[iranxxxx]);
        }
        البته کل برنامه 2500 خطه کلا
        این تیکه فرستادنش بود
        کم رنگ ترین جوهر ها از قویترین حافظه ها ماندگارترند.

        دیدگاه

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