اطلاعیه

Collapse
No announcement yet.

وقفه UART در CCS و نمایش ارایه روی LCD

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    وقفه UART در CCS و نمایش ارایه روی LCD

    دوستان چطور میشه از وقفه UART تو CCS استفاده کزد ؟؟؟؟ لطفا یه مثال بزارید

    و من 20 بایت رو از طریق UART دارم میگیرم و میریزم تو یه ارایه حالا چطور باید عدد تو این ارایه رو روی LCD نشون بدم ؟؟؟؟؟

    #2
    پاسخ : وقفه UART در CCS و نمایش ارایه روی LCD

    سلام
    1- با استفاده از دستور INT_RDA# می توان با ورود یک کاراکتر جدید وقفه ایجاد کرد و با استفاده از دستور INT_TBE# می توان در هنگام اتمام ارسال وقفه ایجاد کرد .
    2- برای نمایش یک آرایه از اعداد بر روی ال سی دی می توانید به روش زیر عمل کنید .
    هر کدام از درایه ها را بصورت جداگانه یا توسط یک حلقه for بر روی ال سی دی بنویسید . به طور مثال :
    printf(lcd_putc,"%d",array[2]);l

    دیدگاه


      #3
      پاسخ : وقفه UART در CCS و نمایش ارایه روی LCD

      من ایجوری برنامه نوشتم ولی انگار دریافت uart مشکل داره چون هر عددی که میفرستم مقدار روی پورت d تغییری نمیکنه و همین طور عدد روی lcd

      [code=c]
      #include <16f877a.h>
      #use delay (xtal=8,000,000)
      #use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,PARITY=n)
      #define use_portb_lcd TRUE
      #include <lcd.c>

      char id[20],i;
      int8 conter=0;

      #int_rda
      void rx_isr()
      {
      OUTPUT_d(id[conter]);
      id[conter]= getc();
      conter++;
      }

      void main (void)
      {

      enable_interrupts(INT_RDA);
      enable_interrupts(GLOBAL);
      set_tris_d(0x00);

      lcd_init();
      while(true)
      {

      i=id[conter];
      lcd_gotoxy(1,1);
      printf(lcd_putc,"%d",i);
      delay_ms(100);
      lcd_gotoxy(1,1);
      lcd_putc(" "
      if(conter>=20)
      {
      conter=0;
      lcd_gotoxy(1,1);
      printf(lcd_putc,"%d",id[16]);
      delay_ms(100);
      }

      }

      }
      [/code]

      دیدگاه


        #4
        پاسخ : وقفه UART در CCS و نمایش ارایه روی LCD

        مشکلی تو برنامه نمیبینم
        با پروتئوس تست میکنید یا تو واقعیت؟؟
        زمین مشترک بین میکرو و سوکت کامپیوتر گرفتید؟؟

        دیدگاه


          #5
          پاسخ : وقفه UART در CCS و نمایش ارایه روی LCD

          با proteus امتحان کردم

          دیدگاه


            #6
            پاسخ : وقفه UART در CCS و نمایش ارایه روی LCD

            نوشته اصلی توسط lpln852
            با proteus امتحان کردم
            من خودم به شخصه در موارد Communication اصلا به پروتئوس اعتماد نمیکنم که حتی بخوام برنامم رو باهاش شبیه سازی کنم! شما هم اگر امکانش براتون هست به صورت عملی تست کنید ....

            دیدگاه


              #7
              پاسخ : وقفه UART در CCS و نمایش ارایه روی LCD

              ممنون مشکل از proteus بود
              -------------------------------------------------
              ویرایش:

              یه سوال مهم ؟؟؟
              توی CCS چطور وقتی که از UART نرم افزاری استفاده میکنیم از وقفه استفاده کنیم
              از دستور GETC() که استفاده می کنم تو این دستور میمونه تا دیتا برسه
              من میخوام با UART نرم افزاری هر وقت دیتا رسید به یه زیر برنامه بره

              -------------------------------------------------
              ویرایش:

              من از uart نرم افزاری تو کامپایلر ccs استفاده کردم ولی یه مشکلی دارم نمیدونم تو uart نرم افزاری وقفه داره ؟ اگه داره چطوری باید فعالش کنم ؟ واگر هم نداره چطور تو برنامه بفهمم دیتا کی روی پایه rx که من تعریف کردم هست چون از ذستور getc() که استفاده می کنم برنامه تا زمانی که دیتا دریافت نکرده تو این خط میمونه و بقیه برنامه اجرا نمیشه من میخوام این مشکل برطرف بشه

              لطفا راهنمایی کنید

              دیدگاه


                #8
                پاسخ : وقفه UART در CCS و نمایش ارایه روی LCD

                به راحتی میتوانید تست کنید که وقفه جواب میده یا نه! ولی به احتمال خیلی زیاد می توانید از دستور kbhit استفاده کنید

                دیدگاه

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