اطلاعیه

Collapse
No announcement yet.

آموزش راه اندازی واحد USART در میکروکنترلر های ARM

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

    آموزش راه اندازی واحد USART در میکروکنترلر های ARM

    سلام

    برای راه اندازی واحد USART در میکروکنترلر های ARM توسط کامپایلر Keil ، ابتدا باید هدر USART رو درون هدر های Keil اضافه نمایید

    هدر USART ارائه شده برای میکروکنترلر AT91SAM7S64 رو می توانید از لینک زیر دریافت نمایید و باید به آدرس زیر در رایانه خود انتقال دهید
    C:\Keil\ARM\INC\Atmel\SAM7S
    لینک دانلود سرور1: http://up6.iranblog.com/upload/90/sh...3144634761.zip
    لینک دانلود سرور2: http://www.upload4files.tk/download....30da631e7cc0af

    هدر USART ارائه شده برای میکروکنترلر AT91SAMX256 رو می توانید از لینک زیر دریافت نمایید و باید به آدرس زیر در رایانه خود انتقال دهید
    C:\Keil\ARM\INC\Atmel\SAM7X
    لینک دانلود سرور1: http://up6.iranblog.com/upload/90/sh...3144634762.zip
    لینک دانلود سرور2: http://www.upload4files.tk/download....fc07bf9da9a2c8

    پس از اضافه کردن هدر ها ، کامپایلر Keil رو باز کرده و یک پروژه ایجاد کنید و آموزش زیر رو ادامه دهید

    1 . ابتدا با دستور <include <usart.h# هدر USART رو به پروژه اضافه نمایید

    2 . با دستور (usart0_init(a,b میتوانید واحد USART رو کانفیگ نمایید
    a = بیت توقف ارتباط می باشد که به طور مثال عدد 2 یعنی با 2 بیت توقف داده مورد نطر ارسال شود
    b = نرخ ارسال اطلاعات می باشد

    3 . با دستور ()sendchar میتوانید متغیری رو به پورت سریال ارسال نمایید

    4 . برای دریافت داده از پورت سریال از دستور ()a = getkey استفاده می شود که داده های دریافتی در متغیر a ذخیره می شود

    ×××آ‌ خوب حالا نوبت به تابع ها می رسد که می توانید هر عددی رو (حتی بیش از 8 بیت) با این تابع ارسال نمایید ×××

    با تابع زیر ابتدا بایت بالا رو به دست آورده و ارسال می کنیم و سپس بایت پایین رو بدست آورده و ارسال می نماییم
    برای بدست آوردن بایت پایین (i & 0xFF) و برای بدست آوردن بایت بالا (8<<(i & 0xFF00))
    که می توان متغیر X رو که می تواند بیش از 8 بیت هم باشد ارسال کرد
    x می تواند متغیر از نوع short باشد

    کد:
    for (s=0;s<5;s++) 
    {
    sendchar(x & 0xFF);
    delay_ms(100);
    sendchar((x & 0xFF00)>>8);
    delay_ms(100);
    }

    با تابع زیر ابتدا بایت پایین و سپس بایت بالا رو دریافت می کنیم و پس از آن برای داده های دریافتی رو یکی می کنیم و متغیر ارسال شده به صورت کامل دریافت می شود
    برای یکی کردن متغیر ها هم از دستور ((c = a | (b<<8) استفاده می شود که a بایت پایین و b بایت بالا می باشد و c متغیر خروجی که از یکی شدن متغیر های a و b حاصل می شود
    می توانید از برنامه زیر استفاده نمایید
    a و b مغیری از نوع char و c متغیری از نوع short می باشد

    کد:
    for (s=0;s<5;s++) 
    {
    a = getkey();
    delay_ms(100);
    b = getkey();
    delay_ms(100);
    (c = a | (b<<8));
    }

    ××××× نکته : برای ارسال و دریافت با کمترین خطا همان طور که در برنامه های زیر قابل مشاهده هست در ارسال از 100 میلی ثانبه تاخیر و در گیرنده هم به همین صورت .

    با سپاس
    http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

    #2
    پاسخ : آموزش راه اندازی واحد USART در میکروکنترلر های ARM

    میشه در مورد اینتراپت دریافت هم توضیح بدید لطفا؟
    Don't hesitate to ask any question ..

    دیدگاه


      #3
      پاسخ : آموزش راه اندازی واحد USART در میکروکنترلر های ARM

      نوشته اصلی توسط Soodi
      سلام

      برای راه اندازی واحد USART در میکروکنترلر های ARM توسط کامپایلر Keil ، ابتدا باید هدر USART رو درون هدر های Keil اضافه نمایید

      هدر USART ارائه شده برای میکروکنترلر AT91SAM7S64 رو می توانید از لینک زیر دریافت نمایید و باید به آدرس زیر در رایانه خود انتقال دهید
      C:\Keil\ARM\INC\Atmel\SAM7S
      لینک دانلود سرور1: http://up6.iranblog.com/upload/90/sh...3144634761.zip
      لینک دانلود سرور2: http://www.upload4files.tk/download....30da631e7cc0af

      هدر USART ارائه شده برای میکروکنترلر AT91SAMX256 رو می توانید از لینک زیر دریافت نمایید و باید به آدرس زیر در رایانه خود انتقال دهید
      C:\Keil\ARM\INC\Atmel\SAM7X
      لینک دانلود سرور1: http://up6.iranblog.com/upload/90/sh...3144634762.zip
      لینک دانلود سرور2: http://www.upload4files.tk/download....fc07bf9da9a2c8

      پس از اضافه کردن هدر ها ، کامپایلر Keil رو باز کرده و یک پروژه ایجاد کنید و آموزش زیر رو ادامه دهید

      1 . ابتدا با دستور <include <usart.h# هدر USART رو به پروژه اضافه نمایید

      2 . با دستور (usart0_init(a,b میتوانید واحد USART رو کانفیگ نمایید
      a = بیت توقف ارتباط می باشد که به طور مثال عدد 2 یعنی با 2 بیت توقف داده مورد نطر ارسال شود
      b = نرخ ارسال اطلاعات می باشد

      3 . با دستور ()sendchar میتوانید متغیری رو به پورت سریال ارسال نمایید

      4 . برای دریافت داده از پورت سریال از دستور ()a = getkey استفاده می شود که داده های دریافتی در متغیر a ذخیره می شود

      ×××آ‌ خوب حالا نوبت به تابع ها می رسد که می توانید هر عددی رو (حتی بیش از 8 بیت) با این تابع ارسال نمایید ×××

      با تابع زیر ابتدا بایت بالا رو به دست آورده و ارسال می کنیم و سپس بایت پایین رو بدست آورده و ارسال می نماییم
      برای بدست آوردن بایت پایین (i & 0xFF) و برای بدست آوردن بایت بالا (8<<(i & 0xFF00))
      که می توان متغیر X رو که می تواند بیش از 8 بیت هم باشد ارسال کرد
      x می تواند متغیر از نوع short باشد

      کد:
      for (s=0;s<5;s++) 
      {
      sendchar(x & 0xFF);
      delay_ms(100);
      sendchar((x & 0xFF00)>>8);
      delay_ms(100);
      }

      با تابع زیر ابتدا بایت پایین و سپس بایت بالا رو دریافت می کنیم و پس از آن برای داده های دریافتی رو یکی می کنیم و متغیر ارسال شده به صورت کامل دریافت می شود
      برای یکی کردن متغیر ها هم از دستور ((c = a | (b<<8) استفاده می شود که a بایت پایین و b بایت بالا می باشد و c متغیر خروجی که از یکی شدن متغیر های a و b حاصل می شود
      می توانید از برنامه زیر استفاده نمایید
      a و b مغیری از نوع char و c متغیری از نوع short می باشد

      کد:
      for (s=0;s<5;s++) 
      {
      a = getkey();
      delay_ms(100);
      b = getkey();
      delay_ms(100);
      (c = a | (b<<8));
      }

      ××××× نکته : برای ارسال و دریافت با کمترین خطا همان طور که در برنامه های زیر قابل مشاهده هست در ارسال از 100 میلی ثانبه تاخیر و در گیرنده هم به همین صورت .

      با سپاس
      سلام داداش دستت درد نکنه :read:
      من گفتم کمک ولی نگفتم که خودتو اینقدر به زحمت بنداز که!!!!1 :nice:
      به هر حال دستت در نکنه هفته دیگه تست میکنم الان درس دارم! :cry:
      خیلی ممنون اگه نشد دوباره مزاحمتون میشم فعلا خدا حافظ!! :bye
      تشکر لازمه! دکمه رو فشار بده ديگه!!
      موفق باشيدددددد!!

      دیدگاه


        #4
        پاسخ : آموزش راه اندازی واحد USART در میکروکنترلر های ARM

        آقای soodi بسیار ممنون . اما این تابع usart.h از اینتراپت استفاده نکرده، اگه میشه با اینتراپت توضیح بدید لطفا.

        دیدگاه

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