اطلاعیه

Collapse
No announcement yet.

کمک در ارسال و دریافت اطلاعات به صورت usart

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

    کمک در ارسال و دریافت اطلاعات به صورت usart

    سلام و خسته نباشید خدمت کلیه دوستان
    من که هر چی تاپیک میزنم هیچ کس لطف نمیکنه که جوابی بده و میره صفحات بالاتر و کلا محو میشه!
    اما خب از رو که نمیرم و دوباره تاپیک جدید و سوال های جدید
    1- میکرو عددی رو دریافت میکنه( به طریقه ارسال سریال usart ) حال این عدد رو میخوام در محاسبات تایمر وارد کنم، عدد باینریه من باید این عدد رو به هگز تبدیل کنم؟؟؟ چطوری این کار رو کنم؟؟
    2- میخوام با توجه به عدد ورودی فرکانس pwm تولیدی تایمر رو تغییر بدم، و سه موج همزمان با اختلاف فاز 120 درجه تولید کنم میشه در این زمینه راهنمایی کنین؟؟
    آیا با یک میکرو میشه این کار رو کرد؟؟

    #2
    پاسخ : کمک در ارسال و دریافت اطلاعات به صورت usart

    با سلام
    اطلاعات سریال داخل رجیستر 8 بیتی UDR قرار میگیره و میتونید مقدارش رو بخونید و داخل رجیستر هایی مثل OCR بریزید منظورتون از تبدیل چیه برای چی میخواهید اینکارو بکنید؟
    - میخوام با توجه به عدد ورودی فرکانس pwm تولیدی تایمر رو تغییر بدم، و سه موج همزمان با اختلاف فاز 120 درجه تولید کنم میشه در این زمینه راهنمایی کنین؟؟
    آیا با یک میکرو میشه این کار رو کرد؟؟
    به تایپیک زیر یک سر بزنید یک پروژه کامل در مورد همین کار وجود داره :
    http://www.eca.ir/forum2/index.php?topic=47979.0

    دیدگاه


      #3
      پاسخ : کمک در ارسال و دریافت اطلاعات به صورت usart

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

      دیدگاه


        #4
        پاسخ : کمک در ارسال و دریافت اطلاعات به صورت usart

        من هم دقیقا میخواستم پاسخ آقا مجتبی رو برای 2تا سوال شما ارسال کنم که دیدم پیغام داد:
        اخطار - زمانی که شما در حال خواندن بودید، یک پاسخ جدید ارسال شده است! شما می توانید مجددا ارسال خود را ببینید.
        :rolleyes:
        اما در تکمیل جواب سوال اول:
        درسته،اطلاعات به صورت بیتی به میکرو میرسه،اما به قول دوستمون آقا مجتبی در نهایت به صورت یک بایت داخل UDR ریخته میشه و شما فقط کافیه مقدارش رو بخونید و ...
        مثلا:
        int a
        a=UDR
        TCNTx=a یا OCRx=a-10 یا هرجور دیگه ای که مایلید به تایمر ربطش بدید...
        اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

        دیدگاه


          #5
          پاسخ : کمک در ارسال و دریافت اطلاعات به صورت usart

          دوستان بسیار ممنونم که پاسخ دادید. راهنمایی تون کمکم کرد. من این ذهنیت رو داشتم که عددی که میکرو دریافت میکنه و باینریه رو وقتی میخوایم در محاسبات استفاده کنیم باید به هگز تبدیل بشه واسه همین اون سوال رو پرسیدم.
          مطلب بعدی اینکه من به اون تاپیک سر زدم. اما من موج مربعی میخوام تولید بشه، اونم طوری که با تغییر عدد دریافتی از میکرو فرکانس موج تغییر کنه، در این مورد هم اگه کمی توضیح بدید ممنون میشم

          دیدگاه


            #6
            پاسخ : کمک در ارسال و دریافت اطلاعات به صورت usart

            اما من موج مربعی میخوام تولید بشه، اونم طوری که با تغییر عدد دریافتی از میکرو فرکانس موج تغییر کنه، در این مورد هم اگه کمی توضیح بدید ممنون میشم
            خوب به نظر من برای تولید یک همچین چیزی دیگه نیازی به pwm ندارید میتونید با ایجاد یک زمانه پایه سه تا موج رو ایجاد کنید مثلا فرض کنیم که یک پریود برابر باشه با 2T پس باید زمان مورد نیاز برای هر وقفه برابر باشه با : 2T/2n
            که n میشه تعداد فاز که اینجا 3 هست پس داریم T/3 یعنی وقفه سریز باید هر T/3 رخ بده حالا میاییم توی این رویتن وقفه یک متغیر(مثلا i) رو هر بار یک واحد زیاد میکنم و هر وقت برابر با 7 شد اون رو مساوی یک میکنیم ، بعد میگیم چون فاز اول و سوم مقدارشون توی t(0+) [s]FALSE[/s] برابر با یک هست مقدار اولیه این دو رو یک میکنیم مثلا فرض کنید PA0 ,PA1,PA2به ترتیب R,S,T هستند پس مقدار اولیه PA0, PA2میشه یک بعد مییاید مقدار اولیه تایمر رو توی روتین اصلی برنامه با توجه به مقدار دریافت شده توسط پورت سریال و فرکانس کار و پرسکالر محاسبه میکنید و تایمر رو در هر بار سریز مقدار دهی میکنید بعد توی روتین اصلی برنامه اینجوری بنویسید که هر وقت i برابر شد با 1 یا 5 PA2 نات بشه و هر وقت برابر شد با 2 یا 4 PA1 نات بشه و هروقت برابر شد با 3 یا 6 PA0 نات بشه ./

            دیدگاه

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