راه اندازی ADC در AVR و LCD گرافیکی KS0108

توسط | 19 آذر, 1398 | AVR, میکروکنترلر, وبلاگ | 4 دیدگاه ها

راه-اندازی-adc-avr

آموزش AVR یوبرد

شاهکار 8بیتی اتمل

آموزش های رایگان AVR

فیلم های آموزش AVR

آموزش خصوصی AVR

اخبار جدید یوبرد در اینستاگرام

راه اندازی ADC در AVR یکی از مهمترین مباحث یادگیری کار با این میکروکنترلرهاست. در اغلب میکروکنترلرهای AVR یک واحد ADC وجود دارد که رزولوشن آن 10 بیتی است. همچنین این واحد دارای تعدادی کانال ورودی است و می تواند تعدادی سیگنال آنالوگ را به عنوان ورودی بپذیرد. تبدیل آنالوگ به دیجیتال در این میکروکنترلرها، به روش تقریب متوالی است. در این نوشته با به کارگیری نرم افزار Atmel Studio، به راه اندازی رجیستری ADC در AVR می پردازیم. همچنین نتیجه را در LCD گرافیکی KS0108 نمایش می دهیم. خواهیم دید که بخشی از پروژۀ این نوشته، مربوط به راه اندازی LCD گرافیکی KS0108 با AVR است. راه اندازی فتوسل (LDR) و سنسور LM35 با AVR نیز بخش های دیگر پروژۀ انجام شده برای این نوشته هستند. برنامه ای که در این نوشته بررسی خواهد شد، برای استفاده از چند کانال ADC در AVR است. خواندن از چند کانال ADC با راه اندازی ADC در کدویژن و استفاده از کدویزارد، به راحتی قابل انجام است. در ادامه می بینیم که چگونه با وقفۀ ADC، این امر در اتمل استودیو نیز به آسانی انجام می شود. برای اطلاعات بیشتر دربارۀ واحد ADC این میکروکنترلرها، می توانید به نوشتۀ ADC در AVR مراجعه نمایید.

راه اندازی ADC در STM32         (فیلم آموزش ARM STM32 مقدماتی)

راه اندازی ADC در آردوینو           (فیلم آموزش آردوینو مقدماتی)

راه-اندازی-ks0108

تصویر 1 – راه اندازی ADC و LCD گرافیکی KS0108 در AVR

راه اندازی LCD گرافیکی KS0108 با AVR

در این نوشته برای راه اندازی KS0108 در اتمل استودیو از کتابخانه ای با نام GlcdKs0108.h استفاده می کنیم. برای تنظیم پایه های میکروکنترلر، متغیرهای DB0 تا CS2 را مقداردهی می کنیم. مقداردهی زیر، مطابق پایه های اختصاص داده شده به LCD گرافیکی در برد توسعۀ ATmega64Pin یوبرد است.

char _DB0=PA_7, _DB1=PA_6, _DB2=PG_0, _DB3=PC_1, _DB4=PC_3, _DB5=PA_5, _DB6=PA_4, _DB7=PA_3, _DI_RS=PC_6, _RW=PC_7, _EN=PG_2, _CS1=PB_5, _CS2=PB_4;

در این کتابخانه چندین تابع وجود دارد. توابعی که در این نوشته از آنها بهره برده ایم، عبارتند از:

void glcd_on(void);
void glcd_clear(void);
void glcd_puts(uchar *c, int x, int y, uchar l, uchar sz, signed char space);

تابع glcd on برای روشن کردن LCD گرافیکی است. تابع glcd clear نیز همان طور که از نامش پیداست، نمایشگر را پاک می کند. تابع glcd puts هم برای نمایش یک رشته در LCD گرافیکی به کار می رود. کلمۀ uchar در کتابخانۀ LCD گرافیکی یک typedef از نوع متغیر unsigned char است (انواع متغیر در زبان C). آرگومان ورودی اول این تابع، رشته ای است که می خواهیم نمایش دهیم. آرگومان دوم و سوم، مکان نمایش را مشخص می کنند. آرگومان ورودی چهارم مربوط به راست چین یا چپ چین بودن متن است. در صورتی که صفر شود، متن چپ چین می شود. اگر مقدار 1 بگیرد، متن از سمت راست نمایش داده خواهد شد. آرگومان ورودی پنجم نیز اندازۀ فونت را تعیین می کند. آرگومان ورودی آخر هم میزان فاصلۀ بین حروف را مشخص می کند. برای مثال اگر تابع را به صورت

glcd_puts((uchar*)"UBOARD",6,3,0,2,2);

اجرا کنیم، UBOARD در LCD گرافیکی به صورت تصویر زیر نمایش داده خواهد شد.

نکته: در کتابخانۀ LCD گرافیکی KS0108 برای مقداردهی به پایه های پورت IO در AVR، از توابعی استفاده شده است. این توابع که در کتابخانۀ Gpio.h قرار دارند، به صورت زیر هستند.

void Config (unsigned char PinNum ,unsigned char PinDir , unsigned char InResOrOutTr);
void Write (unsigned char PinNum , unsigned char Status);
char Read (unsigned char PinNum);

با توجه به این که موضوع اصلی نوشته، راه اندازی ADC در AVR است، در توضیح راه اندازی LCD گرافیکی KS0108 با AVR، به همین مختصر اکتفا می کنیم.

راه-اندازی-glcd-ks0108

تصویر 2 – نتیجۀ اجرای تابع glcd puts در نرم افزار پروتئوس

عملکرد نمونه کد راه اندازی ADC در AVR

نمونه کدی که در ادامه بررسی خواهد شد، سه کانال ADC میکروکنترلر ATmega64A را می خواند. کانال های ADC این میکروکنترلر روی پورت F قرار دارند. پایه های PF.0 و PF.1 روی برد توسعۀ ATmega64Pin به ترتیب به پتانسیومتر و فتوسل روی برد متصل اند. پایۀ PF.2 را نیز از خارج برد به خروجی سنسور دمای LM35 متصل کرده ایم. راه اندازی ADC در AVR با وقفه، این امکان را به ما می دهد تا به راحتی بتوانیم ولتاژ هر سه کانال را بخوانیم. مقادیر خوانده شده در LCD گرافیکی نمایش داده خواهند شد. برای سنسور دما، مقدار خوانده شده به دما تبدیل و بر حسب درجۀ سانتیگراد نمایش داده می شود. برای فتوسل، مقدار دیجیتال خروجی واحد ADC و برای پتانسیومتر نیز مقدار ولتاژ به نمایش درمی آید. برای اتصال LCD گرافیکی باید هدرهای نری روی برد مطابق تصویر زیر به یکدیگر متصل شوند.

اتصال-ks0108-atmega64pin-یوبرد

تصویر 3 – وضعیت هدرهای روی برد برای اتصال KS0108

پتانسیومتر، فتوسل و LM35 را در عمل روی برد به صورت تصویر زیر می بینیم. دقت شود که تغذیۀ LM35 باید 5 ولت باشد. چون محدودۀ آن در دیتاشیت 4 تا 20 ولت ذکر شده است. دو سر پتانسیومتر نیز به زمین و 3.3 ولت متصل هستند. همچنین فتوسل از یک طرف به 3.3 ولت و از طرف دیگر با یک مقاومت 10 کیلو اهم به زمین وصل است. پایه های 1 و 4 هدر نری سمت چپ زیر برد، به ترتیب 5 ولت و زمین هستند. با توجه به مطالب گفته شده، راه اندازی LM35 با AVR و راه اندازی فتوسل با AVR نیز از مباحث این نوشته هستند.

نکته: برای اتصال سر وسط پتانسیومتر به پایۀ PF.0، لازم است پایه های 20 و 21 هدر نری روی برد به هم وصل شوند. برای اتصال خروجی مدار فتوسل به پایۀ PF.1 نیز باید پایۀ 18 و 19 این هدر به هم متصل شوند.

اتصالات-راه-اندازی-lm35-فوتوسل

تصویر 4 – المان های مورد استفاده و اتصالات آنها برای پروژه راه اندازی ADC در AVR

شرح برنامۀ راه اندازی ADC در AVR

در ابتدای فایل main دیفاین ها و کتابخانه های افزوده شده به صورت زیر هستند.

#define F_CPU 8000000UL

#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include <avr/interrupt.h>
#include "Libs/Gpio.h"
#include "Libs/GlcdKs0108.h"

برای راه اندازی ADC در AVR باید به رجیستر ADMUX و ADCSRA مقدار بدهیم. می خواهیم ولتاژ مرجع در این پروژه، 2.56 ولت داخلی باشد. بنابراین در رجیستر ADMUX هر دو بیت REFS0 و REFS1 را یک می کنیم. اولین کانال ورودی برای تبدیل، کانال ADC0 است. چون به طور پیش فرض بیت های MUX4 تا MUX0 روی کانال صفرم هستند، تغییری در آنها ایجاد نمی کنیم. در رجیستر ADCSRA نیز بیت های ADEN و ADIE را برای فعال کردن واحد ADC و وقفۀ آن یک می کنیم. بیت های ADPS0 تا ADPS2 را نیز یک قرار می دهیم تا فرکانس CPU برای واحد ADC تقسیم بر 128 شود. بنابراین فرکانس واحد ADC برابر 62.5 کیلوهرتز می شود.

int main(void)
{
	ADMUX=(1<<REFS1) | (1<<REFS0);
	ADCSRA=(1<<ADEN) | (1<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
	...

برای راه اندازی LCD گرافیکی KS0108 با AVR کافی است تابع glcd on را اجرا کنیم. در ادامه پس از پاک کردن نمایشگر، عبارت UBOARD را به مدت 2 ثانیه نمایش می دهیم. سپس دوباره آن را پاک می کنیم و در قدم بعدی، پرچم کلی وقفه در AVR را فعال می کنیم. در نهایت بیت ADSC را از رجیستر ADCSRA یک می کنیم تا تبدیل ADC آغاز شود.

glcd_on();
glcd_clear();
glcd_puts((uchar*)"UBOARD",6,3,0,2,2);
_delay_ms(2000);
glcd_clear();
	
sei();
	
ADCSRA|=(1<<ADSC);

پس از این مرحله، با اتمام هر تبدیل، وقفۀ ADC اتفاق می افتد. در آنجا علاوه بر خواندن نتیجۀ تبدیل و انجام محاسبات و نمایش در LCD گرافیکی، ADC را برای خواندن کانال بعدی پیکربندی می کنیم. نتیجۀ برنامۀ نوشته شده تا اینجا، در تصویر زیر آمده است.

نکته: ما در این پروژه از مد تحریک Single استفاده کرده ایم. بنابراین پس از اتمام یک تبدیل برای تبدیل دوباره، باید بیت ADSC یک شود.

راه-اندازی-ks0108-glcd

تصویر 5 – نتیجۀ راه اندازی LCD گرافیکی KS0108 با AVR در عمل

برنامۀ نوشته شده در روتین وقفه

متغیر adc channel یک شمارنده برای آرایه های adc data و adc result است. با هر وقفه، نتیجۀ تبدیل کانال ADC0 تا ADC2 در جایگاه صفرم تا دوم این آرایه ذخیره می شود. آرایۀ adc result نیز از نوع float تعریف شده و نتایج محاسبات در آن قرار می گیرد.

ISR (ADC_vect)
{
	static unsigned char adc_channel=0;
	static float adc_result[3];
	static unsigned int adc_data[3];
	static char LcdStr[20];
	...

جایگاه صفرم adc data مقدار تبدیل شدۀ ولتاژ خروجی پتانسیومتر است. برای نمایش این ولتاژ، این مقدار را در ولتاژ مرجع (2.56 ولت) ضرب و سپس بر 1023 تقسیم می کنیم. فرمول استفاده شده و نحوۀ به دست آمدن آن را می توانید در نوشتۀ ADC در AVR مشاهده نمایید. در مرحلۀ بعد، نتیجه که در جایگاه متناظر adc result ذخیره شده، نمایش داده می شود. جایگاه یکم adc data نیز نتیجۀ تبدیل خروجی فتوسل است. آن را بدون محاسبه در LCD گرافیکی نمایش می دهیم. جایگاه دوم adc data، نتیجۀ تبدیل خروجی LM35 است. با توجه به دیتاشیت LM35، به ازای هر درجۀ سانتیگراد تغییر، خروجی 10 میلی ولت تغییر دارد. بنابراین رابطۀ دما به صورت زیر به دست می آید.

فرمول-دما-lm35

...
adc_data[adc_channel]=ADCW;
	
adc_result[0]=(adc_data[0] * 2.56)/1023.0;
sprintf (LcdStr,"Pot= %.1f v",adc_result[0]);
glcd_puts((uchar*) LcdStr,0,0,0,1,0);
	
sprintf (LcdStr,"Photocell= %d", adc_data[1]);
glcd_puts((uchar*) LcdStr,0,2,0,1,0);
	
adc_result[2]=adc_data[2] * 0.25024438;
sprintf (LcdStr,"Temp= %.1f", adc_result[2]);
glcd_puts((uchar*) LcdStr,0,4,0,1,0);
_delay_ms(100);
...

این مقدار نیز در LCD گرافیکی نمایش داده می شود. پس از یک تأخیر 100 میلی ثانیه ای، یک واحد به مقدار adc channel اضافه و با تعداد کانال های ADC که خوانده می شوند، مقایسه می شود. مقدار این متغیر که در این پروژه 0 تا 2 است، باعث تغییر در رجیستر ADMUX و انتخاب کانال های 0 تا 2 برای تبدیل های بعدی می شود. همچنین با هر بار صفر شدن این متغیر و در نتیجه، اتمام تبدیل سه کانال، LCD گرافیکی یک بار پاک می شود. پس از یک تأخیر 100 میکروثانیه ای، بیت ADSC از رجیستر ADCSRA برای شروع تبدیل بعدی، یک می شود.

adc_channel++;
if (adc_channel > 2)
{
	adc_channel=0;
	glcd_clear();
}
	
ADMUX=((1<<REFS1) | (1<<REFS0)) + adc_channel;
_delay_us(100);
ADCSRA|=(1<<ADSC);

تصویر زیر نتیجۀ راه اندازی ADC در AVR در عمل است.

راه-اندازی-عملی-فتوسل-lm35

تصویر 6 – نتیجۀ راه اندازی ADC در AVR در شرایط نور و موقعیت پتانسیومتر متفاوت

نکات راه اندازی ADC در AVR

پروژۀ حاضر تنها برای آشنایی خوانندگان با چگونگی راه اندازی ADC در AVR نوشته شده است. در جهت تکمیل مباحث ذکر شده، لازم است نکات زیر را بیان کنیم:

  1. ولتاژ مرجع را می توانیم از پایۀ AREF به صورت خارجی یا از پایۀ AVCC به صورت داخلی بگیریم. این کار با مقداردهی به بیت های REFS0 و REFS1انجام می شود.
  2. با مقداردهی به بیت های MUX0 تا MUX4می توانیم کانال های مختلف ورودی را به صورت تکی یا تفاضلی با گین های مختلف بخوانیم.
  3. می توانیم نحوۀ قرارگیری نتیجۀ تبدیل را در رجیستر دادۀ خروجی تغییر دهیم. برای این کار باید به بیت ADLAR مقدار بدهیم. نحوۀ قرار گرفتن نتیجه در رجیستر دادۀ خروجی ADC می تواند چپ چین یا راست چین باشد. در این نوشته نتیجۀ تبدیل را از ADCW خوانده ایم. بنابراین نیازی به تغییر بیت مذکور نداریم.
  4. با یک کردن بیت ADATE می توانیم مد تحریک را روی Free تنظیم کنیم. در این صورت برای آغاز تبدیل، تنها باید یک بار بیت ADSC را یک کنیم. توجه شود که در برخی شماره ها مثل ATmega128، نام این بیت ADFR است.
  5. برنامه نویسی ADC در AVR بدون استفاده از وقفه هم امکان پذیر است. در این صورت با خواندن پرچم ADIF، از اتمام یک تبدیل اطلاع حاصل می شود.
  6. توجه شود در هنگام پروگرام کردن، فیوزبیت JTAGEN غیرفعال شود. چرا که پایه های JTAGبه همراه کانال های ورودی ADC، روی پورت Fقرار دارند.
  7. اقدامات لازم در اتمل استودیو برای نمایش اعداد اعشاری انجام شود. (به نوشتۀ «آموزش Atmel Studio، مهاجرت از کدویژن به اتمل استودیو» در وبلاگ یوبرد مراجعه نمایید.
  8. در نرم افزار پروتئوس مدار را مطابق برد توسعۀ ATmega64Pin طراحی کرده ایم. در صورت تغییر آن، به مقدار ولتاژهای تغذیه توجه کنید.

راه-اندازی-proteus-lm35-فتوسل

تصویر 7 – راه اندازی ADC در AVR در نرم افزار پروتئوس

نتایج راه اندازی ADC در AVR و LCD گرافیکی KS0108

  1. اغلب میکروکنترلرهای AVR یک واحد ADC با دقت 10 بیت دارند. تعداد کانال های ورودی این ADC در میکروکنترلر ATmega64، هشت کانال است. روش ADC در این میکروکنترلرها، تقریب متوالی است.
  2. در راه اندازی LCD گرافیکی KS0108 با AVR در این نوشته، از توابع کتابخانۀ h برای تغییر وضعیت پایه های پورت IO استفاده شده است.
  3. در اتصال LCD گرافیکی KS0108 به AVR روی برد توسعۀ ATmega64Pin یوبرد، باید هدرهای نری روی برد به طرز صحیح به یکدیگر متصل شوند.
  4. برای اتصال خروجی مدار فتوسل و پتانسیومتر به کانال های ADC در برد توسعۀ AVR یوبرد، باید هدرهای نری روی برد به درستی به هم متصل شوند.
  5. در راه اندازی مبدل آنالوگ به دیجیتال در AVR، تنها نیاز است به دو رجیستر ADMUX و ADCSRA مقدار بدهیم. (البته این موضوع ممکن است برای برخی شماره های AVR تفاوت داشته باشد.)
  6. برای شروع تبدیل باید بیت ADSC از رجیستر ADCSRA یک شود. اگر مد تحریک Free باشد، برای شروع تبدیل بعدی، دیگر نیازی به یک کردن این بیت نیست. اما وقتی مد تحریک Single باشد، برای شروع تبدیل بعدی باید دوباره آن را یک کنیم. زیرا این بیت تا پایان تبدیل یک باقی می ماند و پس از اتمام تبدیل دوباره توسط سخت افزار صفر می شود.
  7. در صورت فعال بودن وقفۀ ADC و فعال بودن پرچم کلی وقفه ها، با هر بار اتمام تبدیل و آپدیت شدن نتیجۀ تبدیل در رجیسترهای مربوط، پرچم ADIF یک می شود و وقفه اتفاق می افتد.
  8. در راه اندازی ADC در Atmel Studioمانند راه اندازی و خواندن ADC در کدویژن، می توان نتیجۀ تبدیل را از ADCW خواند.
  9. برای راه اندازی KS0108 با Atmel Studio نیاز به کتابخانۀ خارجی پیدا می کنیم. اما در راه اندازی KS0108 با AVR در نرم افزار کدویژن، می توان از کتابخانۀ خود کدویژن استفاده کرد.
  10. با توجه به این که LDR (فتوسل) یک مقاومت متغیر با شدت نور است، می توان آن را در یک مدار تقسیم ولتاژ به کار گرفت. بنابراین در راه اندازی LDR با AVR یا هر میکروکنترلر دیگر می توان ولتاژ سر وسط این تقسیم ولتاژ را توسط ADCخواند.
  11. در اندازه گیری ولتاژ با AVR یا هر المان دیگری که از ADC استفاده می کند، باید به محدودۀ ورودی توجه داشت. ولتاژ ورودی نباید از ولتاژ مرجع بیشتر باشد. در غیر این صورت نتیجۀ تبدیل صحیح نیست. در این پروژه ولتاژ ورودی باید بین صفر تا 2.56 ولت باشد. اما چون تغذیۀ مدار فتوسل و پتانسیومتر 3.3 ولت است، مقدار ورودی ADC تا 3.3 ولت نیز بالا می رود. برای رفع این مشکل می توان با اتصال پایه های 16 و 17 هدر نری روی برد به یکدیگر، پایۀ AREF میکروکنترلر را به 3.3 ولت وصل کرد. همچنین باید ولتاژ مرجع با بیت های REFS0 و REFS1 روی ولتاژ پایۀ AREF تنظیم شوند.
  12. تنظیمات ADC در کدویژن به راحتی با کدویزارد قابل انجام است. می توان پس از ساختن برنامه توسط کدویزارد، آن را به اتمل استودیو منتقل کرد.

آموزش های یوبرد مرتبط با این نوشته:

رضا اسدی

رضا اسدی

مدیر یوبرد، خالق و توسعه دهندۀ پلتفرم یوبرد، مجری پروژه های الکترونیکی، فعال در صنعت آسانسور، سابقه فعالیت در صنعت خودرو و همکاری در صنعت پزشکی و صنایع دیگر، آموزگار آموزش های یوبرد

سفارش پروژه میکروکنترلر یوبرد

زیرساخت مطمئن صنعت

جدیدترین تاپیک های AVR

برنامه-نویسی-میکروکنترلر-ویژوال-استودیو

برنامه نویسی میکروکنترلرها با ویژوال استودیو

نصب VisualGDB روی ویژوال استودیو، ساخت پروژه برای برنامه نویسی میکروکنترلرها با ویژوال استودیو، ساخت پروژه برای STM32 در ویژوال استودیو، کدنویسی STM32 در ویژوال استودیو، ساخت پروژه برای AVR در ویژوال استودیو، ساخت پروژه برای LPC در ویژوال استودیو، ساخت پروژۀ آردوینو در ویژوال استودیو

رله-relay

رله، سوییچ تحریک پذیر

تعریف رله، تاریخچه، طرز کار رلۀ الکترومکانیکی، اصطلاحات، انواع الکترومکانیکی، رلۀ حالت جامد، رلۀ هیبریدی، رلۀ حرارتی و انواع تحریک شونده با عوامل غیر الکتریکی، انواع موجود در صنعت برق و برق صنعتی، رلۀ ایمنی و برخی انواع حفاظتی، رلۀ دیجیتال، لزوم استفاده و راه اندازی رله، مشخصات الکتریکی

پروتکل-i2c-protocol

پروتکل I2C، ادغامی از USART و SPI توسط Philips

پروتکل I2C، تاریخچه I2C، ویژگی ها و کاربردهای I2C، عبارات و اصطلاحات I2C، باس، اتصالات و گسترش شبکه I2C، سیگنال های I2C، قالب داده و آدرس در I2C، انتقال داده در I2C، آدرس دهی 10 بیتی، قابلیت Multi-master، حکمیت، مشخصات الکتریکی و زمانی، مقدار مقاومت های پول آپ، Clock Stretching

سون-سگمنت-seven-segment

سون سگمنت، نمایشگر هفت قسمتی

سون سگمنت چیست؟ انواع 7-segment، تاریخچه 7-segment، ساختار 7-segment و نمایش در آن، تعداد ارقام و 7-segmentهای مالتی پلکس، کاربردها، انواع اندازه ها و رنگ ها و مدار راه اندازی 7-segment، بایاس 7-segment، مقدار مقاومت در راه اندازی 7-segment، درایور سون سگمنت، پایه های 7-segment

4 دیدگاه ها

  1. سلام. استاد کتابخونه gpioی که توضیح دادید خیلی عالیه. دستتون درد نکنه. فقط این بررسی شرط ها توی توابع باعث کند شدن برنامه نمیشه؟ ممنون

    پاسخ
    • سلام. خواهش میکنم. بله میتونید کتابخونتون رو محدود کنید برای یک میکروکنترلر خاص، و همچنین مشخص باشه که قراره کدام پایه را مقدار دهی کنید. در این صورت نیاز به شرط نیست.

      پاسخ
  2. سلام،خسته نباشید بابت زحماتتون،یه سوال آیا فایل برنامه رو برای برنامه کدویژن هم دارید؟
    من سعی کردم با توجه به مقاله انتقال کدویژن به اتمل استودیو برعکس برنامه رو به کدویژن انتقال بدم که موفق نشدم

    پاسخ
    • سلام. خواهش میکنم. فایل کدویژن رو خیر. به نظرم بهتره اول با کدویزارد ADC رو اون طوری که میخواید پروژه ش رو بسازید. بعدش کدهای این پروژه رو به کدویژن انتقال بدید. به غیر از کدهای مربوط به راه اندازی ADC. توی کدویزارد هم میشه کتابخونه KS0108 رو به برنامه اضافه کرد و ازش استفاده کرد. حالا اگه نخواستید از اون استفاده کنید، میتونید کتابخونۀ KS0108 رو که توی پیوست هست به برنامه کدویژن اضافه کنید. نوشتۀ ساخت کتابخانه رو توی وبلاگ مطالعه کنید. توی یه بخش از اون روش اضافه کردن کتابخونه ها رو به نرم افزار گفتیم. موفق باشید.

      پاسخ

یک دیدگاه بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دیگر آموزش های یوبرد

آموزش زبان C و MISRA-C یوبرد

گام نخست دنیای میکروکنترلر

آموزش طراحی PCB و نویز یوبرد

تجسم دنیای الکترونیک

آموزش لحیم کاری و IPC-A-610 یوبرد

ساخت دنیای الکترونیک

آموزش میکروکنترلرهای ARM STM32 یوبرد

شروع بازی ST

آموزش آردوینو یوبرد

جادۀ آسفالت میکروکنترلر

آموزش FreeRTOS یوبرد

زمان واقعی در میکروکنترلر و پردازنده های کوچک با FreeRTOS

آموزش ماژول های SIM800 یوبرد

تلفن همراه صنعت

آموزش زبان ++C و ++MISRA-C یوبرد

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

آموزش میکروکنترلرهای LPC یوبرد

یادگار فیلیپس

آموزش های شاخص

دانلود

لطفا برای دریافت لینک دانلود اطلاعات خواسته شده را وارد نمایید
ضبط پیام صوتی

زمان هر پیام صوتی 4 دقیقه است