اطلاعیه

Collapse
No announcement yet.

ارتباط سریال در ATmega128

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

    ارتباط سریال در ATmega128

    سلام دوستان
    تو ATmega128 ; 64 2560 و خیلی دیگه از شماره های AVR چند ارتباط Usart وجود داره، در مورد دریافت چون میشه از وقفه خاص خود USART استفاده کرد خیلی مشکلی نیست ولی در مورد ارسال اطلاعات با توابعی مثل putchar یا puts و غیره که وابسته و شماره USART نیستند چطور باید تعیین کرد که با کدوم USART ارسال کنه؟
    یه توضیح کوچیک :
    مثلا من میخوام یه سری اطلاعات رو میکرو با USART0 به کامپیوتر ارسال کنه و یه سری دیگه رو با USART1 به یه فرستنده برای یه میکرو دیگه بفرسته...

    #2
    پاسخ : ارتباط سریال در ATmega128

    خودتون یه تابع بنویسید
    مثلا تابع putchar رو بردارید و اون رو به مثلا putchar_1 تغییر بدید
    حالا داخل تابع هر جا UDR0 بود رو با udr1 تغییر بدین
    Don't hesitate to ask any question ..

    دیدگاه


      #3
      پاسخ : ارتباط سریال در ATmega128

      نوشته اصلی توسط syavash_kasraeee
      خودتون یه تابع بنویسید
      مثلا تابع putchar رو بردارید و اون رو به مثلا putchar_1 تغییر بدید
      حالا داخل تابع هر جا UDR0 بود رو با udr1 تغییر بدین
      سلام.

      نیازی به اینکار نیست اگه از کد ویزارد استفاده کنید و usart ها رو فعال کنید (دریافت و ارسال ) توابع ارسال و دریافت برای هر پورت سریال ساخته میشه مثلاً

      // Write a character to the USART1 Transmitter
      #pragma used+
      void putchar1(char c)
      {
      while ((UCSR1A & DATA_REGISTER_EMPTY)==0);
      UDR1=c;
      }
      #pragma used-

      // Write a character to the USART2 Transmitter
      #pragma used+
      void putchar2(char c)
      {
      while ((UCSR2A & DATA_REGISTER_EMPTY)==0);
      UDR2=c;
      }
      #pragma used-

      می تونید برای ارسال از پورت سریال 2 از تابع putchar2 استفاده کنید.برای در یافت هم مثل اینکه مشکلی ندارید. یکم کار کنید متوجه میشید.

      موفق باشید.



      http://upload.tehran98.com/img1/b1cx...jmzq_thumb.gif

      دیدگاه


        #4
        پاسخ : ارتباط سریال در ATmega128

        مرسی از همهگی مشکل من بیشتر مربوط به توابعی هستش مثل putsf که در کتابخانه ای جدا مثل stadio.h قرار دارند و وابستگی به میکرو ندارن برای اون ها چه باید کرد...
        البته لازم بگم تقریبا مشکلم رفع شده برای یاد گیری دارم میپرسم چن ممکنه به زودی به اون مشکل بخورم!

        دیدگاه


          #5
          پاسخ : ارتباط سریال در ATmega128

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

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

          [img width=343 height=100]http://www.elecdesigner.com/uploads/PRO-DESIGNER-GROUP.jpg[/img]

          دیدگاه


            #6
            پاسخ : ارتباط سریال در ATmega128

            با این که جوابم رو میدونستم امیدوار بودم مجبور به اینکار نشم...

            دیدگاه


              #7
              پاسخ : ارتباط سریال در ATmega128

              برای استفاده از میکرو کنترلر بعضی اوقات مجبوری کاری سخت انجام بدی ولی بعدش خیالت راحته چون از اون به بعد دیگه لازم نیست کار سختی انجام بدی چون مایکروسافت عهده دار این قضیه هست COPY & PASTE
              همانطور که مایل نیستم بنده کسی باشم، حاضر نیستم آقای کسی باشم. کسانی که مخالف آزادی دیگرانند، خود لیاقت آزادی را ندارند.((آبراهام لینکن))

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

              [img width=343 height=100]http://www.elecdesigner.com/uploads/PRO-DESIGNER-GROUP.jpg[/img]

              دیدگاه


                #8
                پاسخ : ارتباط سریال در ATmega128

                باسلام
                من یک مشکل دارم اونم اینکه من میخوام از توابع puts استفاده کنم اما این توابع محدود شدن و فقط قلبلیت استفاده در usart0 رو دارن
                اما من دارم از usart 1(mega128) استفاده میکنم
                اگر کسی راه حلی داره کمکم کنه
                با تشکر
                داناترین مردم کسی است که دانش مردم را با دانش خود جمع کند
                پیامبر اکرم (ص)
                علی ابن ابیطالب : همانا پاداش دانشمند از شخص روزه دار و شب زنده دارکه در راه خدا جهاد می کند بیشتر است
                اگر میخواهید دشمنان خود را تنبیه کنید به دوستان خود محبت کنید.(کورش کبیر)

                دیدگاه

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