اطلاعیه

Collapse
No announcement yet.

کوچ کردن از کدویژن به AtmelStudio

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : کوچ کردن از کدویژن به AtmelStudio

    سلام یک سوال برای من پیش آماده اینم اینه که :

    آیا دستور delay مانند کدویژن دقیق نیست یعنی اگر دستور زیر را بنویسیم دقیقا 1 ثانیه طول میکشد یا نه ؟

    کد:
    _delay_ms(1000);
    باد می وزد ...
    میتوانی در مقابلش هم دیوار بسازی ، هم آسیاب بادی
    تصمیم با تو است ...

    دیدگاه


      پاسخ : کوچ کردن از کدویژن به AtmelStudio

      اینو قبل اینکلود کردن delay بزنین

      کد:
      #define F_CPU 8000000UL
      در اینجا فرض بر این بوده که فرکانس کاری روی 8 مگه.

      در ضمن برای اطمینان اگر از کریستال داخلی استفاده میکنین از ولتاژ 5 ولت استفاده کنین

      تجربه:
      در ازمایشی که انجام دادم دو عدد میکرو اتمگا هشت سری A رو مورد ازمایش در ولتاژ 3.3 قرار دادم

      بروی بدنه هر میکرو جلوی عبارت atmel اعداد یکی نوشته شده بود 1112 و ذیگری 1346

      یک برنامه ارسال توسط usart نوشتم.زمانی که ولتاژ بر روی 3.3 بود میکروی 1346 دچار مشکل میشد اما اون یکی نه!

      ولتاژ زمانی که 5 بود مشکلی نداشتم. ولتاژ روی 3.3 گزاشتم و از کریستال خارجی اسنفاده کردم مشکل 1346 حل شد.


      .The best question deserves a better answer
      =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
      «پناه»می برم «به خدا»
      از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
      محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

      دیدگاه


        پاسخ : کوچ کردن از کدویژن به AtmelStudio

        یعنی اگر از کریستال خارجی استفاده کنم و فرکانس را هم معلوم کنم اگر کد زیر را بنویسم دقیقا 1 ثانیه طول میکشه .

        کد:
        _delay_ms(1000);
        باد می وزد ...
        میتوانی در مقابلش هم دیوار بسازی ، هم آسیاب بادی
        تصمیم با تو است ...

        دیدگاه


          پاسخ : کوچ کردن از کدویژن به AtmelStudio

          نوشته اصلی توسط ATROBOT
          یعنی اگر از کریستال خارجی استفاده کنم و فرکانس را هم معلوم کنم اگر کد زیر را بنویسم دقیقا 1 ثانیه طول میکشه .

          کد:
          _delay_ms(1000);
          کلا delay کارش اینه که CPU رو یه جا درگیر کنه که یه چیزایی رو نبینه.مثلا bounce کلید.بنابراین کلا انتظار نداشته باش اونقدر دقیق باشه.تایم دقیق میخوای برو سراغ تایمر ...

          دیدگاه


            پاسخ : کوچ کردن از کدویژن به AtmelStudio

            نوشته اصلی توسط ATROBOT
            یعنی اگر از کریستال خارجی استفاده کنم و فرکانس را هم معلوم کنم اگر کد زیر را بنویسم دقیقا 1 ثانیه طول میکشه .

            کد:
            _delay_ms(1000);
            بله شاید 2 میلی ٍانیه بالا پایین
            .The best question deserves a better answer
            =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
            «پناه»می برم «به خدا»
            از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
            محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

            دیدگاه


              پاسخ : کوچ کردن از کدویژن به AtmelStudio

              مشکل حل شد!

              دیدگاه


                پاسخ : کوچ کردن از کدویژن به AtmelStudio

                سلام
                نوشته بودی که نحوه استفاده از دستور sprintf رو توی atmel studio فهمیدی
                منم خیلی با این تابع مشکل دارم ولی نتونستم راهی پیدا کنم
                میشه توضیح بدی چطور باید ازش استفاده کرد؟

                دیدگاه


                  پاسخ : کوچ کردن از کدویژن به AtmelStudio

                  سلام دوستان.
                  یه کتابخونه ساده برای SPI میخوام که حداقل بشه یه دیتا رو همزمان بین slave و Master در دومیکرو ردوبدل کرد. با Atmel studio مشکل دارم تو این پروتکل
                  خدا نور است و من اشعه ای از او ...

                  دیدگاه


                    پاسخ : کوچ کردن از کدویژن به AtmelStudio

                    نوشته اصلی توسط بهنام رستمی نژاد
                    سلام دوستان.
                    یه کتابخونه ساده برای SPI میخوام که حداقل بشه یه دیتا رو همزمان بین slave و Master در دومیکرو ردوبدل کرد. با Atmel studio مشکل دارم تو این پروتکل
                    سلام
                    از دو تابع زیر استفاده کنید (در هر IDE که دوست دارید)
                    کد:
                    unsigned char spi( unsigned char data )
                    {
                    	SPDR=data;
                    	while(!(SPSR & 0x80));
                    	return SPDR;
                    }
                    
                    
                    void spi_init()
                    {
                    	DDRB=0x2E;
                    	SPCR=0x50;
                    }
                    راه اندازی ماژول nrf24l01p برای codevision (ارتباط بیسیم بین دو میکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                    کوچ کردن از کدویژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                    نحوه نوشتن اصولی یک لایبرری و درایور نرم افزاری( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                    http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول های مختلف توسط اعضای انجمن
                    انشالله به زودی تاپیک ها به روز رسانی خواهد شد،

                    دیدگاه


                      پاسخ : کوچ کردن از کدویژن به AtmelStudio

                      کد:
                      #include <avr/io.h>
                      #include <avr/interrupt.h>
                      #include <avr/delay.h>
                      
                      
                      ISR(INT1_vect)
                      {
                      PORTB =~PORTB;
                      }
                      
                      int main()
                      {
                      DDRB=0xff;
                      	DDRD =(0<<PD3);
                      GICR |=(1<<INT1);
                      MCUCR = ((1<<ISC01)|(1<<ISC00));
                      
                      
                      sei();
                      while(1);
                      }
                      اینجا میخام با یه لبه بالا رونده روتین مربوط به وقفه خارجی فعال بشه و طبق دیتا شیت ISC01 و ISC00 باید 1 باشند. اما بازم با لبه پایین رونده وقفه ایجاد میشه. مشکل چیه؟؟؟ :cry: :angry:
                      خدا نور است و من اشعه ای از او ...

                      دیدگاه


                        پاسخ : کوچ کردن از کدویژن به AtmelStudio

                        خودم جواب خودمو پیدا کردم :biggrin:
                        ریجیستر مربوط به INT1 در میکرو 8 atmega اینها نبودند بلکه ISC11 و ISC10 هستند به این ترتیب :
                        کد:
                        /*
                         * Ext_interrupt.c
                         *
                         * Created: 2014/10/07 09:15:16 ب.ظ
                         * Author: user
                         */ 
                        
                        
                        #include <avr/io.h>
                        #include <avr/interrupt.h>
                        #include <avr/delay.h>
                        
                        
                        ISR(INT1_vect)
                        {
                        PORTB =~PORTB;
                        }
                        
                        
                        
                        int main()
                        {
                        DDRB=0xff;
                        	DDRD = 0<<PD3;
                        	PORTD = 1<<PD3;
                        GICR =1<<INT1;
                        MCUCR = 1<<ISC11|1<<ISC10;
                        
                        
                        sei();
                        while(1);
                        }
                        خدا نور است و من اشعه ای از او ...

                        دیدگاه


                          پاسخ : کوچ کردن از کدویژن به AtmelStudio

                          دوست من اینا رجیستر نیستند. bit position اند.
                          رجیستر مربوط MCUCR هستش
                          گفت که دیوانه نهی لایق این خانه نهی

                          دیدگاه


                            پاسخ : کوچ کردن از کدویژن به AtmelStudio

                            :applause:
                            ممنون از شما. خودمم مونده بودم به این بیت ها چی بگم . خوب شد که گفتی :bye
                            خدا نور است و من اشعه ای از او ...

                            دیدگاه


                              پاسخ : کوچ کردن از کدویژن به AtmelStudio

                              سلام دوستان خوبم
                              من تابحال AVR رو با بسکام کار میکردم و الان میخوام C یاد بگیرم و با اتمل استودیو 6.1کار کنم.
                              جزوه یا منبع و.... وجود داره بهم معرفی کنید

                              دیدگاه


                                پاسخ : کوچ کردن از کدویژن به AtmelStudio

                                نوشته اصلی توسط PPED
                                سلام دوستان خوبم
                                من تابحال AVR رو با بسکام کار میکردم و الان میخوام C یاد بگیرم و با اتمل استودیو 6.1کار کنم.
                                جزوه یا منبع و.... وجود داره بهم معرفی کنید
                                جزوه آموزش c آقای سپاسیار بسیار مفیده
                                البته تنها زبان سی رو آموزش میده
                                زندگی آن چه که زیسته ایم نیست ، بلکه آن چیزی است که از گذشته به خاطر داریم ...گابریل گارسیا مارکز

                                دیدگاه

                                لطفا صبر کنید...
                                X