اطلاعیه

Collapse
No announcement yet.

راهنمایی درمورد LPC1343

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

    راهنمایی درمورد LPC1343

    باسلام خدمت دوستان عزیز.

    من کاربا ARM رو تازه شروع کردم الان میخوام با استفاده از نرم افزار Keil و LPC1343 شروع به کارکنم اما همین ابتدای کار به مشکل برخوردم.
    اولا یه سوال بپرسم سری 13xx با 17xx فرق میکنه؟چون یه کتاب برای سری 17xx دارم و دارم از روی اون کار میکنم.

    من در ایجاد پروژه جدید هیچ مشکلی ندارم طبق مطالب کتاب پیش رفتم پروژمو ایجاد کردم حتی این کد رو کامپایل کردم و هیچ مشکلی نداشتم..
    کد:
    #include "LPC13xx.h"
    
    int main()
    {
    }
    و نتیجه صفر خطا بود اما وقتی میخوام پورت خروجی تعریف کنم از برنامه من خطا میگیره نمیدونم چرا؟

    کد:
    LPC_GPI01->FIODIR=0X00000001;
    لطفا راهنمایی بفرمایید باتشکر

    #2
    پاسخ : راهنمایی درمورد LPC1343

    برنامه نویسی LPC1343 با LPC1768 خیلی فرق داره. نمونه کد هم زیاد تو اینترنت گیر نمیاد برای راه اندازی GPIO از دستور زیر استفاده کنید:
    مثلا من خودم کلی دنبال کتابخونه برای راه اندازی LCD کارکتری اینقدر گشتم ولی هیج چیزی پیدا نکردم.
    این میکرو جزو ناشناخته ها هست اون هایی هم که باهاش کار کردند صداشون در نمیاد
    کد:
    #include <lpc13xx.h>
    
    void delay(){
    	int i=3000000;
    	while(i--);
    }
    	
    
    int main(void){
    
    	LPC_SYSCON->SYSAHBCLKCTRL |= 1UL<<6|1UL<<16;
    	
    	LPC_IOCON->R_PIO1_0 =0xD1;
    	LPC_IOCON->R_PIO1_1 =0xD1;
    	LPC_IOCON->R_PIO1_2 =0xD1;
    	LPC_IOCON->SWDIO_PIO1_3 =0xD1;
    	
    	LPC_GPIO1->DIR = 0xFF;
    	LPC_GPIO1->DATA =0x00;
    	
    	while(1){
    		LPC_GPIO1->DATA =0x55;
    		delay();
    		LPC_GPIO1->DATA =0xAA;
    		delay();
    	}
    }

    دیدگاه


      #3
      پاسخ : راهنمایی درمورد LPC1343

      در هدر lpc13xx.h قسمت رجیستر های gpio به این صورته:

      کد:
      typedef struct
      {
       union {
        __IO uint32_t MASKED_ACCESS[4096]; /*!< Offset: 0x0000 (R/W) Port data Register for pins PIOn_0 to PIOn_11 */
        struct {
           uint32_t RESERVED0[4095];
        __IO uint32_t DATA;         /*!< Offset: 0x3FFC (R/W) Port data Register */
        };
       };
          uint32_t RESERVED1[4096];
       __IO uint32_t DIR;          /*!< Offset: 0x8000 (R/W) Data direction Register */
       __IO uint32_t IS;           /*!< Offset: 0x8004 (R/W) Interrupt sense Register */
       __IO uint32_t IBE;          /*!< Offset: 0x8008 (R/W) Interrupt both edges Register */
       __IO uint32_t IEV;          /*!< Offset: 0x800C (R/W) Interrupt event Register */
       __IO uint32_t IE;           /*!< Offset: 0x8010 (R/W) Interrupt mask Register */
       __I uint32_t RIS;          /*!< Offset: 0x8014 (R/ ) Raw interrupt status Register */
       __I uint32_t MIS;          /*!< Offset: 0x8018 (R/ ) Masked interrupt status Register */
       __O uint32_t IC;           /*!< Offset: 0x801C ( /W) Interrupt clear Register */
      } LPC_GPIO_TypeDef;
      در صورتی که در 17xx به این صورته:

      کد:
      typedef struct
      {
       union {
        __IO uint32_t FIODIR;
        struct {
         __IO uint16_t FIODIRL;
         __IO uint16_t FIODIRH;
        };
        struct {
         __IO uint8_t FIODIR0;
         __IO uint8_t FIODIR1;
         __IO uint8_t FIODIR2;
         __IO uint8_t FIODIR3;
        };
       };
       uint32_t RESERVED0[3];
       union {
        __IO uint32_t FIOMASK;
        struct {
         __IO uint16_t FIOMASKL;
         __IO uint16_t FIOMASKH;
        };
        struct {
         __IO uint8_t FIOMASK0;
         __IO uint8_t FIOMASK1;
         __IO uint8_t FIOMASK2;
         __IO uint8_t FIOMASK3;
        };
       };
       union {
        __IO uint32_t FIOPIN;
        struct {
         __IO uint16_t FIOPINL;
         __IO uint16_t FIOPINH;
        };
        struct {
         __IO uint8_t FIOPIN0;
         __IO uint8_t FIOPIN1;
         __IO uint8_t FIOPIN2;
         __IO uint8_t FIOPIN3;
        };
       };
       union {
        __IO uint32_t FIOSET;
        struct {
         __IO uint16_t FIOSETL;
         __IO uint16_t FIOSETH;
        };
        struct {
         __IO uint8_t FIOSET0;
         __IO uint8_t FIOSET1;
         __IO uint8_t FIOSET2;
         __IO uint8_t FIOSET3;
        };
       };
       union {
        __O uint32_t FIOCLR;
        struct {
         __O uint16_t FIOCLRL;
         __O uint16_t FIOCLRH;
        };
        struct {
         __O uint8_t FIOCLR0;
         __O uint8_t FIOCLR1;
         __O uint8_t FIOCLR2;
         __O uint8_t FIOCLR3;
        };
       };
      } LPC_GPIO_TypeDef;
      در نتیجه کافیه به جای LPC_GPI01->FIODIR از LPC_GPIO1->DIR استفاده کنید.
      افتادگی آموز اگر طالب فیضی هرگز نخورد آب زمینی که بلند است

      دیدگاه


        #4
        پاسخ : راهنمایی درمورد LPC1343

        آقا دمتون گرم و ممنون از راهنماییتون کامل متوجه شدم.
        اما الان میخوام میکروم رو عوض کنم و برم سراغ 17xx یا 2368 اما بازم به مشکل بر خوردم چون کتابخونه lpc2368 توی پروتیوس وجود نداره؟
        حالا باید چیکار کنم؟

        دیدگاه


          #5
          پاسخ : راهنمایی درمورد LPC1343

          نوشته اصلی توسط O.Rahmani
          آقا دمتون گرم و ممنون از راهنماییتون کامل متوجه شدم.
          اما الان میخوام میکروم رو عوض کنم و برم سراغ 17xx یا 2368 اما بازم به مشکل بر خوردم چون کتابخونه lpc2368 توی پروتیوس وجود نداره؟
          حالا باید چیکار کنم؟
          الان می خوای PCB طراحی کنی یا شبیه سازی؟
          اگر می خوای PCB طراحی کنی بیخیال پروتئوس بشید و برید سراغ پروتل لایبرری سری کامل LPC تو سایت خود آلتیوم هست

          دیدگاه


            #6
            پاسخ : راهنمایی درمورد LPC1343

            نه برای شبیه سازی میخوام

            دیدگاه


              #7
              پاسخ : راهنمایی درمورد LPC1343

              نوشته اصلی توسط O.Rahmani
              نه برای شبیه سازی میخوام
              یکی از دوستام پروتئوس ورژن 8 رو نصب کرده بود دیده بودم LPC1343 رو تو لایبرری هاش بود ولی هر کاری کردیم شبیه سازی انجام نمیداد. میتونی از شبیه ساز خود Keil استفاده کنید

              دیدگاه


                #8
                پاسخ : راهنمایی درمورد LPC1343

                اره منم ورژن 8 رو دارم 1343 رو داره اتفاقا باهاشم کار کردم حتی خروجی usb رو نمایش میده فقط یه مشکلی که هست پروتیوس نمیتونه کلاک cpuرو با 70مگ شبیه سازی کنه باید آوردش پایین تا دقیق بشه اما متاسفانه من نمیدونم چطور بیارمش پایین؟؟؟؟؟؟؟؟؟

                دیدگاه

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