اطلاعیه

Collapse
No announcement yet.

کمک در مورد یک پروژه کوچک AVR

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

    کمک در مورد یک پروژه کوچک AVR

    باسلام و عرض ادب خدمت اساتید محترم انجمن
    دوستان من شدیدا به یک پروژه خیلی کوچک AVR نیاز دارم. لطفا بنده را یاری نمایید.
    کلیات پروژه این است که:
    بنده می خواهم از طریق یک میکروکنترلر (فرقی نمی کند که Atmega 8 باشه یا 16 یا 32) یک داده را دریافت کنم و از طریق UART داده خاصی را ارسال کنم.
    به زبان ساده تر این می شه که مثلا وقتی داده A را دریافت کردم، داده 1 را بفرسته.
    بریم سراغ جزئیات پروژه:
    بنده یک گیرنده رادیویی با فرکانس 315 مگاهرتز دارم (حالا زیاد مهم نیست.)
    وقتی کلیدی را در فرستنده (ریموت) فشار می دم عدد هگزادسیمالی بصورت زیر برای گیرنده ارسال می*شود.
    2B 52 2C 31 36 38 37 31 2C 32 2C 32 0A 0D
    این عدد را از پایه TX گیرنده می*خونم.
    حال خواسته من این است که میکروکنترلر این عدد را دریافت که کرد از طریق پایه TX عددی مانند عدد زیر را ارسال کنه:
    A1 F1 B9 46 13

    یه همچین چیزی:
    IF RECEIVE (2B 52 2C 31 36 38 37 31 2C 32 2C 32 0A 0D(
    SEND (A1 F1 B9 46 13)
    IF RECEIVE (B)
    SEND (2)
    .
    .
    .
    نکته:
    هر دو عدد (هم دریافتی و هم ارسالی) بصورت HEX باید باشند.

    ممنون می شم کمکم کنید...

    #2
    پاسخ : کمک در مورد یک پروژه کوچک AVR

    نوشته اصلی توسط salaronline نمایش پست ها
    باسلام و عرض ادب خدمت اساتید محترم انجمن
    دوستان من شدیدا به یک پروژه خیلی کوچک AVR نیاز دارم. لطفا بنده را یاری نمایید.
    کلیات پروژه این است که:
    بنده می خواهم از طریق یک میکروکنترلر (فرقی نمی کند که Atmega 8 باشه یا 16 یا 32) یک داده را دریافت کنم و از طریق UART داده خاصی را ارسال کنم.
    به زبان ساده تر این می شه که مثلا وقتی داده A را دریافت کردم، داده 1 را بفرسته.
    بریم سراغ جزئیات پروژه:
    بنده یک گیرنده رادیویی با فرکانس 315 مگاهرتز دارم (حالا زیاد مهم نیست.)
    وقتی کلیدی را در فرستنده (ریموت) فشار می دم عدد هگزادسیمالی بصورت زیر برای گیرنده ارسال می*شود.
    2B 52 2C 31 36 38 37 31 2C 32 2C 32 0A 0D
    این عدد را از پایه TX گیرنده می*خونم.
    حال خواسته من این است که میکروکنترلر این عدد را دریافت که کرد از طریق پایه TX عددی مانند عدد زیر را ارسال کنه:
    A1 F1 B9 46 13

    یه همچین چیزی:
    IF RECEIVE (2B 52 2C 31 36 38 37 31 2C 32 2C 32 0A 0D(
    SEND (A1 F1 B9 46 13)
    IF RECEIVE (B)
    SEND (2)
    .
    .
    .
    نکته:
    هر دو عدد (هم دریافتی و هم ارسالی) بصورت HEX باید باشند.

    ممنون می شم کمکم کنید...
    سلام
    چندتا کد به این صورت هست که باید بجاش چیز دیگه ای ارسال بشه؟
    احتمالا شما باید از وقفه uart استفاده کنید. یعنی با در یافت اولین بایت، یاید منتظر 13 بایت بعدی بمونه؛ همین که 14 بات کامل دریافت شدن، باید برنامه شروع کنه به سنجش داده دریافتی که بجاش چی قراره بفرسته روی tx. البته میشه بدون وقفه هم همین کار رو انجام داد.
    شما بهتره یک آرایه 14 تایی از نوع unsigned char تعریف کنید و مقادیر دریافتی رو روش بریزید. حالا تو قسمت دیگه برنامه باید ببینید این 14 تا بایت چی هستن و بجاش چی باید ارسال بشه.
    حالا من نمیدونم دقیقا کجاش رو مشکل دارید. اگر بیشتر راجع به مشکلتون توضیح بدید، بهتر میشه راهنمایی کرد.

    دیدگاه

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