اطلاعیه

Collapse
No announcement yet.

برنامه های نمونه بر مبنای CMSIS

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

    برنامه های نمونه بر مبنای CMSIS

    کامپایلر استفاده شده برای پروژه ها Keil MDK 4.22a هست.این ورژن که آخرین ورژن هست رو میتونین از لینک زیر دانلود کنین . قبل دانلود فرم رو پر کنین و اگه سریال خواست با Keygen ورژنهای قبلی یه سریال درست کنین .
    https://www.keil.com/demo/eval/arm.htm
    شرکت NXP برای راه اندازی اکثر بخش های میکرو مثل GPIO ، UART و .. فایلهای درایور ارائه کرده که مبنای کار ما هم بر اساس این فایل ها خواهد بود.
    فایلهای درایور ضمیمه شده رو باید پس از دانلود در مسیر زیر قرار گیرن :
    Keil drive:\Keil\ARM\INC\NXP\LPC17xx
    فایل های پیوست شده

    #2
    ECA-01] GPIO sample]

    راه اندازی GPIO با استفاده از CMSIS و درایور lpc17xx_gpio

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


    void GPIO_SetDir(uint8_t portNum, uint32_t bitValue, uint8_t dir);

    این تابع برای تعیین جهت پورتها میباشد. میکروکنترلر LPC1768 5 پورت 32 بیتی دارد که البته همه آنها پین فیزیکی ندارند.متغیر ورودی portNum شماره پورت را تعیین میکند. برای مثال 0 برای P0 و 4 برای P4 . متغیر bitValue پینهایی که میخواهیم جهت آنها را تغییر دهیم را مشخص میکند و جهت پینهایی که بیت متناظر با انها یک باشد تغییر خواهد کرد.متغیر dir نیز برای تعیین جهت پورت میباشد. اگر dir یک باشد پین های مشخص شده خروجی و اگر صفر باشد ورودی خواهند شد.


    void GPIO_SetValue(uint8_t portNum, uint32_t bitValue);

    این تابع برای ست کردن ( 1 شدن) پینها میباشد.متغیر portNum شماره پورت میباشد و پینهای متناظر با متغیر bitValue فعال خواهند شد.
    برای مثال برای یک کردن پین P0.21 توابع باید به صورت زیر فراخوانی شوند :

    GPIO_SetDir(0,1<<21,1);
    GPIO_SetValue(0,1<<21);

    در سطر اول پین 21 از پورت P0 خروجی شده و در سطر دوم 1 میشود. در برد LPC1768 devBoard این پین به مبدل 8 به 16 بیتی LCD وصل شده و جهت این مبدل را تعیین میکند . چون پینهای LCD و LED های روی برد یکی میباشد برای کار با LED هاحتما باید این پین 1 شود تا مبدل در حالت خروجی قرار گیرد.


    void GPIO_ClearValue(uint8_t portNum, uint32_t bitValue);

    این تابع نیز برای ریست کردن (0 کردن) پینها میباشد و پینهایی که بیت متناظر با آنها در متغیر bitValue یک باشد ریست خواهند شد.

    فایل ضمیمه شده برنامه کامل چشمک زن با LED های روی برد میباشد که از توابع فوق در آن استفاده شده است.
    فایل های پیوست شده

    دیدگاه


      #3
      ECA-02] GPIO JoyStick]

      راه اندازی JoyStick و نمایش وضعیت آن روی LED ها

      در این پروژه نیز از درایور lpc17xx_gpio.h برای خواندن وضعیت پورت ها و تغییر وضیت LED ها استفاده شده است.
      علاوه بر توابعی که در پست قبلی اشاره شده است تابع زیر نیز برای خواندن وضعیت پورت های ورودی استفاده میشود :

      uint32_t GPIO_ReadValue(uint8_t portNum);

      این تابع شماره پورت را با متغیر ورودی portNum گرفته و وضعیت پین های ورودی را با یک متغیر 32 بیتی باز میگرداند .
      فایل های پیوست شده

      دیدگاه


        #4
        پاسخ : برنامه های نمونه بر مبنای CMSIS

        سلام
        من میخام UART رو راه بندازم ولی هرچی برسی میکنم نمیدونم چطوری میشه راهنمایم کنید.
        مثلا
        void UART_Init(LPC_UART_TypeDef *UARTx, UART_CFG_Type *UART_ConfigStruct);
        برای ارگومانهای این تابع چی باید بفرستم اخه من 0 و 1 رو فرستادم ارور میده!
        انجام پروژه های برنامه نویسی اندروید
        [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
        http://cafebazaar.ir/app/?id=com.atxdroid

        دیدگاه


          #5
          پاسخ : برنامه های نمونه بر مبنای CMSIS

          سلام بروبچ

          گفتم شاید یکی مثل من خدا بزنه تو سرش و بخاد با lpc1768 کار کنه و بدتر این که سر کارش بیوفته با eca و مثل من تو کف یاشه!
          این هم فایل راه اندازuart با cmsis
          http://up6.iranblog.com/images/qcl8haczw0136p6o5v35.rar
          انجام پروژه های برنامه نویسی اندروید
          [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
          http://cafebazaar.ir/app/?id=com.atxdroid

          دیدگاه


            #6
            پاسخ : برنامه های نمونه بر مبنای CMSIS

            سلام به همه دوستان
            یه سوال داشتم.میشه راهنمایی کنین بگین این منبع راهنمای درایور چیه ؟ مثلا این تابع void GPIO_SetValue(uint8_t portNum, uint32_t bitValue);
            که اقای جعفر پور گفتن برای کار کردن با i/o هست را از کجا متوجه شدن :read:
            من هر چی اینترنت را زیر رو کردم هیچ فایل راهنمایی پیدا نکردم . گیج شدم به خدا oo: پ

            یا مثلا غیر از این بحث ورودی خروجی اگه کسی بخواد خودش این توابع درایور را ادامه بده سورسش چی هست ؟ از کجا باید بفهمیم برا کار با uart, mmc,.... چه توابعی وجود داره؟؟ ارگومان های اون تابع ها چی هست ؟؟

            با تشکر از دوستان

            دیدگاه


              #7
              پاسخ : برنامه های نمونه بر مبنای CMSIS

              نوشته اصلی توسط ادیسون کوچووووووووووولو
              سلام به همه دوستان
              یه سوال داشتم.میشه راهنمایی کنین بگین این منبع راهنمای درایور چیه ؟ مثلا این تابع void GPIO_SetValue(uint8_t portNum, uint32_t bitValue);
              که اقای جعفر پور گفتن برای کار کردن با i/o هست را از کجا متوجه شدن :read:
              من هر چی اینترنت را زیر رو کردم هیچ فایل راهنمایی پیدا نکردم . گیج شدم به خدا oo: پ

              یا مثلا غیر از این بحث ورودی خروجی اگه کسی بخواد خودش این توابع درایور را ادامه بده سورسش چی هست ؟ از کجا باید بفهمیم برا کار با uart, mmc,.... چه توابعی وجود داره؟؟ ارگومان های اون تابع ها چی هست ؟؟

              با تشکر از دوستان
              شما از لینک زیر اون چیزی که مربوط به CMSIS هست رو برای lpc1768 می تونی دانلود کنی که شامل درایورها و کورها و مثالها و فایل help میشه که تو اون همه چیز هست .

              http://ics.nxp.com/support/documents...er.library.zip

              دیدگاه


                #8
                پاسخ : برنامه های نمونه بر مبنای CMSIS

                سلام آقای جعفرپور
                این فایل gpio را که گذاشتید موقع کامپایل error میده...میگه SystemCoreClock تعریف نشده هست...مگه این متغییر از متغییرهای system_LPC17xx.c نیست؟؟ شما هم که همین فایل را داری تو برنامه،پس چرا error میده ؟؟

                دیدگاه


                  #9
                  پاسخ : ECA-01] GPIO sample]

                  نوشته اصلی توسط رامین جعفرپور
                  راه اندازی GPIO با استفاده از CMSIS و درایور lpc17xx_gpio

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


                  void GPIO_SetDir(uint8_t portNum, uint32_t bitValue, uint8_t dir);

                  این تابع برای تعیین جهت پورتها میباشد. میکروکنترلر LPC1768 5 پورت 32 بیتی دارد که البته همه آنها پین فیزیکی ندارند.متغیر ورودی portNum شماره پورت را تعیین میکند. برای مثال 0 برای P0 و 4 برای P4 . متغیر bitValue پینهایی که میخواهیم جهت آنها را تغییر دهیم را مشخص میکند و جهت پینهایی که بیت متناظر با انها یک باشد تغییر خواهد کرد.متغیر dir نیز برای تعیین جهت پورت میباشد. اگر dir یک باشد پین های مشخص شده خروجی و اگر صفر باشد ورودی خواهند شد.


                  void GPIO_SetValue(uint8_t portNum, uint32_t bitValue);

                  این تابع برای ست کردن ( 1 شدن) پینها میباشد.متغیر portNum شماره پورت میباشد و پینهای متناظر با متغیر bitValue فعال خواهند شد.
                  برای مثال برای یک کردن پین P0.21 توابع باید به صورت زیر فراخوانی شوند :

                  GPIO_SetDir(0,1<<21,1);
                  GPIO_SetValue(0,1<<21);

                  در سطر اول پین 21 از پورت P0 خروجی شده و در سطر دوم 1 میشود. در برد LPC1768 devBoard این پین به مبدل 8 به 16 بیتی LCD وصل شده و جهت این مبدل را تعیین میکند . چون پینهای LCD و LED های روی برد یکی میباشد برای کار با LED هاحتما باید این پین 1 شود تا مبدل در حالت خروجی قرار گیرد.


                  void GPIO_ClearValue(uint8_t portNum, uint32_t bitValue);

                  این تابع نیز برای ریست کردن (0 کردن) پینها میباشد و پینهایی که بیت متناظر با آنها در متغیر bitValue یک باشد ریست خواهند شد.

                  فایل ضمیمه شده برنامه کامل چشمک زن با LED های روی برد میباشد که از توابع فوق در آن استفاده شده است.
                  آقای جعفر پور من وقتی میخوام پورت0.0 رو یک کنم نمیشه ولی وقتی که پورت 0.1 رو یک میکنم هم 0.0 و هم 0.1 با هم یک میشن؟؟؟؟؟؟؟؟

                  اینم برنامه

                  GPIO_SetDir(0,1<<0,1);
                  GPIO_SetDir(0,1<<1,1);
                  GPIO_SetDir(0,1<<4,1);
                  GPIO_SetDir(0,1<<5,1);

                  while (1)
                  {
                  GPIO_ClearValue(0,1<<0);
                  Delay1(1500);
                  GPIO_SetValue(0,1<<0);
                  Delay1(1500);
                  }

                  لطفا کمک کنید.
                  یا علی گفتیم و عشق آغاز شد.

                  دیدگاه


                    #10
                    برنامه7segment بر مبنای CMSIS با gpio

                    سلام دوستان
                    من یه برنامه 7 segment (آند مشترک) نوشتم که از 0 تا 9 را نشون بده
                    بلد نبودم پلود کنم همین جا کپیش میکنم :biggrin:
                    کتابخونه gpio هم باید add بشه

                    #include "lpc17xx_gpio.h"#
                    const unsigned long seg[10] = { 0x03f00000, 0x00600000, 0x05b00000,0x04f00000, 0x06600000,0x06d00000, 0x07d00000, 0x00700000, 0x07f00000, 0x06f00000 };
                    char i=0;
                    volatile unsigned long SysTickCnt;
                    void SysTick_Handler (void);
                    void Delay (unsigned long tick);
                    void SysTick_Handler (void) {
                    SysTickCnt++;
                    }
                    void Delay (unsigned long tick) {
                    unsigned long systickcnt;

                    systickcnt = SysTickCnt;
                    while ((SysTickCnt - systickcnt) < tick);
                    }
                    int main(void) {
                    SysTick_Config(SystemCoreClock/1000 - 1);

                    GPIO_SetDir(1, 0x0ff00000, 1);
                    GPIO_SetValue(1, 0x0ff00000);
                    while(1){
                    for (i=0;i<10;i++) {
                    GPIO_SetValue(1, 0x0ff00000);
                    GPIO_ClearValue(1, seg[i]);
                    Delay(500);
                    }
                    }
                    }
                    اگه seven segment شما کاتد مشترک بود کافیه فقط جای set و clearعوض بشه
                    راستی من روی برد lpc1768 devboard پین هدر زدم بعد روی برد بورد segment وصل کردم.
                    از پینهای 20 تا 27 پورت 1 استفاده کردم.
                    کسی کوه بزرگ را جابه جا می کند که شروع به برداشتن سنگریزه ها کند.

                    دیدگاه


                      #11
                      پاسخ : برنامه های نمونه بر مبنای CMSIS

                      این لینک که گذاشتید را من نگاه کردم ولی فایل مورد نظر را پیدا نکردم
                      لطفا بیشتر راهنمایی فرمایید یا فایل را یک جایی پ لود نمایید از آن جا برداریم

                      دیدگاه


                        #12
                        پاسخ : برنامه های نمونه بر مبنای CMSIS

                        درود بر همگی.
                        کسی با اینتراپت تایمرا کار کرده؟ نمونه برنامه هاشو با CMSIS نداره؟ اگه راهنمایی کنید ممنون میشم.
                        اینم کد برنامم نمیدونم مشکلش چیه.
                        کد:
                        #include <lpc17xx.h>
                        
                        char f;
                        
                        void TIMER0_IRQHandler(){
                        
                        	if(f == 1){
                        		f = 0;
                        	  LPC_GPIO0->FIOSET = 0x01;
                        	}
                        	if(f == 0){
                        		f = 1; 
                        		LPC_GPIO0->FIOCLR = 0x01;
                        	}
                        	LPC_TIM0->IR = 1;		
                        
                        }
                        
                        
                        int main(){
                        	
                        	LPC_GPIO0->FIODIR |= 0x01;
                        	//LPC_PINCON->PINSEL3 |= (3UL << 24);
                        	LPC_TIM0->MR0 = 25000000;
                        	LPC_TIM0->MCR = 3;
                        	//LPC_TIM0->EMR |= (3UL << 4);
                        	LPC_TIM0->TCR = 3;
                        	LPC_TIM0->TCR = 1;
                        	NVIC_EnableIRQ(TIMER0_IRQn);
                        
                        	while(1);
                        }

                        دیدگاه


                          #13
                          پاسخ : برنامه های نمونه بر مبنای CMSIS

                          نوشته اصلی توسط mohsenavr
                          این لینک که گذاشتید را من نگاه کردم ولی فایل مورد نظر را پیدا نکردم
                          لطفا بیشتر راهنمایی فرمایید یا فایل را یک جایی پ لود نمایید از آن جا برداریم
                          از یک جای دیگر یافتم و دانلود کردم
                          برای 2010 هست آیا تغییراتی به وجود آمده یا نه؟

                          دیدگاه


                            #14
                            پاسخ : برنامه های نمونه بر مبنای CMSIS

                            نوشته اصلی توسط ma-bah
                            شما از لینک زیر اون چیزی که مربوط به CMSIS هست رو برای lpc1768 می تونی دانلود کنی که شامل درایورها و کورها و مثالها و فایل help میشه که تو اون همه چیز هست .

                            http://ics.nxp.com/support/documents...er.library.zip
                            سلام
                            وقتی وارد صفحه مذکور میشیم یک سری pdf نمایش داده میشه اگه امکانش هست این فایل رو یکجای دیگه بزارید
                            با تشکر
                            مشخصات من در لینک زیر
                            http://www.eca.ir/forum2/index.php?topic=1721.msg698645#msg698645

                            www.********

                            دیدگاه


                              #15
                              پاسخ : برنامه های نمونه بر مبنای CMSIS

                              نوشته اصلی توسط majid68
                              سلام
                              وقتی وارد صفحه مذکور میشیم یک سری pdf نمایش داده میشه اگه امکانش هست این فایل رو یکجای دیگه بزارید
                              با تشکر
                              سلام
                              کتابخانه CMSIS به همراه فایل Help :
                              http://ali-agha.persiangig.com/document/lpc17xx.cmsis.driver.library-master.rar/download

                              دیدگاه

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