اطلاعیه

Collapse
No announcement yet.

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

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

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

    کسی جواب مارو نداد
    دوستانی که با اتمل کار میکنید. چطور برنامتون رو دیباگ میکنین ؟؟؟

    دیدگاه


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

      سلام دوستان.
      من کتابخانه ماژول ال سی دی N96 2.8 سایت رو با کتابخانه ای که تو سایت گذاشتن را با codevision راه اندازی کردم. اما وقتی همین کتابخانه رو در atmel studio استفاده میکنم فونت ها رو درست نشون نمیده ولی دایره و مربع رو درست میکشه. اصلا سر در نمیارم چرا؟ کسی میتونه راهنمایی کنه؟

      دیدگاه


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

        ارسال شده توسط: punisher.x64

        سلام دوستان
        همونطور که میدونید واسه استفاده از Sprintf() در کدویژن از تنظیمات برنامه میرفتیم و مثلا برای استفاده از تبدیل float نوع float رو انتخاب میکردیم....ولی در اتمل استودیو نمیدونم تنظیماتش کجاست...الان وقتی میخوام تبدیل float به رشته رو داشته باشم یه سری کارکترهای عجیب غریب رو السیدی نشون داده میشه...
        کسی میدونه چاره کار کجاست؟
        ممنون
        از قسمت Toolchain > شاخه AVR/GNU Linker > زیر شاخه Libraries
        گزینه ADD رو بزنید و عبارت libprintf_flt رو وارد کنید
        حالا به زیرشاخه General برید و تیک گزینه آخر رو بزنید

        لطفا موارد مربوط به AtmelStudio رو اینجا مطرح کنید تا از پراکندگی مطالب جلوگیری بشه.
        گاهی افرادی به موفقیت های بزرگ می رسند، تنها به این دلیل ساده که نمی دانند کاری که به آن دست زده اند بسیار دشوار، بلکه غیر ممکن است.

        دیدگاه


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

          سلام

          ضمن تشکر از آقای Hamed GH ، سه سوال :
          1 - دستور sprintf در کدوم کتابخونه هستش ؟
          2 - لطفا توضیح دهید این کاری که گفتید چه تغییری ایجاد میکنه ؟
          3 - تفاوت این دستور با dtostrf ( زیر مجموعه stdlib.h ) چیه ؟

          باتشکر .

          دیدگاه


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

            1. در هدرفایل stdio.h
            2. در محل نصب نرم افزار اگه به مسیر Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\avr\lib برید فایلهای با پسوند a. رو در انتها می بینید که همون کتابخونه های مورد استفاده هست. در واقع ما اینهارو به پروژه اضافه می کنیم. راه ساده تر برای این کار راست کلیک روی پوشه libraries در Solutoin Explorer هست!
            3. کاربرد تابع dtostrf محدود به اعداد اعشاری هست یعنی ورودی از نوع مشخص و خروجی با فرم محدود اما تابع sprintf محدودیتی از نظر نوع ورودی نداره یعنی می تونه ورودی هایی از انواع مختلفی به صورت همزمان داشته باشه و از نظر خروجی هم دارای قابلیتهای بیشتری هست اما حجم خیلی بیشتری از حافظه فلش رو اشغال می کنه.
            گاهی افرادی به موفقیت های بزرگ می رسند، تنها به این دلیل ساده که نمی دانند کاری که به آن دست زده اند بسیار دشوار، بلکه غیر ممکن است.

            دیدگاه


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

              سلام

              در فایل سرایند rprintf.h مربوط به مجموعه avrlib ، این تابع وجود داره :

              کد:
              //! prints a single character to the current output device
              void rprintfChar(unsigned char c);
              این تابع چه کاری انجام میده ؟

              دیدگاه


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

                طبق توضیحات اول هدرفایل توابع موجود با هدف کاهش حجم کد ناشی از توابع printf نوشته شدند( reduced printf ). یعنی هر تابع یکی از کارهای printf رو انجام می ده و برای این کار از تابع putchar استفاده می کنه .
                این تابع شما هم فقط کاراکترهارو در خروجی چاپ می کنه.
                گاهی افرادی به موفقیت های بزرگ می رسند، تنها به این دلیل ساده که نمی دانند کاری که به آن دست زده اند بسیار دشوار، بلکه غیر ممکن است.

                دیدگاه


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

                  درود به همه
                  یکی از مشکلاتی که توی AVR-GCC روزهای اول کوچ از کدویژن داشتم این بود که عادت به مقدار دهی پورت ها توی AVRSTUDIO و ECLIPSE نداشتم. برای همین از این تکه کد استفاده میکردم که فکر کنم از آدرس دهی توی کد ویژن هم بهتر باشه. خوشحال هستم که طرفدارهای AVR-GCC هر روز بیشتر مشن.

                  میتونید این تکه کد رو توی پروژه تون کپی کنید:
                  کد:
                  [left]
                  typedef struct
                  {
                  	unsigned in0:1;
                  	unsigned in1:1;
                  	unsigned in2:1;
                  	unsigned in3:1;
                  	unsigned in4:1;
                  	unsigned in5:1;
                  	unsigned in6:1;
                  	unsigned in7:1;
                  		
                  	unsigned dir0:1;
                  	unsigned dir1:1;
                  	unsigned dir2:1;
                  	unsigned dir3:1;
                  	unsigned dir4:1;
                  	unsigned dir5:1;
                  	unsigned dir6:1;
                  	unsigned dir7:1;
                  	
                  	unsigned out0:1;
                  	unsigned out1:1;
                  	unsigned out2:1;
                  	unsigned out3:1;
                  	unsigned out4:1;
                  	unsigned out5:1;
                  	unsigned out6:1;
                  	unsigned out7:1;
                  	
                  } PORT_STRUCT;
                  
                  #ifdef PORTA 
                  #define PortA (*((volatile PORT_STRUCT*)(&PINA)))
                  #endif
                  
                  #ifdef PORTB
                  #define PortB (*((volatile PORT_STRUCT*)(&PINB)))
                  #endif
                  
                  #ifdef PORTC
                  #define PortC (*((volatile PORT_STRUCT*)(&PINC)))
                  #endif
                  
                  #ifdef PORTD
                  #define PortD (*((volatile PORT_STRUCT*)(&PIND)))
                  #endif
                  
                  #ifdef PORTE
                  #define PortE (*((volatile PORT_STRUCT*)(&PINE)))
                  #endif
                  
                  #ifdef PORTF
                  #define PortF (*((volatile PORT_STRUCT*)(&PINF)))
                  #endif
                  
                  #ifdef PORTG
                  #define PortG (*((volatile PORT_STRUCT*)(&PING)))
                  #endif
                  
                  #ifdef PORTH
                  #define PortH (*((volatile PORT_STRUCT*)(&PINH)))
                  #endif
                  
                  #ifdef PORTI
                  #define PortI (*((volatile PORT_STRUCT*)(&PINI)))
                  #endif
                  
                  #ifdef PORTJ
                  #define PortJ (*((volatile PORT_STRUCT*)(&PINJ)))
                  #endif
                  
                  #ifdef PORTK
                  #define PortK (*((volatile PORT_STRUCT*)(&PINK)))
                  #endif[/left]
                  بعد میتونید به این صورت ازش استفاده کنید که برای هر پورت اسم اون پورت رو به شکل PortX.Yn مینویسید که X میتونه یکی از حروف AتاK و Y میتونه in ، out یا dir باشه. و n هم یکی از شماره های 0تا7 که نشون دهنده ی بیت مورد نظر هست. مانند کد زیر:
                  کد:
                  int main(void)
                  {
                  	PortA.dir1=1;
                    while(1)
                    {
                  		_delay_ms(250);
                  		PortA.out1=1;
                  		_delay_ms(250);
                  		PortA.out1=0;
                    }
                  }

                  دیدگاه


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

                    سلام دوستان اگه میشه یه کتاب حرفه ای بزارید بخونیم که با مثال باشه تمام بخش ها رو توضیح بده یکم گیج کننده هست اما مشخصه یک دیباگره کا :nerd:ملا بی نقصی هست و جایه رشد خیلی داره

                    دیدگاه


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

                      اره فکر خوبیه.
                      منم چند روزیه دارم با atmel studio کار میکنم یه مقدار سخته اما شدنی.
                      دوستان یک سوالی در atmel studio دسترسی به بیت ها نداریم؟
                      چون وقتی مینویسم PPORTB0=0 یا PORTB.0=1 ارور میده.
                      Someone who can change the world
                      ELECTRONIC ENGINEER

                      دیدگاه


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

                        نه دوست عزیز دسترسی بیتی وجود نداره. در پست های اول تاپیک راههایی برای دسترسی بیتی بیان شده.
                        موفق باشید
                        چرا ناراحتی پاتریک!
                        + امروز ی بچه دیدم سرچهارراه گل میفروخت
                        - از دیدنش ناراحت شدی؟
                        + نه
                        پس چی ناراحتت کرده
                        + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                        ------------------------------------------------------------------------------------------------------
                        تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                        ------------------------------------------------------------------------------------------------------
                        محصولات

                        دیدگاه


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

                          با سلامی مجدد.
                          میبخشید بنظرتون این کد رو تو STUDIO چطور بنویسم.
                          کد در محیط کد ویژن=
                          if(PINB.4)A=0
                          Someone who can change the world
                          ELECTRONIC ENGINEER

                          دیدگاه


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

                            لطفا قبل از ارسال پست تاپیک رو یه مطالعه بفرمایید :

                            http://www.eca.ir/forum2/index.php?t...9540#msg499540
                            چرا ناراحتی پاتریک!
                            + امروز ی بچه دیدم سرچهارراه گل میفروخت
                            - از دیدنش ناراحت شدی؟
                            + نه
                            پس چی ناراحتت کرده
                            + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                            ------------------------------------------------------------------------------------------------------
                            تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                            ------------------------------------------------------------------------------------------------------
                            محصولات

                            دیدگاه


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

                              سلام

                              یک نکته :

                              برخی از گزینه های مربوط به انتخاب پردازنده مانند sam3 ، sam4 ، samD فقط در هنگام ایجاد پروژه جدید وجود دارند و در حین کار قابل انتخاب نیستند .

                              دیدگاه


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

                                دوستان طریقه ی اضاه کردت کتابخانه های با پسوند .a به پروژه رو میشه توضیح بدین؟

                                دیدگاه

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