اطلاعیه

Collapse
No announcement yet.

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

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

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

    نوشته اصلی توسط طراح
    چه عددی برای Baud Rate مورد نظر شما بوده است؟
    تو فایل ضمیمه نوشته شده: 9600.
    بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
    موفقیت پیش رفتن است نه به نقطه ی پایان رسیدن
    نلسون ماندلا

    دیدگاه


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

      در پروژه IAR شما 9600 را مشاهده نکردم. اما در هرصورت و با فرض فرکانس 11059200 برای کریستال باید قرار دهید:

      کد:
      USART_Baudrate_Set(&USARTC0, 71 , 0);
      اوژن: به معنای افکننده و شکست دهنده است
      دانایی، توانایی است-Knowledge is POWER
      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

      دیدگاه


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

        با سلام.
        اقای بابائی البته من سورس شما رو ندیدم ولی اگه به گفته خودتون مشکل از baud باشه ببینین این فایل به دردتون می خوره این فایل تو excel نوشته شده و شما می تونین با دادن مقادیر baud مورد نظر خود را با در صد خطا ببینین.

        http://up.iranblog.com/images/57pmpqg5m7opibvfowvy.zip
        دکتر شریعتی:

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

        دیدگاه


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

          نوشته اصلی توسط طراح
          در پروژه IAR شما 9600 را مشاهده نکردم. اما در هرصورت و با فرض فرکانس 11059200 برای کریستال باید قرار دهید:

          کد:
          USART_Baudrate_Set(&USARTC0, 71 , 0);
          بله آقای کی نژاد حق با شما بود من در فایلم ذکر نکرده بودم. معذرت میخوام.
          والا من این اعداد 71 و 0 رو صد بار امتحان کردم اما دیتایی که دریافت میکنم اصال با چیزی که ارسال میکنم مطابقت ندارد.
          نوشته اصلی توسط NAO_ROBOT
          با سلام.
          اقای بابائی البته من سورس شما رو ندیدم ولی اگه به گفته خودتون مشکل از baud باشه ببینین این فایل به دردتون می خوره این فایل تو excel نوشته شده و شما می تونین با دادن مقادیر baud مورد نظر خود را با در صد خطا ببینین.

          http://up.iranblog.com/images/57pmpqg5m7opibvfowvy.zip
          دستتون درد نکنه ولی قبلا اینو دیده بودم مشکلم سر همین 9600 هست.

          از ft232 استفاده میکنم . احتمال داره مشکل از اون باشه؟ یا کار از جای دیگه میلنگه؟ فرکانس روی کریستال خارجی 11059200 هرتز تنظیمه و پری اسکیل ها هم همه یک میباشند.
          بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
          موفقیت پیش رفتن است نه به نقطه ی پایان رسیدن
          نلسون ماندلا

          دیدگاه


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

            واقعیتش
            پیش اساتید اضهار نظر کردن خطاست.ولی تو این نوع ارتباط به دلیل حساسیت سخت افزار ,نرم افزار امکان خطا تو هر کدوم از اینها هست,متاسفانه چون فعلا به پورت com دسترسی ندارم نمی تونم سورس شمارو تست کنم تا بهتر به نتیجه برسیم
            دکتر شریعتی:

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

            دیدگاه


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

              این یک نمونه کد است که با Baud Rate=9600 و فرکانس اسیلاتور داخلی 2 مگاهرتز، از طریق Hyperterminal با کامپیوتر ارتباط برقرار می کند و اطلاعات را روی LCD کاراکتری نشان می دهد. کتابخانه LCD کاراکتری در پست های قبل همین تاپیک ضمیمه شده است:

              کد:
              #include "avr_compiler.h"
              #include "lcd_0.h" 
              #include "TC_driver.h"
              #include "port_driver.h"
              unsigned char __flash keycodes[]={0x88,0x30,0x28,0x24,0x22,0x50,0x48,0x44,0x42,0x90,0x84,0x82}; 
              char __flash chr[]={'0','1','2','3','4','5','6','7','8','9',' ','-'};
              
              #define nokey_code 12
              volatile unsigned char key_code=nokey_code;
              void main()
              {
               unsigned char old_key_code=nokey_code; 
               unsigned char i=0; 
               PORT_ConfigurePins(&PORTA,0xFE,false,false,PORT_OPC_PULLDOWN_gc,PORT_ISC_BOTHEDGES_gc); 
               TC0_ConfigClockSource(&TCD0,TC_CLKSEL_DIV1_gc);
               TC0_SetOverflowIntLevel(&TCD0,TC_OVFINTLVL_LO_gc);
               TC_SetPeriod(&TCD0,39999);  // 20 msec = (39999+1)/2MHZ
               LCDInit();
               PORTD.DIRSET = PIN3_bm; // TXD0
               USARTD0_CTRLC=USART_CMODE_ASYNCHRONOUS_gc|USART_PMODE_DISABLED_gc|USART_CHSIZE_8BIT_gc; 
               USARTD0_BAUDCTRLA=12; //Baud Rate = 9600
               USARTD0_CTRLB=USART_RXEN_bm|USART_TXEN_bm; 
               PMIC_CTRL=PMIC_LOLVLEN_bm;    //set low level interrupt enable  
               __enable_interrupt(); 
               LCDGotoXY(0,0); 
               while(1)
               { 
               if(USARTD0_STATUS & USART_RXCIF_bm)
               {  
                LCDSendData(USARTD0_DATA); 	// display received data on LCD  
                if(++i==16)
                {
                i=0;
                LCDGotoXY(0,0); 
                }
               }	 
               if (key_code!= old_key_code)
               {     
                old_key_code=key_code;
                if (key_code!=nokey_code)
                {   
                while( !(USARTD0_STATUS & USART_DREIF_bm));	//wait for data register empty
                USARTD0_DATA=chr[key_code];	    //send data to PC
                }
               }
               } 
              }
              
              ISR(TCD0_OVF_vect)
              
              { 
               unsigned char variable,i;
               PORT_SetDirection( &PORTA,0XE0 );  // ROWs=OUT COLUMNs=IN 
               PORT_SetOutputValue( &PORTA,0XE0 );  // ROWs=1
               delay_us(10); // delay for signal stablization
               variable=(PORTA_IN & 0X1E);
               PORT_SetDirection( &PORTA,0X1E );  // ROWs=IN COLUMNs=OUT
               PORT_SetOutputValue( &PORTA,0X1E );  // COLUMNs=1
               delay_us(10);
               variable |=(PORTA_IN & 0XE0);
               for(i=0;i<12;i++)
               {
               if(variable==keycodes[i])
               { 
                key_code=i;   
                break;
               }
               else key_code=nokey_code;    
               } 
              }
              اوژن: به معنای افکننده و شکست دهنده است
              دانایی، توانایی است-Knowledge is POWER
              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

              دیدگاه


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

                سلام
                اینم پروژه تایمر راه پله برای xmega این پروژه فقط جنبه اشنائی با تایمر را دارد.

                عملکرد مدار:
                با فشردن کلید sw1(متصل به portf.0) میکرو کنترولر تا 30 می شمارد و بعد از 30 ثانیه قطع میشود که عمل شمردن و اغاز به کار رو یlcd به نمایش در می اید.

                با فشردن sw1 روی بردled1(متصل به PORTK.0) روشن میشود وبعد از اتمام 30 ثانیه خاموش می گردد که میتوانید به جای led از یک ترانزیستور و رله استفاده کنید.

                زمان مورد نظر تقریبا 30 ثانیه می باشد(با کمی خطا،که میتوانید با محاسبه prescalerو کریستال مورد استفاده
                زمان دقیق را حساب کنید)،میکرو کنترولر با فرکانس 32mhz پیکر بندی شده.

                سورس مورد نظر در کامپایلرهای ,IAR,AVR STUDIO 5,mikroc pro avr نوشته شده و از تایمر TC0 استفاده گردیده.

                دانلود کد نوشته شده با کامپایلر MIKROC:
                http://s1.picofile.com/file/6982741446/timer.rar.html


                دانلود کد نوشته شده با کامپایلر IAR:
                http://s1.picofile.com/file/6982744464/TIMER_2.rar.html


                دانلود کد نوشته شده با کامپایلرAVRSTUDIO 5:
                http://s1.picofile.com/file/6982746476/TIMER_GCC.rar.html

                (سورس های نوشته شده در کامپایلر های IAR,AVRSTUDIO 5 تماما با کتابخانه های ارئه شده توسط ATMEL می باشد)


                دکتر شریعتی:

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

                دیدگاه


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

                  سلام.

                  بعد از مدتها تصمیم گرفتم با این کتابخانه FAT کار کنم ولی قبل کار کردن باید برای میکرو و کامپایلر مورد نظر MATCH کرد اینجا بود که یادم افتاد مهندس کی نژاد گفته بودن ایشون قبلا این کارو کردن حالا ازشون می خوام اگه ممکنه اون فایل مورد نظر رو بزارن تا ما هم استفاده کنیم.
                  دکتر شریعتی:

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

                  دیدگاه


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

                    توی اموزش دوم اقای محمد نحوی
                    یک ویو پلایر ساخته شده
                    این کتابخونه مچ شده با کامپایلر
                    http://www.eca.ir/forum2/index.php?topic=50648.0
                    هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                    بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                    میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

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

                    دیدگاه


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

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

                      دیدگاه


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

                        سلام
                        من قصد دارم با میکرو Xmega رو شبکه کنم از طریق USART ابتدای کار با 2تا میکرو ولی در مراحل بعدی تعدادشون بیشتر میشه تا7 ،موضوعی که مهمه اینکه چون فاصله کار ما زیاد 1.2 کیلومتر من نیاز به یک پروتکل قوی برای ارسال و دریافت داده نیاز دارم از RS485 و آی سی ADM1491E استفاده می کنم،میشه یک پروتکل قوی برای ارسال دریافت بگید .
                        تشکر :applause:

                        دیدگاه


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

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

                          دیدگاه


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

                            کسی یه نمونه کد ساده برای LCD کارکتری داره؟
                            اعصابمو خرد کرده چند تا سورس مختلف رو امتحان کردم ولی کار نمیکنه 3 تا LCD گذاشتم بازم نه انگار اصلا اطلاعات بهش نمیرسه سورس آقای کی نژاد هم تست کردم با کدویژن هم تست کردم ولی انگار نه انگار
                            نمیدونم مسئله Logic هست یا چیز دیگه

                            دیدگاه


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

                              نوشته اصلی توسط شهریار رجب زاده
                              کسی یه نمونه کد ساده برای LCD کارکتری داره؟
                              اعصابمو خرد کرده چند تا سورس مختلف رو امتحان کردم ولی کار نمیکنه 3 تا LCD گذاشتم بازم نه انگار اصلا اطلاعات بهش نمیرسه سورس آقای کی نژاد هم تست کردم با کدویژن هم تست کردم ولی انگار نه انگار
                              نمیدونم مسئله Logic هست یا چیز دیگه
                              سورس آقای کی نژاد اگه فایل ها را درست وارد کنید و در فایل کانفیگ پورت ها رو درست مشخص کرده باشید به صورت خیلی هلو کار میکند.
                              بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
                              موفقیت پیش رفتن است نه به نقطه ی پایان رسیدن
                              نلسون ماندلا

                              دیدگاه


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

                                کسی نظری ندارد؟ با سورس آقای کی نژاد LCD خط اولش روشن میشه و گاهی نصف خط دوم روشن میشه راستی این سورس که مال LCD با ابعاد 4*20 هست
                                الآن با انواع و اقسام LCD های 2*16 تست کردم با سورس های مختلف پایه های مرتبط رو چک کردم پورت ها رو عوض کردم تغذیه رو چک کردم و عوض کردم ولی نمیدونم مشکل از چیه؟

                                دیدگاه

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