اطلاعیه

Collapse
No announcement yet.

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

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

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

    نوشته اصلی توسط RubeuS
    سلام
    ببنید وقتی میگید پالس ساعت میدید به حسگر یعنی پروتوکل ارتباطی تون به احتمال زیاد spi است ولی فرقی نمیکنه . هرچی که باشه usart و.. چون اینها یک ماژول سخت افزاری درون میکرو هستند و به پردازنده کاری ندارند. (پردازنده هم خودش یه جورایی یه ماژول سخت افزاری جدا هست) . پس بدون توجه به cpu کار خودشون را ادامه میدند.
    ببنید cpu دستور به این ماژول ها میده و اینها بدون اینکه کاری با cpu داشته باشند دیتا را میفرستند و کار خودشون را میکنند و بعد از موفقیت در ارسال یا دریافت یا... یک پرچم بالا میبرند و در صورتی که امکان وقفه دادن وجود داشته باشه به cpu وقفه میدند.
    پس در حین ارسال دیگه کاری به پردازنده ندارند.
    (البته اگه این پروتکل های ارسال نرم افزاری پیاده سازی بشه ، اون قضیه اش فرق داره و کامل به cpu بستگی داره)

    من فکر میکنم منظورتون همون اینترفیس های سخت افزاری میکرو باشه و در این صورت یه کلام :
    نه به کارشون ادامه میدند و کاری به وقفه و پردازنده و ... ندارند.
    این پروتکل نرم افزاری پیاده میشه در واقع هرزمان پالس ارسال بشه از اون طرف دیتا دریافت میشه .

    دیدگاه


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

      نوشته اصلی توسط aseok
      این پروتکل نرم افزاری پیاده میشه در واقع هرزمان پالس ارسال بشه از اون طرف دیتا دریافت میشه .
      دقیقا پروتکل ارتباطی را بگید چیه تا بهتون بگم چه جوریه.

      یعنی شما میایید برای دریافت اطلاعات از سنسور هر بیت که میاد مقدار پین مربوطه را میخونید و بعد از اون مثلا با هشت بار خوندن مقدار پین یک بایت دریافت میکنید؟ اگه اینجوری باشه این یعنی پیاده سازی نرم افزاری ولی اگه از رجیسترهای مثل SPDR و ... استفاده میکنید . اون سخت افزاریه.
      راه اندازی ماژول 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

        از رجیستری استفاده نمیشه و اعمال پالسها در خطوط برنامه پیاده سازی میشه ، یک بیت به ازای هر پالس .

        دیدگاه


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

          نوشته اصلی توسط aseok
          از رجیستری استفاده نمیشه و اعمال پالسها در خطوط برنامه پیاده سازی میشه ، یک بیت به ازای هر پالس .
          پس در این صورت همون پیاده سازی نرم افزاریه و وقفه ها میتونند روش تاثیر بزارند(البته به نحوه کد نویسی بستگی داره)
          درضمن به رفتار سنسور هم بستگی داره که در صورتی که کلاک منظمی بهش ندیم چه برخوردی از خودش نشون میده.

          ولی در کل بهتره قبل از خواندن مقادیر سنسور ( کلاک دادن بهش و مشاهده ی پین ورودی) کلا وقفه ها را ناتوان کنیم . که در این صورت وقفه یا وقفه های مزاحم(من اینجا بهش میگم وقفه مزاحم چون باعث مزاحمت در کار ما میشه) نتونند حواس سی پی یو را از انجام کارش پرت کنند.(به طوری که وسط خواندن اطلاعات ، پردازنده بره روتین وقفه را اجرا کنه)

          و خیلی بهتره که سخت افزاری عمل خوندن انجام بشه.
          راه اندازی ماژول 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

            سلام

            وقتی سطح بهینه سازی رو برابر صفر ( بدون بهینه سازی ) قرار میدم ، پس از کامپایل چنین اخطاری داده میشه :

            کد:
            Warning	1	#warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed" [-Wcpp]	 	95	3	as5045

            دیدگاه


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

              سلام
              برای اینکه یک متغیر در روتین وقفه ( ISR ) شناخته بشه و قابل استفاده باشه ، در کجا باید تعریف بشه ؟ برای مثال متغیری که global باشه در روتین اعتبار داره ؟

              باتشکر .

              دیدگاه


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

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

                وقتی سطح بهینه سازی رو برابر صفر ( بدون بهینه سازی ) قرار میدم ، پس از کامپایل چنین اخطاری داده میشه :

                کد:
                Warning	1	#warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed" [-Wcpp]	 	95	3	as5045
                این یه وارنیگه که مربوط به فایل delay.h میشه.
                خوب معلومه دیگه : میگه رو سطح بدون بهینه سازی فانکشن های این کتابخونه درست کار نمیکنه.

                شما هم خودتون میتونید یک کدی بنویسید و طوری نوشته بشه که تحت یک شرایطی به برنامه نویس وارنینگ بده . (تو کتابخونه نویسی خیلی مفیده )
                با استفاده از warning#

                راه اندازی ماژول 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

                  نوشته اصلی توسط aseok
                  سلام
                  برای اینکه یک متغیر در روتین وقفه ( ISR ) شناخته بشه و قابل استفاده باشه ، در کجا باید تعریف بشه ؟ برای مثال متغیری که global باشه در روتین اعتبار داره ؟

                  باتشکر .
                  در دو حالت شناخته میشه:
                  1- متغییر محلیه خود تابع ISR باشه ( تو همون بلوک ISR تعریف شده باشه)
                  2- global باشه.

                  پس جوابتون: بله میشه.

                  --------------------------------------------------------

                  حالا یه نکته کلی هم بگم بد نیست:
                  متغییر global معمولی در کلیه ی فایل های پروژه قابل دسترسیه ( دیگه ISR که سهله)

                  متغییر global را اگر کنارش کلمه static بزارید فقط در فایل تعریف شده در پروژه قابل دسترسیه.(اگر ISR تو همون فایل باشه پس داخلش میشه به متغییر دسترسی داشت ولی اگه ISR موردنظر داخل فایل دیگه ای باشه ، نمیشه بهش دسترسی داشت)
                  راه اندازی ماژول 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

                    این یه وارنیگه که مربوط به فایل delay.h میشه.
                    خوب معلومه دیگه : میگه رو سطح بدون بهینه سازی فانکشن های این کتابخونه درست کار نمیکنه.

                    شما هم خودتون میتونید یک کدی بنویسید و طوری نوشته بشه که تحت یک شرایطی به برنامه نویس وارنینگ بده . (تو کتابخونه نویسی خیلی مفیده )
                    با استفاده از warning#

                    برای رفع این مشکل چه راهکاری وجود داره ؟
                    تشکر.

                    دیدگاه


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

                      نوشته اصلی توسط aseok

                      برای رفع این مشکل چه راهکاری وجود داره ؟
                      تشکر.
                      خوب کاملا واضحه : در صورتی که میخواهید از توابع delay استفاده کنید ، نباید سطح بهینه سازی را صفر(یا none ) قرار دهید.
                      به مسیر زیر بروید :
                      project --> main properties --> Toolchain --> AVR/GNU C Compiler --> Optimization
                      و سطح بهینه سازی ( Optimization Level ) را تغییر دهید. (نباید در حالت None باشد.)

                      حالا دوباره کامپایل کنید. دیگه وارنینگ نمیده
                      راه اندازی ماژول 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

                        سلام

                        باچه دستوری میشه در یک نقطه دلخواه از روتین وقفه خارج شد ؟ آیا با return میشه ؟

                        تشکر .

                        دیدگاه


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

                          سلام

                          احتمالا محل مناسبی برای این سوال نیست ولی در برنامه پروگرامر proisp ( برای zhif eng soft ) در حالت کریستال نوسان ساز خارجی ، گزینه ها کیفی هستند ( بسامد کم ، متوسط یا زیاد ) در این حالت بسامد 16MHZ معادل کدوم میشه ؟

                          باتشکر .

                          دیدگاه


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

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

                            باچه دستوری میشه در یک نقطه دلخواه از روتین وقفه خارج شد ؟ آیا با return میشه ؟

                            تشکر .
                            بله میشه.

                            بهتره از دستور ;(asm("reti استفاده کنید.
                            راه اندازی ماژول 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

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

                              احتمالا محل مناسبی برای این سوال نیست ولی در برنامه پروگرامر proisp ( برای zhif eng soft ) در حالت کریستال نوسان ساز خارجی ، گزینه ها کیفی هستند ( بسامد کم ، متوسط یا زیاد ) در این حالت بسامد 16MHZ معادل کدوم میشه ؟

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

                              دقیقا میخواید چه کاری انجام بدید؟
                              راه اندازی ماژول 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

                                یک خبر جدید:

                                سری آموزش های میکروکنترلر خانواده XMEGA اتمل توسط جناب کی نژاد آغاز شد.

                                برای دانلود میتوانید به سایتشون مراجعه کنید.
                                راه اندازی ماژول 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 سفارش راه انداز ماژول های مختلف توسط اعضای انجمن
                                انشالله به زودی تاپیک ها به روز رسانی خواهد شد،

                                دیدگاه

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