آموزش اتمل استودیو

محمد عزیزی

همکار جدید
خب بحث شرین اینتراپت و انواع مثال ها داره تموم میشه
اولش قرار بود دیشب مثال رو بزارم واسه راستی آزمایی اینتراپت ببینیم اتمل راست میگه یا نه اما نشد امروز صبح برنامه رو نوشتم جواب نداد تا ساعت 2 سرو کله زدم نشد برنامه کار نمی کرد هیچی نفهمیدم
دیشب شبکار بودم ساعت 2 خوابیدم
5بعد از ظهر ادامه کار الان تموم شد خنده دارش اینجا بود که داخل تابع وقفه به جای اینکه بنویسم porta=0x04 نوشتم ddra=0x04 خلاصه همین اشتباه کوچیک حالمو گرفت
خوب بریم سر اصل مطلب
اول از همه میریم سراغ جدول اولویت وقفه خارجی


طبق جدول بالا اگر همزمان 3 پین INT0 و INT1 وINT2 اول باید وقفه شماره صفر
دوم باید وقفه شماره یک
سوم باید وقفه شماره دو
عمل کند
از آنجایی که ما ایرانی ها انسانهایی راستگریی هستیم باید ببینیم این دیتاشیت راست میگه یانه


upload_2016-12-4_20-46-20.png


/*
* GccApplication1.c
*
* Created: 12/04/2016 12:32:55 ب.ظ
* Author : 1
*/

#define F_CPU 4000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>


ISR(INT0_vect){

PORTA=0x01;
_delay_ms(2000);
}

ISR(INT1_vect){

PORTA=0x02;
_delay_ms(2000);
}


ISR(INT2_vect){

PORTA=0x04;
_delay_ms(1000);
}
int main(void)
{
DDRA=0xff;
PORTA=0x00;
PORTD=0xff;
PORTB=0xff;

GICR |= 1«INT2 |1«INT1 | 1«INT0;
MCUCSR = 0«ISC2;
MCUCR=1«ISC11 | 1«ISC01 ;

sei();
/* Replace with your application code */
while (1)
{
PORTA=0x00;
}
}



https://telegram.me/mitavanim_ma/283


فیلم کار کرد برنامه
 

xenoneng

همکار جدید
آقا پست هاتون واقعا عالیه. متشکرم. خدا خیرت بده
 
  • Like
واکنش‌ها[ی پسندها]: Alma

xenoneng

همکار جدید
مهندس بازهم بابت آموزش های بی نظیر از شما متشکرم. در مورد کار با UART و وفقه های اون در اتمل استودیو هم میشه لطفا مطلب قرار بدید؟
ممنون
 

EHSAN1082

همکار
فایل های لایبرری یعنی فایل های دات سی و دات اچ _ چطوری به پروژه در اتمل استودیو اضافه کنیم که ارروررر نده __ پدر منو ک درآورد !!!!!!!!!!
 

NSG

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

امروز میریم تو کار adc در avr
مبدل آنالوگ به دیجیتال در واقع تیدیل کننده متغیر های بیرونی مثل وزن دما سرعت و..............
چیزی که تو ی دیتاشیت atmega8 نوشته درباره‌ی adc
دقت 10 بیتی
13 تا 260 میکرو ثانیه البته در کلاک‌های مختلف سرعت فرق میکنه
تا 15 هزار نمونه بر ثانیه نمونه‌گیری می‌کند
6 عدد adc مالتی پلکس شدند
می‌توانید نتیجه بازخوانی را اختیاری تنظیم کنید
از 0 تا vcc می‌توانید به عنوان ورودی adc استفاده کنید
می‌توانید از ولتاژ 2.56 ولت داخلی به عنوان ولتاژ مرجع استفاده کنید(البته به نظرمن این بهتر از vcc است)
می‌توان در آزاد از adc استفاده کرد یعنی همه پایه ها را اسکن کند یا چند پایه مشخص
هر وقت تبدیل تمام شد دستور وقفه بدهد


ما در adc میکروهای avr چند تا رجیستر داریم که با اونا میکرومون رو تنظیم میکنیم
1:ADMUX
2:ADCSRA
3:ADC (ADCH,ADCL)
4:SFIOR

که برای به کار گیری از adc باید چهار رجیستر فوق رو درست تنظیم کرد
اول میریم سراغ ADMUX که مختصر شده‌ی ADC Multiplexer Selection Register
که برای
1:نتظیم ولتاژ مرجع
2:پیکربندی کانال هاadc
3:بیت ADLAR


مشاهده فایل‌پیوست 571
مشاهده فایل‌پیوست 572
بیت های REFS1و REFS0 برای برای تنظیم ولتاژ مرجع هست که شما بخونید رفرنس سورس 0 و رفرنس سورس 1 سعی کنید این جوری یاد بگیرید (من این جور یاد گرفتم )
که حالت برای تنظیم داره
1:ولتاژ پایه AREF رو به عنوان مرجع میشناسه (به نظر من خوب نیس )

2:ولتاژ پایه AVCC در میکرو را به عنوان ولتاژ مرجع قبول داره (به نظر من خوب نیس )

3: رزرو شده است

4: ولتاژ 2.56 ولت داخلی که خودش تولید میکنه رو به عنوان مرجع میشناسه (عالی )


از MUX0 تا MUX3 از بیت ها برای انتخاب کانال ورودی و نیز انتخاب بهره تفاضلی استفاده شده است.
که به موقع میگم چه خبره


از MUX0 تا MUX3 از بیت ها برای انتخاب کانال ورودی و نیز انتخاب بهره تفاضلی استفاده شده است.
که به موقع میگم چه خبره

مشاهده فایل‌پیوست 573


میریم تا رجیستر بعدی ADC(ADCH,ADCL



مشاهده فایل‌پیوست 574

در این دو رجیستر اطاعات خروجی ADC قرار میگیره یعنی وقتی تبدیل انجام شد مقدار خوانده شده با دقت مورد نظر در این رجیستر قرار میگیره

بالا گفته بودم که avr با دقت 10 بیت و 8 بیت میتونه adc رو اندازه گیری کنه این در حالیه که avr دارای 32 رج یستر 8 بیتی هست
حالا اتمل اومده با استفاده از 2 رجیستر 8 بیتی این کار رو ساده کرده ADCH و ADCH
البته 2 تا 8 بیت میشه 16 بیت که 6 تا از بیت ها پوچ میشن و ما 10 بیت داریم
حالا اگه ADLAR=1 بشه (در رجیستر ADMUX بیت 5) تبدیل از چپ به راست و اگر ADLAR=0 باشه تنظیم از راست به چپ انجام میشه که در این مورد به موقع با مثال در یه برنامه توضیح مفصل میدم


مشاهده فایل‌پیوست 575

مشاهده فایل‌پیوست 576

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

سلام دوستان
با عرض پوزش به خاطر مشغله بسیار زیاد کمتر سر می‌زنم

خب بریم سر اصل قضیه اولین نمونه کد adc رو آماده کردم

https://telegram.me/mitavanim_ma/114
فیلم کار کرد

مشاهده فایل‌پیوست 577


مشاهده فایل‌پیوست 578

مشاهده فایل‌پیوست 579


منتظر نظرات شما هستیم

https://telegram.me/mitavanim_ma
 
بالا پایین