اطلاعیه

Collapse
No announcement yet.

نمونه کدهایی برای XMEGA

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #91
    پاسخ : نمونه کدهایی برای XMEGA

    100% مشکل از سمته خودته منم تست کردم مشکلی نبوده
    هم کدویژن و هم باید سورس جناب طراح
    هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
    بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
    میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

    تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

    دیدگاه


      #92
      پاسخ : نمونه کدهایی برای XMEGA

      نوشته اصلی توسط n340
      100% مشکل از سمته خودته منم تست کردم مشکلی نبوده
      هم کدویژن و هم باید سورس جناب طراح
      درست شد :wow:
      انشاالله یه هدر LCD براتون آماده میکنم

      دیدگاه


        #93
        پاسخ : نمونه کدهایی برای XMEGA

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

        تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

        دیدگاه


          #94
          پاسخ : نمونه کدهایی برای XMEGA

          نوشته اصلی توسط n340
          من دارم روی این کد mmc کار میکنم
          سورس جناب طراح واقعا سنگینه
          کسی توضیحی در رابطه با این نداره
          چه بخشی از کد مد نظر شماست که نیاز به توضیح داشته باشد. این کد در واقع همان کتابخانه Chan است که فقط بخش spi و ارتباط با mmc آن متناسب با XMEGA تغییر داده شده و بخش fat آن تغییر خاصی نداشته است.
          اوژن: به معنای افکننده و شکست دهنده است
          دانایی، توانایی است-Knowledge is POWER
          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

          دیدگاه


            #95
            پاسخ : نمونه کدهایی برای XMEGA

            از آقایان نحوی، علیزاده(NAO_ROBOT)، رجب زاده و بابایی که در این مدت برای فعالیت در انجمن XMEGA و دراختیار قرار دادن اطلاعات و نمونه کد زحمت کشیدند، اگر علاقه مند هستند از طریق پیغام خصوصی به من اعلام کنند تا یک مدارچاپی برد آموزشی XMEGA و برد مبدل آن را برای آنها ارسال کنم و زحمت مونتاژ قطعات را هم خودشان متقبل شوند تا کلیه نمونه کدهایی که در این تاپیک و سایت های دیگر قرار داده ام، مستقیما قابل استفاده باشد و برای سایر نمونه کدها هم یک هماهنگی از نظر سخت افزار ایجاد شود.
            اوژن: به معنای افکننده و شکست دهنده است
            دانایی، توانایی است-Knowledge is POWER
            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

            دیدگاه


              #96
              پاسخ : نمونه کدهایی برای XMEGA

              نوشته اصلی توسط شهریار رجب زاده
              کسی نظری ندارد؟ با سورس آقای کی نژاد LCD خط اولش روشن میشه و گاهی نصف خط دوم روشن میشه راستی این سورس که مال LCD با ابعاد 4*20 هست
              الآن با انواع و اقسام LCD های 2*16 تست کردم با سورس های مختلف پایه های مرتبط رو چک کردم پورت ها رو عوض کردم تغذیه رو چک کردم و عوض کردم ولی نمیدونم مشکل از چیه؟
              میدونید مشکل از چی بود؟؟؟
              AVR Studio5.0 پروگرام نمیکرد!!!AVR Studio5.0 من پک XMEGA های جدید روش نصبه و خود نرم افزار هم روی یک لپ تاپ ویندوز سون 64 بیت
              اما با AVR Studio4.0 پروگرام کردم درست شد :eek:

              دیدگاه


                #97
                پاسخ : نمونه کدهایی برای XMEGA

                میدونید مشکل از چی بود؟؟؟
                AVR Studio5.0 پروگرام نمیکرد!!!AVR Studio5.0 من پک XMEGA های جدید روش نصبه و خود نرم افزار هم روی یک لپ تاپ ویندوز سون 64 بیت
                اما با AVR Studio4.0 پروگرام کردم درست شد
                سلام

                حتما تو تنظیمات یه جاییش مشکل داشتید واگر نه من AVRSTUDIO 5 رو روی WIN7 64BIT استفاده میکنم نه تو کامپایل مشکل داره نه تو پروگرم.
                دکتر شريعتي:

                زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                دیدگاه


                  #98
                  پاسخ : نمونه کدهایی برای XMEGA

                  دوستان من چند نکته ای اشکال دارم نسبت به ارسال سریال

                  کدهای راهندازی

                  کد:
                   USART_InterruptDriver_Initialize(&USART_data, &USART, USART_DREINTLVL_LO_gc);
                   USART_Format_Set(USART_data.usart, USART_CHSIZE_8BIT_gc,USART_PMODE_DISABLED_gc, false);
                   USART_RxdInterruptLevel_Set(USART_data.usart, USART_RXCINTLVL_LO_gc);
                   USART_Baudrate_Set(&USART, 12 , 0);
                   USART_Tx_Enable(USART_data.usart);
                  و حالا با این تابع puts رو بسازم ولی مشکلی که هست تا 3 حرف بیشتر ارسال نمی کنه،پشته رو هم فضای زیادی تعیین کردم

                  کد:
                  void puts1(unsigned char *data)  
                  {
                  while(*data != '\0' )
                  {
                    USART_PutChar(&USART,*data++);
                  }}
                  و مورد دیگه که بود
                  چطور میشه وردی تابع puts رو علاوه بر مقدار متغیری که میدیم ،ماژول خروجی هم قرار بدیم یعنی بدین صورت

                  puts1("salam",USARTD1);
                  هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                  بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                  میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                  تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                  دیدگاه


                    #99
                    پاسخ : نمونه کدهایی برای XMEGA

                    نوشته اصلی توسط n340
                    دوستان من چند نکته ای اشکال دارم نسبت به ارسال سریال

                    کدهای راهندازی

                    کد:
                     USART_InterruptDriver_Initialize(&USART_data, &USART, USART_DREINTLVL_LO_gc);
                     USART_Format_Set(USART_data.usart, USART_CHSIZE_8BIT_gc,USART_PMODE_DISABLED_gc, false);
                     USART_RxdInterruptLevel_Set(USART_data.usart, USART_RXCINTLVL_LO_gc);
                     USART_Baudrate_Set(&USART, 12 , 0);
                     USART_Tx_Enable(USART_data.usart);
                    و حالا با این تابع puts رو بسازم ولی مشکلی که هست تا 3 حرف بیشتر ارسال نمی کنه،پشته رو هم فضای زیادی تعیین کردم

                    کد:
                    void puts1(unsigned char *data)  
                    {
                    while(*data != '\0' )
                    {
                      USART_PutChar(&USART,*data++);
                    }}
                    و مورد دیگه که بود
                    چطور میشه وردی تابع puts رو علاوه بر مقدار متغیری که میدیم ،ماژول خروجی هم قرار بدیم یعنی بدین صورت

                    puts1("salam",USARTD1);
                    در مورد سوال اولت کدت ایرادی نداره. در مورد دومی میتونی یه تابع بنویسی که آدرس USART مورد نظر رو به صورت پوینتر دریافت کند.
                    بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
                    موفقيت پيش رفتن است نه به نقطه ي پايان رسيدن
                    نلسون ماندلا

                    دیدگاه


                      پاسخ : نمونه کدهایی برای XMEGA

                      نوشته اصلی توسط طراح
                      اگر منظور شما یک پروتکل نرم افزاری است، به این بستگی دارد که حجم اطلاعات ارسالی و دریافتی چقدر باشد که بر اساس آن بتوان روش های مختلف را بکار برد. به عنوان یک مثال ساده اگر وقت کافی در اختیار دو میکروکنترلر باشد، بجای اینکه هر بایت یک بار ارسال شود، می توان آن را N بار ارسال کرد و اگر تمام و یا بخش مشخصی از این N بایت شبیه هم باشند، به عنوان اطلاعات درست در نظر گرفته شوند. یا اعمال روش هایی مثل parity و Checksum و CRC می تواند در صحت ارسال اطلاعات بکار گرفته شود. پائین آوردن نرخ ارسال اطلاعات هم در فواصل طولانی بسیار موثر است که البته حجم اطلاعات رد و بدل شده را کاهش می دهد.
                      ممنون بابت راهنمای :rolleyes:تعداد slave ها همون طور که بیان کردم در ابتدا دو میکرو ولی در نهایت تعداد آنها تا 7 عدد زیاد می گردد در این سیستم داده های که در شبکه توسط باس منتقل می گردد هم دیجیتال و هم آنالوگ است و از حداقل 9 تا حداکثر 20 تا می باشد موضوعی که مطرح می شود این است که من از این روش استفاده کردم که هر master فقط یکی از slave ها را فراخوانی می کند و یکی از داده های مربوط به آن را از باس بر می دارد به این روش سیستم دارای امنیت بالا در خواندن داده درست می گردد ولی در این حالت به علت لختی سیستم ممکن است (حتما !) یک تعداد از داده ها که برای سیستم مهم است از بین می رود و من برای اینکه این موضو کمتر شود تصمصیم دارم Boad rate را زیاد کنم!که این موضوع مخالف فرمایش شماست!
                      شما با توجه به ین سیستم چه پروتکلی برای ارسال و دریافت و چک خطا پیشنهاد می کنید، که مسئله کند شدن سیستم هم حل شود؟لطفا راهنمایی کنید شدیدا گیر افتادم. :question:

                      دیدگاه


                        پاسخ : نمونه کدهایی برای XMEGA

                        خوب پس دلیل اینکه 3 کاراکتر اول رو ارسال میکنه چی می تونه باشه؟
                        هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                        بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                        میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                        تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                        دیدگاه


                          پاسخ : نمونه کدهایی برای XMEGA

                          نوشته اصلی توسط n340
                          خوب پس دلیل اینکه 3 کاراکتر اول رو ارسال میکنه چی می تونه باشه؟
                          خب کل برنات رو بزار اینجا؟
                          بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
                          موفقيت پيش رفتن است نه به نقطه ي پايان رسيدن
                          نلسون ماندلا

                          دیدگاه


                            پاسخ : نمونه کدهایی برای XMEGA

                            دوستان مشکل حل شد
                            اینو میتونید به عنوان نمونه کد استفاده کنید

                            کد:
                            #include<ioavr.h>
                            #include<stdio.h>
                            #include<intrinsics.h>
                            #include "avr_compiler.h"
                            #include "usart_driver.h"
                            #include "port_driver.h"
                            
                            char i[6]="salam";
                            #define USART USARTC0
                            
                            USART_data_t USART_data;
                            
                            
                            
                            void puts1(char *data)  
                            {
                            while(*data != '\0' )
                            {
                             while(!USART_IsTXDataRegisterEmpty(&USART));
                              USART_PutChar(&USART,*data++);
                            }}
                            
                            
                            
                             main( void )
                            {
                             PORTC_DIR=255;
                            
                             USART_InterruptDriver_Initialize(&USART_data, &USART, USART_DREINTLVL_LO_gc);
                             USART_Format_Set(USART_data.usart, USART_CHSIZE_8BIT_gc,USART_PMODE_DISABLED_gc, false);
                             USART_RxdInterruptLevel_Set(USART_data.usart, USART_RXCINTLVL_LO_gc);
                             USART_Baudrate_Set(&USART, 12 , 0);
                             USART_Tx_Enable(USART_data.usart);
                             PMIC.CTRL |= PMIC_LOLVLEX_bm;
                              sei();
                             
                            
                             while(1)
                            {
                             
                             puts1(i);
                            
                             PORT_SetPins(&PORTC,1);
                             PORT_ClearPins(&PORTC,2);
                             delay_us(100000);
                             PORT_SetPins(&PORTC,2);
                             PORT_ClearPins(&PORTC,1);
                             
                             delay_us(100000);
                            }
                             
                            }


                            نکته ای باید بگم اینه که اینتراپت رو فعال کردم و در تابع puts1 شرطی مبنی بر منتظر ماندن برای ارسال کاراکتر قبل رو اضافه کردم و مشکل حل شد
                            خوب سوال پیش اومد چرا کاراکتر های بعد 3 حرف حذف میشد و ارسال نمی شد در جایی که تابع قبل در سری mega استفاده می شد و هیچ موردی نداشت؟
                            و دوتا سواله دیگه
                            puts داخلی iar رو چطور میشه تعیین کرد که برای چه ماژولی ارسال کنه
                            و این دستور چه کاری انجام می دهد USART_data_t USART_data;
                            هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                            بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                            میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                            تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                            دیدگاه


                              پاسخ : نمونه کدهایی برای XMEGA

                              ممنون بابت راهنمای تعداد slave ها همون طور که بیان کردم در ابتدا دو میکرو ولی در نهایت تعداد آنها تا 7 عدد زیاد می گردد در این سیستم داده های که در شبکه توسط باس منتقل می گردد هم دیجیتال و هم آنالوگ است و از حداقل 9 تا حداکثر 20 تا می باشد موضوعی که مطرح می شود این است که من از این روش استفاده کردم که هر master فقط یکی از slave ها را فراخوانی می کند و یکی از داده های مربوط به آن را از باس بر می دارد به این روش سیستم دارای امنیت بالا در خواندن داده درست می گردد ولی در این حالت به علت لختی سیستم ممکن است (حتما !) یک تعداد از داده ها که برای سیستم مهم است از بین می رود و من برای اینکه این موضو کمتر شود تصمصیم دارم Boad rate را زیاد کنم!که این موضوع مخالف فرمایش شماست!
                              شما با توجه به ین سیستم چه پروتکلی برای ارسال و دریافت و چک خطا پیشنهاد می کنید، که مسئله کند شدن سیستم هم حل شود؟لطفا راهنمایی کنید شدیدا گیر افتادم.
                              سلام
                              اگه فاصله بین master و slave زیاده که باید از baud کمتر استفاده کنید که تو ارسال داده ها به مشکل بر نخورید،اگه دوباره فاصله زیاده از rs485 یا از ماژول های بیسیم(که هزینش زیاد میشه) می تونین بهره ببرید.
                              البته زیاد اینطوری نیست و به عوامل دیگه هم بستگی داره که اقای طراح اشاره کردند

                              میکروی Master به salve شماره 1 می گوید داده اول از 7 داه خود راروی باس قرار بده وآن میکرو این کار را انجام می دهد،ولی در این حالت یک تاخیر زمانی در هر بار خواندن کال slaveتعریف می شود که سبب می گردد بعضی داده های آنالوگ که برای سیستم مهم است ازبین برود!!!من به این دلیل برخلاف صحبت شما Buad reta را بالا بردم .
                              اگه خواندن از slave ها به نوبت باشه یا قراره هر بار یه کانال خونده بشه که یه مقدار تاخیر عادی هستش و خطای موجود هم با انتخاب بهترین baud و کریستال و صد البته برنامه نویسی درست قابل حله
                              دکتر شريعتي:

                              زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                              دیدگاه


                                پاسخ : نمونه کدهایی برای XMEGA

                                و این دستور چه کاری انجام می دهد USART_data_t USART_data;
                                سلام
                                درباره این دستور این قسمت از فایل uart_driver.h رو مطالعه کنین خوب توضیح داده.
                                کد:
                                * Struct containing pointer to a usart, a buffer and a location to store Data
                                * register interrupt level temporary.
                                */
                                typedef struct Usart_and_buffer
                                {
                                	/* \brief Pointer to USART module to use. */
                                	USART_t * usart;
                                	/* \brief Data register empty interrupt level. */
                                	USART_DREINTLVL_t dreIntLevel;
                                	/* \brief Data buffer. */
                                	USART_Buffer_t buffer;
                                } USART_data_t;

                                همچنین این قسمت
                                کد:
                                * \param usart_data      The USART_data_t struct instance.
                                دکتر شريعتي:

                                زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                                دیدگاه

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