به نام خدا
آموزش جامع میکروکنترلر AVR جلسه۴
موضوع این جلسه : تبادل اطلاعات به صورت سریال و موازی
این جلسه و احتمالا دو سه جلسه بعد مربوط به یه موضوع جالب و شیرین! با عنوان انتقال اطلاعات هستش ، حالا تبادل اطلاعات بین دو (یا چند) میکروکنترلر با هم یا ارتباط میکروکنترلر با PC
توجه : اگه مطلب زیر رو خوندید و چیزی نفهمیدید زیاد مهم نیست بعدا و تو پروژه ها به حسابش میرسیم.(روزنامه وار بخونید.)
انواع تبادل اطلاعات
ارسال و دریافت اطلاعات به دو روش کلی انجام می شود:
۱) موازی ( parallel)
۲) سری (serial)
در روش موازی اطلاعات n بیتی در n خط (پایه) انتقال داده می شود اما در روش سریال اطلاعات می تواند در یک خط یا دو خط ارسال گردد.
پس می توان نتیجه گرفت تبادل اطلاعات به صورت موازی با سرعت بیشتری نسبت به حالت سریال صورت می گیرد اما در فواصل طولانی تر تبادل اطلاعات به صورت موازی هزینه بر است و از طرفی نویز پذیری را بالا می برد و در ضمن یک رشته سیم موازی کنار هم در فواصل طولانی باعث ایجاد یک خازن مجازی شده و مقاومت خود سیم ها نیز بر کیفیت دیتا اثر خواهد داشت و البته پارامترهای دیگری نیز وجود دارد که از ضعف های تبادل اطلاعات به صورت موازی است اما روش سریال انتخاب مناسبی در صرفه جویی در تکنولوژی ساخت تراشه ها و کم کردن خطوط انتقال است.
تبادل (اطلاعات به صورت) موازی :
من خودم تا الان از این روش استفاده نکردم و علتش هم معلومه.
ولی همون طور که در بالا بیان شد ( n بیتی در n خط (پایه) ) میشه نتیجه گرفت که تو این روش مثلا برا تبادل اطلاعات دو میکروکنترلر avr با هم همانند عکس زیر این دو رو به هم وصل میکنیم
و میکروکنترلر ۱ (فرستنده) که مثلا قرار است اطلاعات بفرستد ، PORTC (الزامی ندارد که حتما PORTC باشد ) آن را به صورت خروجی تعریف میکنیم.( چون قرار است اطلاعات ارسال کند.)
و میکروکنترلر ۲ (گیرنده) که مثلا قرار است اطلاعات بگیرد ، PORTC (الزامی ندارد که حتما PORTC باشد ) آن را به صورت ورودی تعریف میکنیم.( چون قرار است اطلاعات دریافت کند.)
حالا اگه مثلا در میکروکنترلر ۱ ، PORTC.0=1 شود آنگاه در میکروکنترلر ۲ هم PORTC.0=1 میشود.
انواع تبادل سریال
از آنجایی که ارتباط سریال مزایای خوبی دارد انواع مختلفی از پروتکل های سریال ارائه شده است ، لذا می توان به صورت کلی خود تبادل سریال را نیز به دو قسمت تقسیم کرد:
۱) ارسال و دریافت اطلاعات سریال به صورت سنکرون( USRT )
در این روش دیتای مورد نظر بر روی یک خط همراه با یک خط کلاک همزمان کننده ارسال می شود و گیرنده نیز می تواند دیتا را بر روی یک خط توسط کلاک همزمان کننده که از طرف فرستنده ارسال می شود ، دریافت نماید. به طور مثال اطلاعاتی که Keyboard یا Mouse کامپیوتر به خروجی ارسال می کنند به همین روش می باشد.
میکرو کنترلرهای AVR در روش سنکرون می توانند به صورت چند پردازنده ای به شکل Master و Slave (منظور همون فرستنده گیرنده هستش) کار نمایند.
این ویژگی فقط در بعضی از میکرو کنترلر های AVR حمایت شده است که البته ATmega16 قابلیت تبادل سریال در مد سنکرون را دارد.
۲) ارسال و دریافت اطلاعات سریال به صورت آسنکرون( UART )
در این روش دیتای مورد نظر بر روی یک خط ارسال ( TXD ) یا یک خط دریافت( RXD ) منتقل می شود و به همراه دیتا کلاکی ارسال نمی گردد بنابراین به اصطلاح می گوییم فرستنده و گیرنده غیر همزمان عمل می کنند.
پس در چنین روشی باید دیتای مورد نظر با قالب بندی خاصی به صورت بیت به بیت با فواصل زمانی تعریف شده برای فرستنده و گیرنده منتقل شود ، که به این فواصل زمانی در این نوع ارتباط نرخ انتقال داده یا Baud rate گفته می شود.
از کاربردهای مهم این روش می توان به تبادل اطلاعات با کامپیوتر و میکروکنترلر های دیگر و یا تراشه های دیگر اشاره نمود.
به طور مثال می توان ارتباط با ماژول GSM ، ماژول GPS ، ماژول فرستده و گیرنده RF و… را از کاربردهای مهم این روش برشمرد.
۳) ارتباط جانبی سریال ( SPI )
۴) ارتباط سریال دو سیمه ( TWI )
"دو روش بالا+ روش سنکرون" رو هم ما زیاد باهاش کاری نداریم و مطالب آینده مربوط به "ارسال و دریافت اطلاعات سریال به صورت آسنکرون" هستش.
البته یادشون بگیرید بد نیست ولی چون من فعلا قصد ندارم در پروژه هام از "این دو روش + روش سنکرون" استفاده کنم.
لذا توضیحشون هم نمیدم.(البته اگه خواستید میتونید به کتاب " میکروکنترلر های AVR ، نوشته جابر الوندی" مراجعه کنید.)
امیدوارد این آموزش avr مفید واقع شده باشه براتون.
مهمان
سلام ، نوشته بعدی رو چطور پیدا کنم؟
مهمان
سلام اقا مهدی خسته نباشی یه سوال دارم ازت بر نامه نویسی تو اردینو مثل سی پلاس پلاس کامله چه تفاوتی وجود داره منظورم اینه باید کل سی پلاس پلاس رو یاد بگیرم تا تو اردینو حرفه ای بشم ممنون
نویسنده این مطلب
سلام / بایدی وجود نداره ولی خب هر چی بیشتر زبون برنامه نویسیتو قوی تر کنی، تو کدنویسی کارت راحت تر، در زمان انجام پروژه هات هم صرفه جویی میکنی!
میتونی با 1 ساعت مطالعه cpp بگی من کدنویس آردوینو به زبان cpp هستم! – میتونی با یکسال مطالعه…
مهمان
خدا قوت مهندس
فکر کنم به جای مورد دو در بخش تبادل سریال ها اسنکرون usart درست باشه نه uart
نویسنده این مطلب
تا جایی که یادمه این بود – بعضی میکرو ها واحد usart دارند – یعنی واحد سنکرون و آسنکرون سریال دارن – که تشکیل شده از UART و USRT هستش – بخش UART آموزشش تو همه جا هستش و فراگیر هستش – بخش USRT مربوطه به ارتباط چندتا دستگاه با هم از طریق سریال – که تو ارات فک کنم یه آموزش براش گزاشته باشم – ندیدم تو نت زیاد ازش استفاده بشه و یا بهش پرداخته بشه.
مهمان
سلام ببخشید adc که یک پتانسیومتر بهش وصله چگونه باید ارسال و دریافت کرد
نویسنده این مطلب
سلام – مطالب جلسه بعد رو بخون – این جلسه صرفا تفریحی بود! – adc رو میخونی – بعد بکمک یکی از پروتکول های مشترک بین دو میکرو داده رو تبادل میکنی.
مهمان
سلام
میگم من بیسیک کار میکنم میشه این برنامه فرستنده و گیرنده بیسک هم اموزش ش هم بدید
نویسنده این مطلب
سلام / بیسیک کار نمیکنم / بیسیک رو الله رحمت السی!
مهمان
ترجیحا میکرو atmega16 ;D
مهمان
سلام میشه آموزش تبادل اطلاعات بین دو میکرو به وسیله بلوتوث رو بذارید لطفا؟؟؟
مهمان
فقط از خدا میخوام تا جاه دارت پیشرف کنی و پشت یه سری عقده ای هارو بخابونی زمین
مهمان
سلام داداش فقط یه چیز میتونم بگم
دمممممممممتتت گرم
یه سوال:چطوری میشه از یه میکرو مثلا مگا ۸یا۱۶ دوتا txd و rxd داشته باشیم؟؟ مثلا یکی برای RFID یکی هم برای بلوتوث یا..،؟!
نویسنده این مطلب
سلام
1- RX رو برا RIFD استفاده کنی و TX رو برا بلوتوث.
2- حالا شاید بخوای از بلوتوث دیتا هم بگیری – در این حالت بایت ارتباط سریال مجازی ایجاد کنی – بگرد ببین کتابخونش رو پیدا میکنی یا نه – یاد گرفتی بیا به ما هم یاد بده.
3- از میکرویی استفاده میکنی که 2 تا ارتباط سریال داشته باشه
مهمان
taaaaaaaaaaaaaaaaaaaaaaaanx
مهمان
میشه در مورد راه اندازی قطعه hc05 برای ارتباط بین دو میکرو بدون سیم توضیح بدید؟؟؟
نویسنده این مطلب
2 تا hc05 ندارم فقط 1 دونه دارم – پولمو رو هم دارم جمع میکنم تا بدم گوشی بخرم
مهمان
بیسار ممنون.آموزش هاتون عالیه.
مهمان
سلام و تشکر از سایت خیلی خوبت و ممنون از شیوه بیان عالیت.
میتونی در مورد “نرخ انتقال داده یا Baud rate ” بیشتر توضیح بدی؟
کاربردشو کاملا فهمیدم اما مثلا برا یه ic یا از اون مهمتر (برا من)یه ماژول gsm/gps)sim908) باید چه طور تنظیمش کنم
ممنون
نویسنده این مطلب
سلام
هر چیزی با هر چیز دیگه ای بخواد از طریق یوزارت ارتباط برقرار کنه باید BR هاشون یکسان باشه….حالا بعضی قطعات BR ثابت هستش و بعضی رو میشه تغییر داد، بعضی یه حالت پیشرفض با قابلیت تغییر دارن و…
معنی دقیق باود ریت رو هم نمیدونم.
مهمان
جسارتا میشه بپرسم کدوم دانشگاه درس خوندین?
نویسنده این مطلب
یا حضرت عباس
…چرا دروغ بگم….دانشجو هستم ولی درس نمیخونم و همش پای لبتابم 
دانشگوم هنوز تموم نشده
تو دانشگاه خاتم الانبیا ص خوزستان دارم درس نمیخونم
مهمان
سلام
میشه یه آموزش یرای کار با sim900 بذارید
نویسنده این مطلب
سلام
فعلا نه – یه سری کار دارم باس انجامشون بدم
ولی تو سایت های دیگه اموزشش فک کنم باشه
مهمان
سلام منم در زمینه فیبر نوری در حال بررسی پروژه هستم ممنون میشم اگ ایشون ک در این زمینه کار میکنند با من هم رد و بدل اطلاعات کنند ممنون میشم
ایمیل من motahari_19@yahoo.com
اقای مهدی دمرچیلو لطفا ایمیل منو برای کسی ک در این مورد تحقیق میکنه بفرستید و اطلاع بدید ممنون میشم…
نویسنده این مطلب
سلام، بهش ایمیل دادم
در صورتی که مایل باشه بهتون ایمیل میده
مهمان
واقعا ممنونم به خاطر مظالب بسیار مفید.
مهمان
سلام
بابت مطالب خوبتون سپاسگزارم..
واقعا عالی بودن
ازتون یه راهنمایی میخواستم:
پروژه ی من راجع به ارسال و دریافت اطلاعات با فیبر نوری هستش
البته من هنوز درس میکرو برنداشتم..
از استاد پرسیدم گفتن که اول نحوه ی ارسال اطلاعات به سورت سری رو یاد بگیرم و بعدش ماژول فیبر نوری رو هم میاریم رو برد
و من در حال حاضر از هرجا هر مطلبی در این مورد پیدا می کنم میخونم ولی واقعا کلافه ام ..
کلی سوال دارم
نمیدونم برای فیبر نوری باید ارسال اطلاعات سنکرون باشه یا آسنکرون
یا اینکه atmega 16 خوبه یا atmega32
اصلا تفاوت اینها غیر از حافظه در چیه؟!
ممنون میشم اگر راهنماییم کنید
نویسنده این مطلب
سلام
والا من در این زمینه اطلاعاتی ندارم
اصلا نمیدونم فیبر نوری چی هست
به نظرم بهتره تو انحمن ECA سوالتون رو مطرح کنید
مهمان
سلام برا کار با فیبر نوری از media convertor استفاده کنید راحته ورودی اترنت خروجی نوری و بلعکس
مهمان
سلام داداش اگه امکانش هست یه توضیح درباره رشته میدی
این پنجشنبه امتحان دارم جلسه هاشو کامل نرفتم.
نویسنده این مطلب
سلام
والا توشیح رشته تو کتاب های آموزش برنامه نویسی c++ خوب توضیح داده شده
مهمان
گفتید نظر بدم منم دارم میدم …….اون بالای مطالب این جلسه نوشتید (جلسه ی 3 ) در صورتی که این جلسه 4 هست
مهمان
سلام.ماژول فرستنده و گیرنده433ghzدارم پایه dataدرفرستنده و گیرنده رانمیتونم روی رادیو و برد هلیکوپتر نصب کنم هلیگوپتر2کانال مادون قرمزاست اگرراهنمایی کنی ممنونت میشم روی بردهای هلیکوپترهیچ چیز نوشته نشده که جای rxd وtxdراپیداکنم
نویسنده این مطلب
سلام….اسم وسیلتون رو تو گوگل سرچ کنید ترتیب پایه هاش یا یه اطلاعتی دربارش براتون میاد………….
مهمان
سلام
خیلی عالی بود.

خوندن adc رو میتونی یه توضیح بدی.
نویسنده این مطلب
سلام
مگه مطلبش نیست تو سایت؟
مهمان
راستی یه چیزی شما روتین سرویس وقفه سریال رو اینطوری نوشتید:
interrupt[USART_RXC] void USART_RX_Complete(void)
{
//dastorat
}
ولی من اینطور نوشتم:
interrupt [USART_RXC] void usart_rx_isr(void)
{
//dastorat
}
میشه توضیح بدید، تفاوت کلی این ها از چیه؟
نویسنده این مطلب
اسم تابع وقفه دلخواه هستش…هرچی دوس داری بزار….چیزی که مهمه کد های داخل وقفه و اون متن داخل [] هستش
مهمان
مشکل از همون تعداد بود، الان درسته، ولی باید یه طوری نوشت که هر رشته ای با هر تعدادی رو گرفت درست کار کنه.
روی اونم کار می کنم، تموم شد خبر میدم.
نویسنده این مطلب
معمولا فک کنم ماژول ها دیتایی که میفرستن یه قانون ثابتی داره…مثلا ۸ بیت هستش….همین طوری فک نکنم خردمبیلی باشه
مهمان
یه پروژه هست که از rfid و ماژول nrf استفاده کردم.
چون در هر موقع بخوایم برای هردوتاش دستور میاد باید با وقفه باشه.
فکر کنم مشکل از همون تعداد بود، تست می کنم جواب میدم.
ولی باید یه طوری باشه که هر رشته ای با هر تعدادی میاد رو درست دریافت کنه.
الان رشته باید تعداد مشخص باشه وگرنه درست دریافت نمی کنه.
مهمان
خوب اینطوری که نمیشه، توی همه ماژول ها و سیستم ها همه چی، بعد از ارسال یه رشته، اینتر یا همون n\ میاد.
شما n\ را گذاشتی وسط رشته، بزار آخر رشته، اینطوری:
puts(“-DMF313-\n”);
نویسنده این مطلب
داش من اگه تعداد بیت دریافتی و ارسالی برابر نباشه مشکل پیش میاد…..لذا شما باید یه کاراکتر از کاراکتر های ارسالی رو کم کنی تا بشه ۸ تا کاراکتر….الان ۹ تا کاراکتر هستش
نویسنده این مطلب
من کد زیر رو تست کردم مشکلی نبود
puts("DMF_313n");
میگم حالا چه پروژه ای داری میبندی؟؟؟؟؟؟
ارتباط سریال رو برا چه پروژه ای میخوای؟؟؟؟
پروژت چیه؟؟؟
مهمان
خوب اینم مشکل داره.
شما آخر دستوری که میفرستید یه n\ بزارید ببینید چطور میشه.
یعنی اینطوری بفرستید:
puts(“-DMF313-\n”);
الان اینطوری تست کنید مشکل منو میفهمید.
نویسنده این مطلب
تست میکنم خبر میدم
نویسنده این مطلب
خو مشکلی نداره که…کدت رو باس این طور بنویسی داداش
putchar(10);puts("0000000");
اول میره خط بعد و بعد ۷ تا ۰ ارسال میکنه
الان تست کردم مشکلی نداشت
نویسنده این مطلب
این رو هم تست کردم مشکلی نداشت که…

puts("DMFn_313");
نویسنده سایت
سلام دوباره دادا این کتاب جابر الوندی ص 81 تا 85 در باره کتاب خانه ها صحبت کرده می تونی یکم خلاصه و قابل فهم تر و دلیل استفاده از اینا رو به وب سایتت اضافه کنی
نویسنده این مطلب
سلام
کتاب خونه ctype رو که فعلا ولش کن
کتابخونه stdlib : تبدیل انواع متغییر به هم//////مثلا اگه بخوای متغییر از نوع int رو تو lcd نشون بدی ابتدا باید متغییر رو به char تبدیل کنی که این کار توسط توابع این کتاب خونه انجام میشه و بعد شما میتونید متغییر فوق رو تو lcd نشون بدی(یه دلیل استفاده از کتابخونه)
کتابخونه Math و delay: هم که معلومه چیه…
string : این هم فعلا بیخیالش بشو…زیاد بکارت نمیاد. bcd هم همینطور
====================================================
شما که میگید یه مطلب دربارش بنویسید….مثلا من جی بنویسم؟؟؟؟
راسش نمیدونم چی درباره کتابخونه بنویسم……فک نکنم چیزی برا نوشتن باشه….
شما دقیقا بگید من چی بنویسم تا بنویسم
نویسنده سایت
ممنون راستی برای تولید موج (مربعی سینوسی ووو ….) باید چکار کنم برنامش چه جوری نوشته میشه
, اگه میشه برای PWM و ADC (اندازه گیری ولتاژ ) برای مبتدیان آموزش بزارید مطالب سایت میخونم هیچی نمیفهمم
من برنامه نویسی رو دو ماه شروع کردم به خوندم
اگه میشه یک ترتیب به ما بگو ما بخونیم تا از این سردرگومی در بیایم
نویسنده این مطلب
برا مربعی که در زیر میگم ولی برا سینوسی بحث یکم فرق داره که کاری نداریم فعلا
==========
آموزش AVR گزاشتم که…اینا رو هم توضیح دادم…..
https://dmf313.ir/category/electronics/learning-avr/training-avr/
اینا رو خوندید؟؟؟؟
کجاش رو متوجه نشدی.؟؟؟
بگو تا توضیح بدم…
نویسنده این مطلب
یه مطلب نوشتم قبلا در این باره
https://dmf313.ir/led-%D8%A8%D8%A7-%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D8%B3%D8%B1%D8%B9%D8%AA-%DA%86%D8%B4%D9%85%DA%A9-%D8%B2%D8%AF%D9%86/
فعلا اینو ببین تا من….
مهمان
سلانی دوباره استاد
برنامه ما چی شد؟
نویسنده این مطلب
دیشب رفتم جایی …امروز هم کلاس دارم…الان زمان استراحت بین دو کلاس هستش که استاد داده…..بعد اتمام کلاسم میام سراغش……ساعت ۳ احتمالا تموم میشه
نوشتم میزارم همین جا
نویسنده سایت
سلام خسته نباشید
یک سوال داشتم یک برنامه می خوام بنویسم اما با مشکل برخوردم
برنامه به این صورته که سرعت چشمک زدن یک ال ای دی رو با دو کلید کم و زیاد کنم
من می خوام این کار هم زمان انجام بشه یعنی موقعی که من کلید افزایش رو فشار دادم زمان چشمک زدن افزایش پیدا کنه مشکل من اینجاست زمانی که برنامه به خط دیلای میرسه دیگه ورودی قبول نمیکه الان من چکار کنم
نویسنده این مطلب
سلام
الان من چطور راهنمایی کنم آخه
حد اقل کد های پروژه رو بفرست…zip
مهمان
شما سالاری
میکروی اول یه رشته میفرسته که آخر رشته یه اینتر اضافه هم هست.
من فقط میخوام رشته دریافتی رو توی یه آرایه داشته باشم و بقیه کارامو باهاش بکنم.
البته به صورت وقفه دریافتش کنم، به صورت سرکشی به دردم نمیخوره.
فقط برای توضیح بگم که از خیلی چیز ها استفاده کردم و هر دفعه ییه گیری داشت، توی اون لینکی هم که گداشتم گفتم چی شده.
الته یه چیز دیگه هم بگم، اینتر رو هم حذف کردم بازم نشد، کلا به صورت صحیح نتونستم با این وقفه سریال کار کنم.
یه چیز جالب هم بگم اولین بار رشته درست میاد، بعد ناقص میاد تا این که 10 بار دریافت کنم، دریافت دهم باز رشته درست اومده.
فکر کنم تا بعد شدن RX_BUFFER_SIZE شروع دوباره نوشتن در اون، و فقط برای بار اول داده درست دریافت می کنم.
خلاصه هر راه منطقی و غیر منطقی رو رفتم.
شما فقط یه پروژه بنویس که یه رشته رو از طریق وقفه سریال دریافت بکنه.
نویسنده این مطلب
ok
مینویسم میزارم تو سایت..همینجا
مهمان
ممنون از این که جواب دادید.
اونجا هم الان نوشتم:
http://www.eca.ir/forum2/index.php?topic=107643.0
شما نمونه برنامه ای برای ارتباط سریال با وقفه دارید، که رشته رو دریافت کنه؟
نویسنده این مطلب
نه….


چقدر تنبل شدم من…
حتی حوصلم نمیشه یه پروژه تست کنم و جواب دوستم رو بدم…..
نمازم رو بخونم بیام ی پروژه بنویسم….فقط کامل توضیح بده که میخوام پروژش رو خودم یه بار انجام بدم(و بعد میدم بهت خودت مقایسه کن با پروژه خودت)…..
مهمان
سلام و خسته نباشید
من میخوام از وقفه در ارتباط سریال استفاده کنم.
اما اینجا یه مشکلی دارم، توی تابع وقفه کد زیر رو گذاشتم که بافر رو بخونم، اما دیتاها مشکل دارن.
for (int s=0;s<rx_wr_index;s++)str[s]=rx_buffer[s];
میکرویی که دیتا ارسال می کنه بعد از هر ارسال یه \n میفرسته، حالا من بافر رو میخونم این \n هم اعمال میشه و توی ال سی دی یه خط میره پایین، اومدم دوباره نوشتم اگه به /0 که انتهای رشته است رسیدی دیگه چیزی تو متغییر نزار.
این بار در دریافت اول درسته، اما در ارسال دوم T اون دیتاهایی رو که از بافر نخوندم میاره اول دریافت دوم میزاره، یعنی دریافت دومم شامل اول \n و بعدش کدی که دریافت کردم.
ممنون میشم کمک کنید.
نویسنده این مطلب
سلام
چی بگم والا….تو eca مطرح کن
مهمان
سلام.خسته نباشید
من میخواستم بدونم بهترین منبع واسه یادگیری avr چه کتابیه که پروژه های حل شده زیاد داشته باشه؟
الوندی رو دارم ولی کامل نیس
نویسنده این مطلب
سلام
والا نمیدونم…
تو سایت زیر کلمه “avr” رو سرچ کنید….ببینید کتابی فقط مخصوص پروژه avr چیزی پیدا میشه یا نه….احتمالا یه چند تا کتابی باشه….
http://ketab.ir/
نویسنده سایت
خیلی منون خیلی بدردم خورد اخه یک وبلاگ درست کردم

هر برنامه ای که خودم توانایی درست کردنشو داشته باشم رو توش می نویسم
همین امروز درست کردم
من در حد ابتدایی از برنامه نویسی می دونم
می خواستم بدونم اگه جایی به مشکل بر خوردم می تونم از شما کمک بگیرم
نویسنده این مطلب
آره
نویسنده سایت
سلام خسته نباشید یک سوال داشتم
اگه خواسته باشیم یک پایه میکرو نات کنیم باید چکار کنیم
مثلا این جوری درسته if(PINB.0==1)PORTB.1=!;
چه جوری باید نات کنم
نویسنده این مطلب
سلام
کد زیر نات پایه بی۰ رو میده به بی۰
PORTB.0=!PORTB.0;
ok?
مهمان
کتاب جابر این مباحثو اصلا مفهومی توضیح نداده

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