اطلاعیه

Collapse
No announcement yet.

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

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

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

    دو پروژه جدید که اخیرا در AVRFreaks قرار داده ام:

    1- تولید ملودی موسیقی " مارش ترک" ساخته موتسارت: http://www.avrfreaks.net/index.php?m...p;item_id=2970

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

    دیدگاه


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

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

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

      دیدگاه


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

        نوشته اصلی توسط n340
        شرمنده مهندس
        لینک کتابخانه port_driver.c رو من پیدا نکردم می تونید قرار بدید
        در آدرس atmel.com/xmega یک گزینه documents وجود دارد که این کتابخانه ها از طریق آن قابل دسترسی است:

        http://www.atmel.com/dyn/resources/p...ts/AVR1313.zip
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


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

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

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

          دیدگاه


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

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

            دیدگاه


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

              در رابطه با دستورات برای تنظیم کلاک در AVR1003 می تونید یک توضیح بدید که چطور مقدار دهی کنیم
              و اینکه در مطالب ذکر شده که فرکانس 2 مگ پیشفرض است ولی وقتی پروژه در iar کامپایل میشه می نویسه که در فرکانس 32 در حال کار است
              و اینکه فرکانس ساعت جدای از فرکانس کلاک میکرو تولید میشه ؟

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

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

              دیدگاه


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

                نوشته اصلی توسط n340
                در رابطه با دستورات برای تنظیم کلاک در AVR1003 می تونید یک توضیح بدید که چطور مقدار دهی کنیم
                در کد موجود در AVR1003 انواع تنظیمات برای کلاک مثال زده شده است. بصورت مشخص اگر برای تنظیم خاصی سوال دارید آن را مطرح کنید تا به آن پرداخته شود.

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

                دیدگاه


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

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

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

                  دیدگاه


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

                    نوشته اصلی توسط n340
                    parsecaler A,B,C دقیقا چی هستن و کارشون چیه؟
                    شکل 5-7 از XMEGA A Manual را ببینید.

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

                    دیدگاه


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

                      سلام.
                      راه اندازی ال سی دی گرافیکی با IAR با کتابخانه مربوط به چیپ KS108

                      از لینک زیر می تونید سورس و برنامه تبدیل عکس به فایل هگز را دریافت کنید

                      http://up.iranblog.com/images/xfpkxdsjdm1h5plc7mtf.rar

                      دکتر شریعتی:

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

                      دیدگاه


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

                        با سلام
                        امروز راه اندازی LCD گوشی های NOKIA6610 با میکرو کنترولر XMEGA را اموزش می دهیم.
                        این نوع از LCD ها دارای 2نوع چیپ راه انداز می باشندکه در زیر معرفی می شوند:

                        1-چیپ راه انداز NXP به شماره PCF8833(به رنگ سبز)
                        2-چیپ راه انداز EPSON به شماره S1D15G00(به رنگ سیاه)

                        تصاویر زیر چیپ های مورد نظر را نشان می دهند.



                        1-سورس ATXME128A1 برای چیپ PHILIPS
                        http://up.iranblog.com/images/h0v0z2rasdv98quieo4.rar

                        2-سورس ATXMEGA128A1 برای چیپ EPSON
                        http://up.iranblog.com/images/az81r49jg4nf7f79itk4.zip

                        3-نرم افزار مبدل عکس به کد همراه با مثال
                        http://up.iranblog.com/images/wwelna10c7obh7iaosz8.zip

                        4-شماتیک LCD با IC بافر
                        http://up.iranblog.com/images/trsvjdemjir165a5zxm0.pdf
                        دکتر شریعتی:

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

                        دیدگاه


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

                          با سلام.

                          اینم راه اندازی LCDN96 با ATXMEGA128A1 به صورت 16BIT که در داخل سورس نحوه وصل پایه ها کاملا مشخصه:

                          سورس مورد نظر در کامپایلر AVRSTUDIO 5 نوشته شده
                          http://up.iranblog.com/images/98q3cf4uydpvd10jlj2j.rar

                          این سورس پائین رو هم تبدیل کردم به IAR ولی کار نمیکنه البته بدون خطا و WARNING کامپایل میشه ولی کلمات و غیره درست رو LCD به نمایش در نمیان ممنون میشم دوستان کد رو اصلاح کرده و به ما هم یاد بدن
                          http://up.iranblog.com/images/cfdxdxkaz31woubhfo5.rar

                          دکتر شریعتی:

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

                          دیدگاه


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

                            سلام

                            اینم کتابخونه LCD کاراکتری که بر اساس چک کردن وضعیت Busy بوده و میتواند تا LCD هائی با سایز 4*40 و همچنین درایو های HD44780 و KS0073 را ساپورت کند،به صورت 4BIT راه اندازی می شود وامکان تعریف فونت(کاراکتر) در ان موجود می باشد،فایل راهنما استفاده توابع در داخل پوشه و به زبان اصلی وجود دارد.
                            (البته قبلا یک نسخه توسط اقای کی نژاد و دوستان در سایت قرار داده شده بنده نیز این فایل رو با اسم LCDLIB V2 قرار می دهم )

                            سورس مورد نظر در AVRSTUDIO 5

                            http://up.iranblog.com/images/jaxoqz8pn7utx6tf8k4g.rar

                            سورس مورد نظر در IAR

                            http://up.iranblog.com/images/8ev79hakx8y5fu5u870u.rar

                            کتابخانه V2.01:

                            برای IAR:
                            http://s2.picofile.com/file/7130510749/LCD_LIB_4_8_BIT.rar.html

                            برای AVRSTUDIO:
                            http://s2.picofile.com/file/7130511391/LCD_LIB_4_8_BIT_GCC.rar.html




                            دکتر شریعتی:

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

                            دیدگاه


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

                              با سلام خدمت دوستان
                              من یه برنامه خیلی ساده برای تبادل اطلاعات (البته فقط عدد) بین میکرو و PC نوشته ام ولی نمی دونم چرا کار نمی کنه!
                              یعنی عدد ارسالی از برد xmega رو در برنامه hyper Terminal نشون نمیده و عدد نوشته شده در برنامه hyper Terminal هم در 7segment روی برد نشون نمیده. هر کی دلیلش رو می دونه لطفا من رو راهنمایی کنه.
                              -------------------
                              میکرو:ATXMega64A3
                              برد: برد آموزشی Xmega (موجود در سایت www.*****tarashe.com)
                              نکته: چون PC من پورت COM خروجی از کیس نداره لذا پورت com روی برد آموزشی رو با تبدیل com به usb (از طریق usb) به pc وصل کردم که به عنوان com3 شناخته شد.
                              محیط برنامه نویسی: IAR
                              محیط debug و run: نرم افزار AVRStudio
                              برنامه نوشته شده در زیر آمده است:


                              کد:
                              /* RS232 example program :
                                This program displays received data[Only Number] (from keyBoard) on 7 segment on the Xmega Board and 
                                sends pressed key (on the xmega board) to PC.
                                Run Hyperterminal with Baud Rate=9600,Data bits=8,Parity=None,Stop bits=1,Flow control=None */
                              
                              #include <ioavr.h>
                              #include <intrinsics.h>
                              
                              #define nokey_code 12
                                  
                              //----------------------------------------------------------------------------------------------------------------------
                              // keyboard codes
                              unsigned char __flash code[10]={0x30,0x28,0x24,0x22,0x50,0x48,0x44,0x42,0x90,0x88};
                              
                              // display characters
                              char __flash chr[]={'0','1','2','3','4','5','6','7','8','9'};
                              
                              // 7 segment codes
                              unsigned char __flash seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
                              
                              //----------------------------------------------------------------------------------------------------------------------	
                              
                              
                              	
                              volatile unsigned char data;
                              volatile unsigned char key_code=nokey_code;
                              volatile bool new_data=false;
                              unsigned char old_key_code=nokey_code;
                              	
                              void main(void)
                              {   	 
                               PORTD_DIRSET=0x08;	 // pd3=TXD0=usart output
                               PORTE_DIR=0XFF; 
                               PORTF_DIR=0X7E;
                               PORTCFG_MPCMASK=0xFE;
                               PORTA_PIN1CTRL=0x10; 	// enable pull-downs on portA
                               
                               //initialise usartd0
                               USARTD0_CTRLA=0x10;   //Set low level interrupt for receive COMPLETE interrupt LEVEL
                               USARTD0_CTRLB=0X18;  // Enabling receiver & Transmitter on usartd0
                               USARTD0_CTRLC=0X03;  // NO PARITY, STOP BIT=1,SIZE=8BIT
                               USARTD0_BAUDCTRLA=12; // BUAD RATE =9615.38 bps=2000000/(16*(12+1))~9600 bps
                              	    
                               //initialize timer
                               TCC0_CTRLA=0X04;	// Div8
                               TCC0_INTCTRLA=1;	//Enables TC0 low level OverFlow Interrupt 
                               TCC0_PER=4999;		// 20 msec = (4999+1)*8 / 2MHZ
                               PMIC_CTRL=0X01;    //Enables ALL low level interrupts (including tcc0 overflow)
                               __enable_interrupt();  //global interrupt
                              	    
                               
                              		    
                               while(1)		
                               {
                               if(new_data==true)
                               {
                                new_data=false;
                                
                                PORTE_OUT=seg[data];
                                PORTF_OUT=0x02;  // shows received data on the first 7segment.
                               }	
                               if (key_code!= old_key_code)
                               {	
                                old_key_code=key_code; 	
                                if (key_code!=nokey_code)
                                {
                                while( !(USARTD0_STATUS &0x20));	//wait for empty buffer
                                USARTD0_DATA=chr[key_code];	    //send data(ASCII code) to PC
                                // USARTD0_DATA=seg[key_code];
                                
                                //PORTE_OUT=USARTD0_DATA;
                                
                                PORTE_OUT=seg[key_code];
                                PORTF_OUT=0x04;
                                }	 
                               }
                               }
                              }
                                
                              //--------------------------------------------------------------------------------------------------------------------   
                              
                              #pragma vector=USARTD0_RXC_vect  
                              __interrupt void USARTD0_receive(void)
                              {  
                                
                               data=USARTD0_DATA;
                               new_data=true; 
                               data=data-48;  //Coverts number from ASCII to #
                               PORTE_OUT=0xFF;;
                                PORTF_OUT=0x08;
                              }
                              	
                              //---------------------------------------------------------------------------------------------------------
                              	
                              
                              #pragma vector= TCC0_OVF_vect
                              __interrupt void TCC0_overflow(void)
                              {
                               unsigned char variable , i;
                               PORTA_DIR=0XE0;   // ROWs=OUT COLUMNs=IN 
                               PORTA_OUT=0XE0;   // ROWs=1
                               __delay_cycles(20); // delay for signal stablization
                               variable=(PORTA_IN & 0X1E);
                               PORTA_DIR=0X1E;   //ROWs=IN COLUMNs=OUT
                               PORTA_OUT=0X1E;   //COLUMNs=1
                               __delay_cycles(20);
                               variable |=(PORTA_IN & 0XE0);
                               for(i=0;i<12;i++)
                               {
                               if(variable==code[i])
                               { 
                                key_code=i;   
                                break;
                               } 
                               else key_code=nokey_code;	   
                               }

                              من یک تازه وارد هستم.
                              لطفا کمکم کن.
                              ممنون.

                              دیدگاه


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

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

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

                                دیدگاه

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