PDA

View Full Version : میکروکنترلرهای AVR



mzolfaghari
جمعه 03 خرداد 1392, 04:04 صبح
با سلام
هر نوع سوالی درباره برنامه نویسی میکروکنترلر AVR بسکام و کدویژن و پروژه های مرتبط دارید اینجا مطرح کنید.
بنده در حد توان و به شرط حیات پاسخگو هستم
شاد و پیروز باشید

yashar666
دوشنبه 13 خرداد 1392, 19:11 عصر
منه حقیر هم اگه چیزی میدونستم میگم

pouralijan
سه شنبه 14 خرداد 1392, 14:22 عصر
سلام
می خواستم بپرسم آیا میشه چهار تا کانال دوم adca از خانواده xmega رو بعنوان acd را انداری کرد و از چهار تای دیگه بعنوان ورودی و خروجی استفاده کرد . تو Bascom

seaa12
جمعه 25 مرداد 1392, 10:00 صبح
کسی میتونه به من کمک کنه؟

SEZAR.CO
یک شنبه 27 مرداد 1392, 21:20 عصر
با عرض سلام متاسفانه دوستان زیادی از این تاپیک ها زدند ئو اعلا امادگی کردند ولی حیف که عمل نمی کنند
بنده زبان تخصصیم سی ولی با دوستانم مشورت می کنم و حتما جواب شمارا طی چند روز آینده خواهم داد
لطفا هرروز سری بزنید

mamal67
شنبه 23 شهریور 1392, 22:10 عصر
سلام دوستان.کسی برنماه نویسی ویژوال بیسیک بلده تا یک ارتباط سریال با میکرو برقرار کنه.مبخوام از میکرو اطلاعات بصورت کاراکتری ارسال بشه بعد کامپیوتر چند کاراکتر اول رو که گرفت مکان استفاده اون کاراکترهای بعدی رو تشخیص بده و اونا رو نمایش بده فقط.مثلا 2 کاراکتر میاد اونا رو تشخیص بده واسه فلان باکس هست و سه کاراکتر بعدی که اومد اونارو توی اون text box نشون بده .خواهشا کسی بلده کمک کنه.

SEZAR.CO
سه شنبه 23 مهر 1392, 20:03 عصر
من با ویژوال بیسی کار نکردم
اگر می خوای به جواب برسی یهترین راه سرچ تو گوگله

awhora
جمعه 08 آذر 1392, 12:04 عصر
سلام دوستان عزیز...
کسی در مورد سنسور ژیروسکوپ itg3200 و چگونگی برنامه نویسیش اطلاعاتی داره؟؟
ممنون میشم راهنمایی کنید.

soheila2012
یک شنبه 10 آذر 1392, 19:33 عصر
با سلام
میخوام با xmega8 کار کنم.
از همون اول مشکل پیدا کردم!!
رشته م کامپیوتره و تا برنامه ای به زبان کدویژن کار نکردیم.الان می خوام برنامه ای بنویسم و با برد ارتباط برقرار کنم.
برنامه آماده ست(تعقیب خط) ولی نمیتونم بریزم تو برد. usb شناخته شده س ولی باز هم ارور میده و نمیشه کاریش کرد.
از دوستان کسی هست که تا حالا یک بار هم به این طریق کار کرده باشه؟؟
مرسی

maikelbahal
سه شنبه 17 دی 1392, 21:18 عصر
سلام بر آقایون مهندسان گرامی من یک برنامه دماسنج با سنسور lm35وlcdنوشتم از همه لحاظم چکش کردم درسته ولی وقتی در پروتئوس شبیه سازیش می کنم تغییر دما را روی lcd نمایش نمیده و حتی در عمل هم روی lcd چیزی نمایش نمیده من فکر کنم از کامپایلرم باشه.کامپایلرم کدویژن ورژن 2.5هست اگه ممکنه کمکم کنید ؟
با تشکر

arastak
سه شنبه 17 دی 1392, 22:43 عصر
با سلام به دوستان
من یه مدار RFID بستم با ATMEGA16 ولی در زمان خوندن ماژول مشکل دارم کسی هست راهنمایی کنه با تشکر

h.torabi
سه شنبه 24 دی 1392, 14:49 عصر
سلام به شما بعید میدونم اشکال از برنامه با شه ..

برنامتو بذار تا چکش کنیم......

h.torabi
سه شنبه 24 دی 1392, 14:51 عصر
سلام بر آقایون مهندسان گرامی من یک برنامه دماسنج با سنسور lm35وlcdنوشتم از همه لحاظم چکش کردم درسته ولی وقتی در پروتئوس شبیه سازیش می کنم تغییر دما را روی lcd نمایش نمیده و حتی در عمل هم روی lcd چیزی نمایش نمیده من فکر کنم از کامپایلرم باشه.کامپایلرم کدویژن ورژن 2.5هست اگه ممکنه کمکم کنید ؟
با تشکر

سلام به شما
بعید میدونم اشکال از برنامه codvision با شه ..???????!!!!!!..

برنامتو بذار تا چکش کنیم......

راستی lcd به پورت c میکرو وصله......
؟؟؟//>>>:متفکر::متفکر::متفکر:

h.torabi
سه شنبه 24 دی 1392, 14:57 عصر
با سلام به دوستان
من یه مدار RFID بستم با ATMEGA16 ولی در زمان خوندن ماژول مشکل دارم کسی هست راهنمایی کنه با تشکر

سلام به شما دوست عزیز تا اونجایی که من میدونم این ماژول ها با پروتکل uart میکرو کار میکنه این ماژول ها دارای یک baud rate مشخص هستند اول باید این مشخصه از دیتا شید ماژول در بیاری و بعد این مشخصه در میکرو خودت ست کنی

راستی برای ست کردن
baud rate درست برای avr حتما حتما از یک کریستال مناسب استفاده بکن...

h.torabi
سه شنبه 24 دی 1392, 15:07 عصر
سلام دوستان عزیز...
کسی در مورد سنسور ژیروسکوپ itg3200 و چگونگی برنامه نویسیش اطلاعاتی داره؟؟
ممنون میشم راهنمایی کنید.

سلام..
این ماژول با پروتکل i2c کار میکنه

شما اول باید دیتا شید این ماژول بخونی وبعد با ریجستر های این ماژول که آشنا شدی

توسط i2c میتونی ازش اطلاعات مورد نیازت بگیری مثل x و y و z و temp .....

اگه سوالی بود بپرس......

یا علی.

coronaa
یک شنبه 23 شهریور 1393, 14:21 عصر
سلام دوستان
این کدی که میذارم برنامه ی یک چراغ چشمک زن هست. ظاهرن خیلی برنامه ی ساده ای هست ولی خب من بلد نیستم. یه سوال دارم و اینه که کدوم قسمتهای این کد همیشه ثابت هست و توی همه ی برنامه ها میاد و قسمت اصلی برنامه از کدوم خط شروع میشه؟
کسی هست که بیاد بگه هر خط این برنامه چیکار میکنه؟
اینم فایل notepad :
http://uplood.ir/36YB

/************************************************** ***
This program was produced by the
CodeWizardAVR V2.05.0 Advanced
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date : 9/6/2014
Author : www.Eca.ir (http://www.Eca.ir) *** www.Webkade.ir (http://www.Webkade.ir)
Company :
Comments:


Chip type : ATmega32
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 512
************************************************** ***/

#include <mega32.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTA=0x00;
DDRA=0xFF;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// USART disabled
UCSRB=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

while (1)
{
// Place your code here
PORTA=0xff;
delay_ms(5000);
PORTA=0x00;
delay_ms(5000);
}
}

SEZAR.CO
دوشنبه 24 شهریور 1393, 17:49 عصر
با عرض سلام
شما از کد ویژن استفاده کرده اید
این برنامه در اول یم سری تنضیمات دارد مثلا خروجی کردن و ورودی کردنشون و فعال سازی تلیمر و وقفه و مایسه کننده االوگ و.........
بعد از ایجاد تنضیمات یکسری کد هارا با توجه به همون تنظیمات می نویسه.که قبل ار حلقه ی وایل هستند و زیرشون با یکسری کامنت توضیح داده که بیان کننده ی کار اونا می باشد
اماتوی حلقه ی وایل :
PORTA=oxFF;تمامی پایه ها ی پورت A یک می شوند
delay_ms(5000);
اندازه ی 5000 میلی ثانیه دیلی (وقفه) می افتد(5000 ثانیه در همین خط می ماند)
PORTA=0x00;تمامی پایه ها ی پورت A صفر می شوند

اگر احتیاج به توضیحات بیشتری بوود بگید;)

coronaa
دوشنبه 24 شهریور 1393, 19:37 عصر
مرسی مهندس. اگه میشه تو همین تاپیک این کدهارو بررسی کنیم تا منم یه چیزایی یاد بگیرم.
یعنی دستورات قبل از while توی همه ی برنامه ها ثابته؟
و برنامه اصلی قسمت داخل while هست؟
while (1)
{
// Place your code here
PORTA=0xff;
delay_ms(5000);
PORTA=0x00;
delay_ms(5000);
}
چرا اول پورت A یک میشه و بعد صفر؟ نباید برعکس باشه؟ یا فرقی نمیکنه؟

coronaa
دوشنبه 24 شهریور 1393, 23:03 عصر
چرا در این برنامه از میکروکنترلر ATmega32 استفاده کرده و فرقش با 8 و 16 و غیره چیه؟
کاربردشون فرق داره؟

coronaa
دوشنبه 24 شهریور 1393, 23:06 عصر
سوال بعدی اینکه اگه برنامه به این صورت بود کدش چطوری نوشته می شد؟ (میخوام تغییرات کد رو متوجه بشم!)
5 تا LED هر کدام به مدت 5 ثانیه یکی پس از دیگری روشن بشه. (سری یا موازی قرار گرفتن LED ها مهمه؟)
ممنونم از وقتی که میذاری :)