نمایش نتایج 1 تا 3 از 3

نام تاپیک: سوال درباره ی avr با سی++

  1. #1

    Unhappy سوال درباره ی avr با سی++

    یک دیتای 8 بیتی به طور مدام از پورت B بخواند و بررسی کند اگر عدد زوج است استیک پالس مربعی با فرکان 1 مگاهرتز و اگر فرد است فرکانس با 2 مگاهرتز باشد.
    من توی خواندن یک مقدار از پورت مشکل دارم میشه راهنماییم کنید

  2. #2
    کاربر تازه وارد آواتار MortezaZandi
    تاریخ عضویت
    آبان 1394
    محل زندگی
    خوزستان
    پست
    56

    نقل قول: سوال درباره ی avr با سی++

    سلام
    می توانید از وقفه سر ریز تایمر برای خواندن مقدار بیت های ورودی به پین موردنظر استفاده نمایید، مثلا با فرض این که باود ریت منبع پالس 9600 بیت در ثانیه باشد
    مقدار سرریز تایمر را طوری تنظیم کنید که 9600 بار در ثانیه سرریز اتفاق بیافتد و کد وقفه در زمان های مناسب بیت های ورودی به پین را بردارد.

    در روش دیگه میتوانید خروجی منبع پالس را به پایه وقفه خارجی متصل کنید و وضعیت تریگر وقفه خارجی را به AnyChange تغییر دهید، بدین صورت با هر تغییر بر روی پین ورودی (High ، Low) کد وقفه اجرا می شود و شما قادر خواهید بود تا مقدار پین را در آرایه موردنظر خود ذخیر نمایید، و با رسیدن تعداد مقادیر خوانده شده به 8 عدد آن را برای استفاده بعدی به تابع دیگری بسپارید.
    این روش بندرت استفاده می شود و یکی از معایب آن این است که تعیین نرخ انتقال فقط توسط منبع بیرونی پالس صورت میگیرد و شما دخالتی در آن ندارید. و عیب دیگر آن این است که در صورتی که دو بیت مساوی پشت سر هم به پین وارد شود فقط یکبار وقفه خارجی Trig می شود. و بکار گیری مکانسیم های خارجی مانند Pullup و PullDown لازم است.
    بنابراین بهترین روش استفاده از منبع تولید پالس داخلی جهت زمانبندی نمونه برداری از ورودی می باشد که به کمک سرریز تایمر قابل انجام است.

  3. #3

    نقل قول: سوال درباره ی avr با سی++

    سلام
    به صورت کلی اگه بخواهی کل ۸ بیت روی یه پورت رو بخونی باید اینجوری کد بنویسی‌:
    char temp;
    temp = PINA;


    اگه هم بخواهی فقط بدونی یه بیت چنده باید اینجوری کد بنویسی :
    if ( PINA.0 == 1 ) { 

    } else {

    }


    که واسه این کاری که میخوای بکنی فقط تک بیت کافیه
    چون کم ارزش ترین بیت مشخص کننده ی فرد یا زوج بودن عدد هستش.
    توی مثال بالا اگه وارد if بشیم عددی که روی پورت A هستش فرده اگه وارد else بشیم زوجه.

  4. چهارشنبه 20 آبان 1394, 21:16 عصر

    دلیل
    فاقد محتوا

تاپیک های مشابه

  1. سوال درباره بانک MP3
    نوشته شده توسط هادی کریمی در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: یک شنبه 06 دی 1383, 18:32 عصر
  2. چند سوال درباره ASP.NET
    نوشته شده توسط Majid2003 در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: سه شنبه 15 مهر 1382, 23:34 عصر
  3. سوال درباره نوشتن برنامه فارسی در ویندوز 98
    نوشته شده توسط alikoochooloo در بخش VB.NET
    پاسخ: 15
    آخرین پست: یک شنبه 02 شهریور 1382, 19:49 عصر
  4. یک سوال درباره msagent؟
    نوشته شده توسط khafanovich در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 8
    آخرین پست: جمعه 05 اردیبهشت 1382, 14:41 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •