اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام و صلوات
    مرسی دوست عزیز
    یه مدت پیش تصمیم گرفته بودم برای eeprom کتابخونه بنویسم اما دیدم یه کتابخونه براش هست امروز که به usart نیاز داشتم گفتم شاید این رو هم داشته باشه
    از راهنمایی که کردین سپاسگزارم
    ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
    شهید دکتر مصطفی چمران
    اللهم صل علی محمد و ال محمد و عجل فرجهم
    ; C is not for children

    دیدگاه


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

      یعنی کسانی که با atmel studio کار میکنن هر کسی برای خودش باید کتابخونه بنویسه؟کتابخونه فروشی مطمین یا دزدیدنی سراغ ندارید؟

      دیدگاه


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

        نوشته اصلی توسط مهدی رهی
        سلام و صلوات
        مرسی دوست عزیز
        یه مدت پیش تصمیم گرفته بودم برای eeprom کتابخونه بنویسم اما دیدم یه کتابخونه براش هست امروز که به usart نیاز داشتم گفتم شاید این رو هم داشته باشه
        از راهنمایی که کردین سپاسگزارم
        سلام

        واقعیتش بهترین کتاب خونه کتابخونه ایه که خودت بنویسی(نظر شخصی).چون من با اسم توابع خودم حال میکنم.برای usart اقای peter fleury یه کتاب خونه عالی دارن که میتونین استفاده کنین.اگرم خواستین راحت میتونین ویرایش کنید.از اینجا میتونید دانلود کنید :

        http://homepage.hispeed.ch/peterfleury/uartlibrary.zip

        دیدگاه


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

          نوشته اصلی توسط ((O-I-O))
          یعنی کسانی که با atmel studio کار میکنن هر کسی برای خودش باید کتابخونه بنویسه؟کتابخونه فروشی مطمین یا دزدیدنی سراغ ندارید؟
          بستگی داره.مثلا" ADC کلا 2-3 تا رجیستر داره کسی کتابخونه براش نساخته بذاره برای دانلود.خودت با چند خط کد میتونی بنویسی.اما برای دانلود هم هست.مثل همون usart که پست قبل گذاشتم.

          ولی آدم خودش بنویسه بیشتر براش قابل درکه که چیکار کرده.تو نت سرچ بزن توی سایتایی مثل avrfreaks کتابخونه زیاده.

          دیدگاه


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

            نوشته اصلی توسط LiZaRd.BoY
            بستگی داره.مثلا" ADC کلا 2-3 تا رجیستر داره کسی کتابخونه براش نساخته بذاره برای دانلود.خودت با چند خط کد میتونی بنویسی.اما برای دانلود هم هست.مثل همون usart که پست قبل گذاشتم.

            ولی آدم خودش بنویسه بیشتر براش قابل درکه که چیکار کرده.تو نت سرچ بزن توی سایتایی مثل avrfreaks کتابخونه زیاده.
            درسته ولی نوشتن کتابخونه برای ال سی دی و ... زمان بره...
            این کتابخونه های اماده مثل همینی که گزاشتید رو چطور باید ازش استفاده کرد که هدرشو که ادد میکنیم خطا نگیره ؟
            همون میک فایلی که داخل پوشش هست رو باید در مسیر زیر کپی کرد؟(ورزن 6 دارم):
            Atmel\Atmel Studio 6.0\extensions\Atmel\AVRGCC\3.4.1.95\AVRToolchain\ avr\include\

            دیدگاه


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

              نوشته اصلی توسط ((O-I-O))
              درسته ولی نوشتن کتابخونه برای ال سی دی و ... زمان بره...
              این کتابخونه های اماده مثل همینی که گزاشتید رو چطور باید ازش استفاده کرد که هدرشو که ادد میکنیم خطا نگیره ؟
              همون میک فایلی که داخل پوشش هست رو باید در مسیر زیر کپی کرد؟(ورزن 6 دارم):
              Atmel\Atmel Studio 6.0\extensions\Atmel\AVRGCC\3.4.1.95\AVRToolchain\ avr\include\
              بعد از اینکه پروژه رو ساختی روی solution explorer کلیک کن.روی اسم پروژه رایت کلیک کن و از قسمت add گزینه existing رو بزن و فایل هدر و فایل سورست رو انتخاب کن و ok کن.خودش یه کپی ازش رو به مسیر پروژت اضافه میکنه.

              دیدگاه


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

                سلام به همه
                صلوات
                یعنی کسانی که با atmel studio کار میکنن هر کسی برای خودش باید کتابخونه بنویسه؟کتابخونه فروشی مطمین یا دزدیدنی سراغ ندارید؟
                بله ، کتابخونه های فروشی هم هست
                اما بهتره برای کار با رجیستر های خود میکروکنترلر خودتون کتابخونه اش رو بنویسین چون اینجوری با ساختارش بیشتر آشنا میشین.
                می تونی به سایت http://shop.hand-glass.com/ بری
                قبلا درمورد کتابخونه ها توضیح داده بودم یه نگاه به پست زیر بندازین
                http://www.eca.ir/forum2/index.php?topic=96325.0
                اگر جاییش سوال داشتی بپرس
                ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
                شهید دکتر مصطفی چمران
                اللهم صل علی محمد و ال محمد و عجل فرجهم
                ; C is not for children

                دیدگاه


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

                  نوشته اصلی توسط Hamed Gh
                  این گزینه ها در نسخه ای که من دارم وجود ندارد اما اگر اشتباه نکرده باشم اینها پلاگین هایی هستند برای برنامه نویسی میکروهای ARM در محیط Atmel Studio که فایلها و تنظیمات مربوطه رو به پروژه اضافه می کنند. یک کامپایلر برای ARM در محیط Atmel Studio یعنی خروجی برنامه ای که نوشته شده بوسیله این کامپایلر خواهد بود.
                  جزئیات بیشتر در لینک زیر:
                  http://www.keil.com/support/man/docs/mdkatmelext/
                  و لینک زیر:
                  https://gallery.atmel.com/Products/Details/8a1989c1-93b1-43ce-b90f-26def6aec519

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

                  دیدگاه


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

                    سلام خدمت همه

                    این کد :

                    کد:
                    ((void(*)(void))0)()
                    معادل این کد در زبان اسمبلی :

                    کد:
                    RJMP 0;
                    هست.
                    هردو کاریکسانی میکنند و PROGRAM COUNTER رو 0 میکنند.به بیانی میکرو ریست میشه ولی مقدار رجیستر ها تغییری نمیکنه که البته درست هم هست.
                    حالا میخوام بدونم آیا میشه به طریقی کل رجیستر ها رو به مقدار دیفالت داخل دیتاشیت برگردوند؟
                    در واقع میخوام به طور نرم افزاری کاری که ریست سخت افزاری انجام میده رو پیاده سازی کنم
                    با تشکر
                    تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                    www.intelart.ir


                    ساخت کنترلر دما PID فازی با AVR [آموزشی]

                    دیدگاه


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

                      نوشته اصلی توسط punisher.x64
                      سلام خدمت همه

                      این کد :

                      کد:
                      ((void(*)(void))0)()
                      معادل این کد در زبان اسمبلی :

                      کد:
                      RJMP 0;
                      هست.
                      هردو کاریکسانی میکنند و PROGRAM COUNTER رو 0 میکنند.به بیانی میکرو ریست میشه ولی مقدار رجیستر ها تغییری نمیکنه که البته درست هم هست.
                      حالا میخوام بدونم آیا میشه به طریقی کل رجیستر ها رو به مقدار دیفالت داخل دیتاشیت برگردوند؟
                      در واقع میخوام به طور نرم افزاری کاری که ریست سخت افزاری انجام میده رو پیاده سازی کنم
                      با تشکر
                      سلام.

                      واچ داگ را فعال کنید و برنامه را داخل یه while(1) گیر بندازید. اونوقت میکرو ریست میشه.

                      دیدگاه


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

                        سلام مجدد
                        مرسی بابت پاسختون
                        ولی مشکل اینجاست که من حلقه های زیادی دارم و خیلی جاها هم باید منتظر دستور کاربر بمونم
                        و مورد دوم اینه که اگه توی یکی از این حلقه ها واچ داگ میکرو رو ریست کنه دیگه به حالت اول بر نمیگرده.چون که اول برنامه هم توی یه حلقه گیر میکنه و وضعیت یه سوئیچ رو بررسی میکنه که در واقع سوئیچ روشن کردن میکرو هستش...

                        اگه راه دیگه ای به جز واچ داگ نیست فکر کنم باید رجیسترهایی که میخوام ریست بشند رو قبل از 0 کردن PROGRAM COUNTER خودم دستی صفرشون کنم...
                        تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                        www.intelart.ir


                        ساخت کنترلر دما PID فازی با AVR [آموزشی]

                        دیدگاه


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

                          سلام.

                          من منظورم این نبود که کلا واچ داگ فعال باشه. هر جا خواستید برنامه ریست بشه واچ داگ را فعال کنید و یه حلقه بنویسید. این روش ، روش استانداردی هست.

                          دیدگاه


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

                            نوشته اصلی توسط sadeghmojtabaei
                            سلام.

                            من منظورم این نبود که کلا واچ داگ فعال باشه. هر جا خواستید برنامه ریست بشه واچ داگ را فعال کنید و یه حلقه بنویسید. این روش ، روش استانداردی هست.
                            بله دوست عزیز
                            همین کارو کردم...هنگام خاموش کردن سیستم واچ داگ رو فعال میکنم... :nice:
                            تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                            www.intelart.ir


                            ساخت کنترلر دما PID فازی با AVR [آموزشی]

                            دیدگاه


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

                              سلام
                              یه سوال
                              تفاوت بین Release و Debug چی هست؟
                              چرا حجم هگز خروجی از Release بیشتر از Debug هست؟
                              با تشکر
                              تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                              www.intelart.ir


                              ساخت کنترلر دما PID فازی با AVR [آموزشی]

                              دیدگاه


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

                                سلام!
                                بعد از تلاشهای فراوان نحوه استفاده از دستور sprintf رو توی atmel studio فهمیدم ! حالا با کدهای زیر که خیلیم خوب کار میکنه متاسفانه یه مشکله بزرگ دارم!
                                هر تابعیرو که توی while تابع main و یا حتی اول تابع فراخوانی میکنم متاسفانه usart متوقف میشه م دیگه چیزی سند نمیکنه ! متاسفانه نمیدونم این مشکل از چیه حسابی داره آزارم میده ! از دوستان کسی به winavr مسلط هست ؟ کدمو میزارم :

                                کد:
                                
                                void USART_Init( unsigned int ubrr)
                                {
                                	UBRRH = (unsigned char)(ubrr>>8);
                                	UBRRL = (unsigned char)ubrr;
                                	UCSRB = (1<<RXEN)|(1<<TXEN);
                                	UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
                                }
                                
                                void USART_Transmit( unsigned int data )
                                {
                                
                                	while ( !( UCSRA & (1<<UDRE)) );
                                	UDR = data;
                                }
                                
                                
                                static int uart_putchar(char c, FILE *stream);
                                
                                static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL,_FDEV_SETUP_WRITE);
                                
                                static int uart_putchar(char c, FILE *stream)
                                {
                                
                                	if (c == '\n')
                                	uart_putchar('\r', stream);
                                	loop_until_bit_is_set(UCSRA, UDRE);
                                	UDR = c;
                                	return 0;
                                }
                                
                                int main(void)
                                {
                                	USART_Init(MYUBRR );
                                  char buff[100];
                                	double arash=121.2;
                                	stdout = &mystdout;
                                	while(1){
                                  sprintf(buff,"%f",arash);
                                		puts(buff);
                                	}
                                }
                                مثلا تابعی مثل تابع زیر با فراخوانی در تابع main موجب توقف کار میشه!
                                کد اصلیه بنده ستاپ اولیه سنسور mpu6050 با i2c هست که حتی این تابعروهم نمیتونم فراخوانی کنم !
                                کد:
                                void nothing(){
                                while(1){
                                arash+=1;
                                }

                                دیدگاه

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