# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded > AVR >  میکروکنترلرهای AVR

## mzolfaghari

با سلام
هر نوع سوالی درباره برنامه نویسی میکروکنترلر AVR بسکام و کدویژن و پروژه های مرتبط دارید اینجا مطرح کنید.
بنده در حد توان و به شرط حیات پاسخگو هستم
شاد و پیروز باشید

----------


## yashar666

منه حقیر هم اگه چیزی میدونستم میگم

----------


## pouralijan

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

----------


## seaa12

کسی میتونه به من کمک کنه؟

----------


## SEZAR.CO

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

----------


## mamal67

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

----------


## SEZAR.CO

من با ویژوال بیسی کار نکردم
اگر می خوای به جواب برسی یهترین راه سرچ تو گوگله

----------


## awhora

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

----------


## soheila2012

با سلام
میخوام با xmega8 کار کنم.
از همون اول مشکل پیدا کردم!! 
رشته م کامپیوتره و تا برنامه ای به زبان کدویژن کار نکردیم.الان می خوام برنامه ای بنویسم و با برد ارتباط برقرار کنم.
برنامه آماده ست(تعقیب خط) ولی نمیتونم بریزم تو برد. usb  شناخته شده س ولی باز هم ارور میده و نمیشه کاریش کرد.
از دوستان کسی هست که تا حالا یک بار هم به این طریق کار کرده باشه؟؟
مرسی

----------


## maikelbahal

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

----------


## arastak

با سلام به دوستان 
من یه مدار RFID بستم با ATMEGA16 ولی در زمان خوندن ماژول مشکل دارم کسی هست راهنمایی کنه با تشکر

----------


## h.torabi

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

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

----------


## h.torabi

> سلام بر آقایون مهندسان گرامی من یک برنامه دماسنج با سنسور lm35وlcdنوشتم از همه لحاظم چکش کردم درسته ولی وقتی در پروتئوس شبیه سازیش می کنم تغییر دما را روی lcd نمایش نمیده و حتی در عمل هم روی   lcd چیزی نمایش نمیده من فکر کنم از کامپایلرم باشه.کامپایلرم کدویژن ورژن 2.5هست اگه ممکنه کمکم کنید ؟
> با تشکر


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

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

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

----------


## h.torabi

> با سلام به دوستان 
> من یه مدار RFID بستم با ATMEGA16 ولی در زمان خوندن ماژول مشکل دارم کسی هست راهنمایی کنه با تشکر


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

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

----------


## h.torabi

> سلام دوستان عزیز...
> کسی در مورد سنسور  ژیروسکوپ itg3200 و چگونگی برنامه نویسیش اطلاعاتی داره؟؟
> ممنون میشم راهنمایی کنید.


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

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

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

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

یا علی.

----------


## coronaa

سلام دوستان
این کدی که میذارم برنامه ی یک چراغ چشمک زن هست. ظاهرن خیلی برنامه ی ساده ای هست ولی خب من بلد نیستم. یه سوال دارم و اینه که کدوم قسمتهای این کد همیشه ثابت هست و توی همه ی برنامه ها میاد و قسمت اصلی برنامه از کدوم خط شروع میشه؟
کسی هست که بیاد بگه هر خط این برنامه چیکار میکنه؟
 اینم فایل 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 *** 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

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

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

----------


## coronaa

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

----------


## coronaa

چرا در این برنامه از میکروکنترلر ATmega32 استفاده کرده و فرقش  با 8 و 16 و غیره چیه؟
کاربردشون فرق داره؟

----------


## coronaa

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

----------

