نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

آموزش جامع میکروکنترلر AVR جلسه۴

به نام خدا

آموزش جامع میکروکنترلر AVR جلسه۴

موضوع این جلسه : تبادل اطلاعات به صورت سریال و موازی

این جلسه و احتمالا دو سه جلسه بعد مربوط به  یه موضوع جالب و شیرین! با عنوان انتقال اطلاعات هستش ، حالا تبادل اطلاعات بین دو (یا چند) میکروکنترلر با هم یا ارتباط میکروکنترلر با PC

آموزش جامع میکروکنترلر AVR جلسه4

آموزش جامع avr

توجه :  اگه مطلب زیر رو خوندید و چیزی نفهمیدید زیاد مهم نیست بعدا و تو پروژه ها به حسابش میرسیم.(روزنامه وار بخونید.)

انواع تبادل اطلاعات

ارسال و دریافت اطلاعات به دو روش کلی انجام می شود:
۱) موازی  ( parallel)
۲) سری (serial)
در روش موازی اطلاعات n بیتی در n خط (پایه) انتقال داده می شود اما در روش سریال اطلاعات می تواند در یک خط یا دو خط ارسال گردد.
پس می توان نتیجه گرفت تبادل اطلاعات به صورت موازی با سرعت بیشتری نسبت به حالت سریال صورت می گیرد اما در فواصل طولانی تر تبادل اطلاعات به صورت موازی هزینه بر است و از طرفی نویز پذیری را بالا می برد و در ضمن یک رشته سیم موازی کنار هم در فواصل طولانی باعث ایجاد یک خازن مجازی شده و مقاومت خود سیم ها نیز بر کیفیت دیتا اثر خواهد داشت و البته پارامترهای دیگری نیز وجود دارد که از ضعف های تبادل اطلاعات به صورت موازی است اما روش سریال انتخاب مناسبی در صرفه جویی در تکنولوژی ساخت تراشه ها و کم کردن خطوط انتقال است.

تبادل (اطلاعات به صورت) موازی :

من خودم تا الان از این روش استفاده نکردم و علتش هم معلومه. pardon
ولی همون طور که در بالا بیان شد (  n بیتی در خط (پایه)   )   میشه نتیجه گرفت که تو این روش مثلا برا تبادل اطلاعات دو میکروکنترلر avr با هم همانند عکس زیر این دو رو به هم وصل میکنیم
و میکروکنترلر ۱ (فرستنده) که مثلا قرار است اطلاعات بفرستد ، PORTC (الزامی ندارد که حتما PORTC باشد ) آن را به صورت خروجی تعریف میکنیم.( چون قرار است اطلاعات ارسال کند.)
و میکروکنترلر ۲ (گیرنده) که مثلا قرار است اطلاعات بگیرد ، PORTC (الزامی ندارد که حتما PORTC باشد ) آن را به صورت ورودی تعریف میکنیم.( چون قرار است اطلاعات دریافت کند.)
حالا اگه مثلا  در میکروکنترلر ۱  ، PORTC.0=1 شود آنگاه در میکروکنترلر ۲ هم  PORTC.0=1 میشود.
میکروکنترلر avr

انواع تبادل سریال

از آنجایی که ارتباط سریال مزایای خوبی دارد انواع مختلفی از پروتکل های سریال ارائه شده است ، لذا می توان به صورت کلی خود تبادل سریال را نیز به دو قسمت تقسیم کرد:
۱) ارسال و دریافت اطلاعات سریال به صورت سنکرون( USRT )
در این روش دیتای مورد نظر بر روی یک خط همراه با یک خط کلاک همزمان کننده ارسال می شود و گیرنده نیز می تواند دیتا را بر روی یک خط توسط کلاک همزمان کننده که از طرف فرستنده ارسال می شود ، دریافت نماید. به طور مثال اطلاعاتی که Keyboard یا Mouse کامپیوتر به خروجی ارسال می کنند به همین روش می باشد.
میکرو کنترلرهای AVR در روش سنکرون می توانند به صورت چند پردازنده ای به شکل Master و Slave  (منظور همون فرستنده گیرنده هستش) کار نمایند.
این ویژگی فقط در بعضی از میکرو کنترلر های AVR حمایت شده است که البته ATmega16 قابلیت تبادل سریال در مد سنکرون را دارد.
۲)  ارسال و دریافت اطلاعات سریال به صورت آسنکرون(  UART )
در این روش دیتای مورد نظر بر روی یک خط ارسال ( TXD ) یا یک خط دریافت( RXD ) منتقل می شود و به همراه دیتا کلاکی ارسال نمی گردد بنابراین به اصطلاح می گوییم فرستنده و گیرنده غیر همزمان عمل می کنند.
پس در چنین روشی باید دیتای مورد نظر با قالب بندی خاصی به صورت بیت به بیت با فواصل زمانی تعریف شده برای فرستنده و گیرنده منتقل شود ، که به این فواصل زمانی در این نوع ارتباط نرخ انتقال داده یا Baud rate گفته می شود.
از کاربردهای مهم این روش می توان به تبادل اطلاعات با کامپیوتر و میکروکنترلر های دیگر و یا تراشه های دیگر اشاره نمود.
به طور مثال می توان ارتباط با ماژول GSM ، ماژول GPS ، ماژول فرستده و گیرنده RF و… را از کاربردهای مهم این روش برشمرد.
۳) ارتباط جانبی سریال ( SPI )
۴) ارتباط سریال دو سیمه ( TWI )

دو روش بالا رو من تا حالا باهاشون کار نکردم و .... mosking
"دو روش بالا+ روش سنکرون" رو هم ما زیاد باهاش کاری نداریم و مطالب آینده مربوط به "ارسال و دریافت اطلاعات سریال به صورت آسنکرون" هستش.
البته یادشون بگیرید بد نیست ولی چون من فعلا قصد ندارم در پروژه هام از "این دو روش + روش سنکرون" استفاده کنم.
لذا توضیحشون هم نمیدم.(البته اگه خواستید میتونید به کتاب " میکروکنترلر های AVR ، نوشته جابر الوندی" مراجعه کنید.)
 
امیدوارد این آموزش avr مفید واقع شده باشه براتون.

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو گوگل میفرماید : إِنَّ اللّه مَعَ الساچِرین ( خداوند با سرچ کنندگان است )
ارسال دیدگاه
67

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    ابراهیم

    سلام ببخشید adc که یک پتانسیومتر بهش وصله چگونه باید ارسال و دریافت کرد

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – مطالب جلسه بعد رو بخون – این جلسه صرفا تفریحی بود! – adc رو میخونی – بعد بکمک یکی از پروتکول های مشترک بین دو میکرو داده رو تبادل میکنی.

      • Avatar

        مهمان

        ابراهیم

        سلام
        میگم من بیسیک کار میکنم میشه این برنامه فرستنده و گیرنده بیسک هم اموزش ش هم بدید

        • مهدی دمیرچیلو

          نویسنده این مطلب

          مهدی دمیرچیلو

          سلام / بیسیک کار نمیکنم / بیسیک رو الله رحمت السی!

  2. Avatar

    مهمان

    تازه کار

    ترجیحا میکرو atmega16 ;D

  3. Avatar

    مهمان

    تازه کار

    سلام میشه آموزش تبادل اطلاعات بین دو میکرو به وسیله بلوتوث رو بذارید لطفا؟؟؟

  4. Avatar

    مهمان

    مهدی

    فقط از خدا میخوام تا جاه دارت پیشرف کنی و پشت یه سری عقده ای هارو بخابونی زمین

  5. Avatar

    مهمان

    Hassan

    سلام داداش فقط یه چیز میتونم بگم
    دمممممممممتتت گرم
    یه سوال:چطوری میشه از یه میکرو مثلا مگا ۸یا۱۶ دوتا txd و rxd داشته باشیم؟؟ مثلا یکی برای RFID یکی هم برای بلوتوث یا..،؟!

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      1- RX رو برا RIFD استفاده کنی و TX رو برا بلوتوث.
      2- حالا شاید بخوای از بلوتوث دیتا هم بگیری – در این حالت بایت ارتباط سریال مجازی ایجاد کنی – بگرد ببین کتابخونش رو پیدا میکنی یا نه – یاد گرفتی بیا به ما هم یاد بده.
      3- از میکرویی استفاده میکنی که 2 تا ارتباط سریال داشته باشه

  6. Avatar

    مهمان

    محمد

    taaaaaaaaaaaaaaaaaaaaaaaanx

  7. Avatar

    مهمان

    مهدی

    میشه در مورد راه اندازی قطعه hc05 برای ارتباط بین دو میکرو بدون سیم توضیح بدید؟؟؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      2 تا hc05 ندارم فقط 1 دونه دارم – پولمو رو هم دارم جمع میکنم تا بدم گوشی بخرم pardon

  8. Avatar

    مهمان

    محمد

    بیسار ممنون.آموزش هاتون عالیه.

  9. Avatar

    مهمان

    مهدی

    سلام و تشکر از سایت خیلی خوبت و ممنون از شیوه بیان عالیت.
    میتونی در مورد “نرخ انتقال داده یا Baud rate ” بیشتر توضیح بدی؟
    کاربردشو کاملا فهمیدم اما مثلا برا یه ic یا از اون مهمتر (برا من)یه ماژول gsm/gps)sim908) باید چه طور تنظیمش کنم
    ممنون

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

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

  10. Avatar

    مهمان

    ا

    جسارتا میشه بپرسم کدوم دانشگاه درس خوندین?

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      یا حضرت عباس laugh
      دانشگوم هنوز تموم نشده
      تو دانشگاه خاتم الانبیا ص خوزستان دارم درس نمیخونم crazy …چرا دروغ بگم….دانشجو هستم ولی درس نمیخونم و همش پای لبتابم laugh

  11. Avatar

    مهمان

    ا

    سلام
    میشه یه آموزش یرای کار با sim900 بذارید

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      فعلا نه – یه سری کار دارم باس انجامشون بدم
      ولی تو سایت های دیگه اموزشش فک کنم باشه

  12. Avatar

    مهمان

    مهدی کریمی

    سلام منم در زمینه فیبر نوری در حال بررسی پروژه هستم ممنون میشم اگ ایشون ک در این زمینه کار میکنند با من هم رد و بدل اطلاعات کنند ممنون میشم
    ایمیل من motahari_19@yahoo.com
    اقای مهدی دمرچیلو لطفا ایمیل منو برای کسی ک در این مورد تحقیق میکنه بفرستید و اطلاع بدید ممنون میشم…

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام، بهش ایمیل دادم
      در صورتی که مایل باشه بهتون ایمیل میده

  13. Avatar

    مهمان

    کیومرث

    واقعا ممنونم به خاطر مظالب بسیار مفید.

  14. Avatar

    مهمان

    maryam

    سلام
    بابت مطالب خوبتون سپاسگزارم..
    واقعا عالی بودن
    ازتون یه راهنمایی میخواستم:
    پروژه ی من راجع به ارسال و دریافت اطلاعات با فیبر نوری هستش
    البته من هنوز درس میکرو برنداشتم..
    از استاد پرسیدم گفتن که اول نحوه ی ارسال اطلاعات به سورت سری رو یاد بگیرم و بعدش ماژول فیبر نوری رو هم میاریم رو برد
    و من در حال حاضر از هرجا هر مطلبی در این مورد پیدا می کنم میخونم ولی واقعا کلافه ام ..
    کلی سوال دارم
    نمیدونم برای فیبر نوری باید ارسال اطلاعات سنکرون باشه یا آسنکرون
    یا اینکه atmega 16 خوبه یا atmega32
    اصلا تفاوت اینها غیر از حافظه در چیه؟!
    ممنون میشم اگر راهنماییم کنید

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      والا من در این زمینه اطلاعاتی ندارم
      اصلا نمیدونم فیبر نوری چی هست laugh
      به نظرم بهتره تو انحمن ECA سوالتون رو مطرح کنید

      • Avatar

        مهمان

        یاسر

        سلام برا کار با فیبر نوری از media convertor استفاده کنید راحته ورودی اترنت خروجی نوری و بلعکس

  15. Avatar

    مهمان

    محمد

    سلام داداش اگه امکانش هست یه توضیح درباره رشته میدی
    این پنجشنبه امتحان دارم جلسه هاشو کامل نرفتم.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      والا توشیح رشته تو کتاب های آموزش برنامه نویسی c++ خوب توضیح داده شده

  16. Avatar

    مهمان

    مهدی

    گفتید نظر بدم منم دارم میدم …….اون بالای مطالب این جلسه نوشتید (جلسه ی 3 ) در صورتی که این جلسه 4 هست

  17. Avatar

    مهمان

    خسرو

    سلام.ماژول فرستنده و گیرنده433ghzدارم پایه dataدرفرستنده و گیرنده رانمیتونم روی رادیو و برد هلیکوپتر نصب کنم هلیگوپتر2کانال مادون قرمزاست اگرراهنمایی کنی ممنونت میشم روی بردهای هلیکوپترهیچ چیز نوشته نشده که جای rxd وtxdراپیداکنم

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام….اسم وسیلتون رو تو گوگل سرچ کنید ترتیب پایه هاش یا یه اطلاعتی دربارش براتون میاد………….

  18. Avatar

    مهمان

    morteza

    سلام
    smile smile smile smile smile smile smile smile smile خیلی عالی بود.
    خوندن adc رو میتونی یه توضیح بدی.
    smile

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      مگه مطلبش نیست تو سایت؟

  19. Avatar

    مهمان

    محمد

    راستی یه چیزی شما روتین سرویس وقفه سریال رو اینطوری نوشتید:
    interrupt[USART_RXC] void USART_RX_Complete(void)
    {
    //dastorat
    }
    ولی من اینطور نوشتم:
    interrupt [USART_RXC] void usart_rx_isr(void)
    {
    //dastorat
    }
    میشه توضیح بدید، تفاوت کلی این ها از چیه؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      اسم تابع وقفه دلخواه هستش…هرچی دوس داری بزار….چیزی که مهمه کد های داخل وقفه و اون متن داخل [] هستش

  20. Avatar

    مهمان

    محمد

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

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      معمولا فک کنم ماژول ها دیتایی که میفرستن یه قانون ثابتی داره…مثلا ۸ بیت هستش….همین طوری فک نکنم خردمبیلی باشه

  21. Avatar

    مهمان

    محمد

    یه پروژه هست که از rfid و ماژول nrf استفاده کردم.
    چون در هر موقع بخوایم برای هردوتاش دستور میاد باید با وقفه باشه.
    فکر کنم مشکل از همون تعداد بود، تست می کنم جواب میدم.
    ولی باید یه طوری باشه که هر رشته ای با هر تعدادی میاد رو درست دریافت کنه.
    الان رشته باید تعداد مشخص باشه وگرنه درست دریافت نمی کنه.

  22. Avatar

    مهمان

    محمد

    خوب اینطوری که نمیشه، توی همه ماژول ها و سیستم ها همه چی، بعد از ارسال یه رشته، اینتر یا همون n\ میاد.
    شما n\ را گذاشتی وسط رشته، بزار آخر رشته، اینطوری:
    puts(“-DMF313-\n”);

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      داش من اگه تعداد بیت دریافتی و ارسالی برابر نباشه مشکل پیش میاد…..لذا شما باید یه کاراکتر از کاراکتر های ارسالی رو کم کنی تا بشه ۸ تا کاراکتر….الان ۹ تا کاراکتر هستش

      • مهدی دمرچیلو

        نویسنده این مطلب

        مهدی دمرچیلو

        من کد زیر رو تست کردم مشکلی نبود
        puts("DMF_313n");
        میگم حالا چه پروژه ای داری میبندی؟؟؟؟؟؟
        ارتباط سریال رو برا چه پروژه ای میخوای؟؟؟؟
        پروژت چیه؟؟؟

  23. Avatar

    مهمان

    محمد

    خوب اینم مشکل داره.
    شما آخر دستوری که میفرستید یه n\ بزارید ببینید چطور میشه.
    یعنی اینطوری بفرستید:
    puts(“-DMF313-\n”);
    الان اینطوری تست کنید مشکل منو میفهمید.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      تست میکنم خبر میدم

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      خو مشکلی نداره که…کدت رو باس این طور بنویسی داداش
      putchar(10);puts("0000000");
      اول میره خط بعد و بعد ۷ تا ۰ ارسال میکنه
      الان تست کردم مشکلی نداشت

      • مهدی دمرچیلو

        نویسنده این مطلب

        مهدی دمرچیلو

        این رو هم تست کردم مشکلی نداشت که…
        puts("DMFn_313");
        unknw unknw unknw unknw unknw unknw

  24. Avatar

    نویسنده سایت

    amir021

    سلام دوباره دادا این کتاب جابر الوندی ص 81 تا 85 در باره کتاب خانه ها صحبت کرده می تونی یکم خلاصه و قابل فهم تر و دلیل استفاده از اینا رو به وب سایتت اضافه کنی sorry

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      کتاب خونه ctype رو که فعلا ولش کن
      کتابخونه stdlib : تبدیل انواع متغییر به هم//////مثلا اگه بخوای متغییر از نوع int رو تو lcd نشون بدی ابتدا باید متغییر رو به char تبدیل کنی که این کار توسط توابع این کتاب خونه انجام میشه و بعد شما میتونید متغییر فوق رو تو lcd نشون بدی(یه دلیل استفاده از کتابخونه)
      کتابخونه Math و delay: هم که معلومه چیه…
      string : این هم فعلا بیخیالش بشو…زیاد بکارت نمیاد. bcd هم همینطور
      ====================================================
      شما که میگید یه مطلب دربارش بنویسید….مثلا من جی بنویسم؟؟؟؟
      راسش نمیدونم چی درباره کتابخونه بنویسم……فک نکنم چیزی برا نوشتن باشه….
      شما دقیقا بگید من چی بنویسم تا بنویسم

  25. Avatar

    نویسنده سایت

    amir021

    ممنون راستی برای تولید موج (مربعی سینوسی ووو ….) باید چکار کنم برنامش چه جوری نوشته میشه
    , اگه میشه برای PWM و ADC (اندازه گیری ولتاژ ) برای مبتدیان آموزش بزارید مطالب سایت میخونم هیچی نمیفهمم
    من برنامه نویسی رو دو ماه شروع کردم به خوندم
    اگه میشه یک ترتیب به ما بگو ما بخونیم تا از این سردرگومی در بیایم dash

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      برا مربعی که در زیر میگم ولی برا سینوسی بحث یکم فرق داره که کاری نداریم فعلا
      ==========
      آموزش AVR گزاشتم که…اینا رو هم توضیح دادم…..
      http://dmf313.ir/category/electronics/learning-avr/training-avr/
      اینا رو خوندید؟؟؟؟
      کجاش رو متوجه نشدی.؟؟؟
      بگو تا توضیح بدم…

  26. مهدی دمرچیلو

    نویسنده این مطلب

    مهدی دمرچیلو
  27. Avatar

    مهمان

    محمد

    سلانی دوباره استاد
    برنامه ما چی شد؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      دیشب رفتم جایی …امروز هم کلاس دارم…الان زمان استراحت بین دو کلاس هستش که استاد داده…..بعد اتمام کلاسم میام سراغش……ساعت ۳ احتمالا تموم میشه
      نوشتم میزارم همین جا

  28. Avatar

    نویسنده سایت

    amir021

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

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      الان من چطور راهنمایی کنم آخه
      حد اقل کد های پروژه رو بفرست…zip

  29. Avatar

    مهمان

    محمد

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

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      ok
      مینویسم میزارم تو سایت..همینجا

  30. Avatar

    مهمان

    محمد

    ممنون از این که جواب دادید.
    اونجا هم الان نوشتم:
    http://www.eca.ir/forum2/index.php?topic=107643.0
    شما نمونه برنامه ای برای ارتباط سریال با وقفه دارید، که رشته رو دریافت کنه؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      نه…. sorry
      چقدر تنبل شدم من… shout
      حتی حوصلم نمیشه یه پروژه تست کنم و جواب دوستم رو بدم….. dash
      نمازم رو بخونم بیام ی پروژه بنویسم….فقط کامل توضیح بده که میخوام پروژش رو خودم یه بار انجام بدم(و بعد میدم بهت خودت مقایسه کن با پروژه خودت)…..

  31. Avatar

    مهمان

    محمد

    سلام و خسته نباشید
    من میخوام از وقفه در ارتباط سریال استفاده کنم.
    اما اینجا یه مشکلی دارم، توی تابع وقفه کد زیر رو گذاشتم که بافر رو بخونم، اما دیتاها مشکل دارن.
    for (int s=0;s<rx_wr_index;s++)str[s]=rx_buffer[s];
    میکرویی که دیتا ارسال می کنه بعد از هر ارسال یه \n میفرسته، حالا من بافر رو میخونم این \n هم اعمال میشه و توی ال سی دی یه خط میره پایین، اومدم دوباره نوشتم اگه به /0 که انتهای رشته است رسیدی دیگه چیزی تو متغییر نزار.
    این بار در دریافت اول درسته، اما در ارسال دوم T اون دیتاهایی رو که از بافر نخوندم میاره اول دریافت دوم میزاره، یعنی دریافت دومم شامل اول \n و بعدش کدی که دریافت کردم.
    ممنون میشم کمک کنید.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      چی بگم والا….تو eca مطرح کن

  32. Avatar

    مهمان

    fereshte

    سلام.خسته نباشید
    من میخواستم بدونم بهترین منبع واسه یادگیری avr چه کتابیه که پروژه های حل شده زیاد داشته باشه؟
    الوندی رو دارم ولی کامل نیس

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      والا نمیدونم…
      تو سایت زیر کلمه “avr” رو سرچ کنید….ببینید کتابی فقط مخصوص پروژه avr چیزی پیدا میشه یا نه….احتمالا یه چند تا کتابی باشه….
      http://ketab.ir/

  33. Avatar

    نویسنده سایت

    amir021

    خیلی منون خیلی بدردم خورد اخه یک وبلاگ درست کردم
    هر برنامه ای که خودم توانایی درست کردنشو داشته باشم رو توش می نویسم
    همین امروز درست کردم laugh
    من در حد ابتدایی از برنامه نویسی می دونم
    می خواستم بدونم اگه جایی به مشکل بر خوردم می تونم از شما کمک بگیرم dash

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      آره

  34. Avatar

    نویسنده سایت

    amir021

    سلام خسته نباشید یک سوال داشتم
    اگه خواسته باشیم یک پایه میکرو نات کنیم باید چکار کنیم
    مثلا این جوری درسته if(PINB.0==1)PORTB.1=!;
    چه جوری باید نات کنم

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      کد زیر نات پایه بی۰ رو میده به بی۰
      PORTB.0=!PORTB.0;
      ok?

  35. Avatar

    مهمان

    سید محمد

    کتاب جابر این مباحثو اصلا مفهومی توضیح نداده dash
    کتاب مرجع سپاسیار رو بخونید rtfm

  36. Avatar

    مهمان

    هادی مظفری

    داداش کلا دمت گرم امروز توکلاس avr از USART گفتن هیچی نفهمیدم .دست درد نکنه شیر فهم شدم