رفتن به مطلب

hiddenman

کاربر انجمن
  • تعداد ارسال ها

    11
  • تاریخ عضویت

  • آخرین بازدید

اطلاعات شخصی

  • جنسیت
    مذکر
  • محل سکونت
    تهران

اطلاعات شغلی و تحصیلی

  • رشته تحصیلی
    مهندسی کامپیوتر
  • مقطع تحصیلی
    فوق لیسانس

دستاورد های hiddenman

تازه کار

تازه کار (1/14)

18

اعتبار در سایت

  1. [h=2][/h]الان اون فایلی کدی که فرستادم اگر نگاه کنید یه بخش به اسم target داره که یسری تنظیمات برای کلاک انجام داده .. الان رو کدام کلاک ست شده؟؟؟؟ قسمت ConfigurePLL اگر نگاه کنید این رجیستر مربوط به main oscillator به صورت 0x01 ست شده. میشه کمی از روی این کد منو راهنمایی کنید..ممنونم /***************************************************************************** * target.c: Target C file for NXP LPC23xx/24xx Family Microprocessors * * Copyright(C) 2006, NXP Semiconductor * All rights reserved. * * History * 2006.07.13 ver 1.00 Prelimnary version, first Release * *****************************************************************************/ #include "LPC23xx.h" #include "type.h" #include "irq.h" #include "target.h" /****************************************************************************** ** Function name: TargetInit ** ** Descriptions: Initialize the target board; it is called in a necessary ** place, change it as needed ** ** parameters: None ** Returned value: None ** ******************************************************************************/ void TargetInit(void) { /* Add your codes here */ return; } /****************************************************************************** ** Function name: GPIOResetInit ** ** Descriptions: Initialize the target board before running the main() ** function; User may change it as needed, but may not ** deleted it. ** ** parameters: None ** Returned value: None ** ******************************************************************************/ void GPIOResetInit( void ) { /* Reset all GPIO pins to default: primary function */ PINSEL0 = 0x00000000; PINSEL1 = 0x00000000; PINSEL2 = 0x00000000; PINSEL3 = 0x00000000; PINSEL4 = 0x00000000; PINSEL5 = 0x00000000; PINSEL6 = 0x00000000; PINSEL7 = 0x00000000; PINSEL8 = 0x00000000; PINSEL9 = 0x00000000; PINSEL10 = 0x00000000; IODIR0 = 0x00000000; IODIR1 = 0x00000000; IOSET0 = 0x00000000; IOSET1 = 0x00000000; FIO0DIR = 0x00000000; FIO1DIR = 0x00000000; FIO2DIR = 0x00000000; FIO3DIR = 0x00000000; FIO4DIR = 0x00000000; FIO0SET = 0x00000000; FIO1SET = 0x00000000; FIO2SET = 0x00000000; FIO3SET = 0x00000000; FIO4SET = 0x00000000; return; } /****************************************************************************** ** Function name: ConfigurePLL ** ** Descriptions: Configure PLL switching to main OSC instead of IRC ** at power up and wake up from power down. ** This routine is used in TargetResetInit() and those ** examples using power down and wake up such as ** USB suspend to resume, ethernet WOL, and power management ** example ** parameters: None ** Returned value: None ** ******************************************************************************/ void ConfigurePLL ( void ) { DWORD MValue, NValue; if ( PLLSTAT & (1 << 25) ) { PLLCON = 1; /* Enable PLL, disconnected */ PLLFEED = 0xaa; PLLFEED = 0x55; } PLLCON = 0; /* Disable PLL, disconnected */ PLLFEED = 0xaa; PLLFEED = 0x55; SCS |= 0x20; /* Enable main OSC */ while( !(SCS & 0x40) ); /* Wait until main OSC is usable */ CLKSRCSEL = 0x1; /* select main OSC, 12MHz, as the PLL clock source */ PLLCFG = PLL_MValue | (PLL_NValue << 16); PLLFEED = 0xaa; PLLFEED = 0x55; PLLCON = 1; /* Enable PLL, disconnected */ PLLFEED = 0xaa; PLLFEED = 0x55; CCLKCFG = CCLKDivValue; /* Set clock divider */ #if USE_USB USBCLKCFG = USBCLKDivValue; /* usbclk = 288 MHz/6 = 48 MHz */ #endif while ( ((PLLSTAT & (1 << 26)) == 0) ); /* Check lock bit status */ MValue = PLLSTAT & 0x00007FFF; NValue = (PLLSTAT & 0x00FF0000) >> 16; while ((MValue != PLL_MValue) && ( NValue != PLL_NValue) ); PLLCON = 3; /* enable and connect */ PLLFEED = 0xaa; PLLFEED = 0x55; while ( ((PLLSTAT & (1 << 25)) == 0) ); /* Check connect bit status */ return; } /****************************************************************************** ** Function name: TargetResetInit ** ** Descriptions: Initialize the target board before running the main() ** function; User may change it as needed, but may not ** deleted it. ** ** parameters: None ** Returned value: None ** ******************************************************************************/ void TargetResetInit(void) { #ifdef __DEBUG_RAM MEMMAP = 0x2; /* remap to internal RAM */ #endif #ifdef __DEBUG_FLASH MEMMAP = 0x1; /* remap to internal flash */ #endif #if USE_USB PCONP |= 0x80000000; /* Turn On USB PCLK */ #endif /* Configure PLL, switch from IRC to Main OSC */ ConfigurePLL(); /* Set system timers for each component */ #if (Fpclk / (Fcclk / 4)) == 1 PCLKSEL0 = 0x00000000; /* PCLK is 1/4 CCLK */ PCLKSEL1 = 0x00000000; #endif #if (Fpclk / (Fcclk / 4)) == 2 PCLKSEL0 = 0xAAAAAAAA; /* PCLK is 1/2 CCLK */ PCLKSEL1 = 0xAAAAAAAA; #endif #if (Fpclk / (Fcclk / 4)) == 4 PCLKSEL0 = 0x55555555; /* PCLK is the same as CCLK */ PCLKSEL1 = 0x55555555; #endif /* Set memory accelerater module*/ MAMCR = 0; #if Fcclk < 20000000 MAMTIM = 1; #else #if Fcclk < 40000000 MAMTIM = 2; #else MAMTIM = 3; #endif #endif MAMCR = 2; GPIOResetInit(); init_VIC(); return; } /****************************************************************************** ** End Of File ******************************************************************************/
  2. من دستوری برای راه اندازی کلاک نزدم از یه کد اماده استفاده کردم که جزو sample کدهای keli بوده. الان برای config کلاک باید مقادیر رچیستری رو داخل main تغغیر بدم.؟؟ من کدکو اینجا میذارم اگر بتونی نگاهی بندازی ببینی مشکل از کجاشه... خیلی ممنونم [Hidden Content]
  3. سلام - ممنون از اینکه جواب دادید . من از Keil uVision5 استفاده میکنم. در مورد ولتاژ ورودیش که گفتید اطلاعات ندارم . ؟؟؟ ولی تو قسمت کانفیگ کلاک مشکل دارم چون تو دیتا شیت میکرو خوندم به صورت پیش فرض روی داخلی که 4 مگاهرتز است تنظیمه و باید بیارم روی 12 مگاهرتز خارجی. اینو مشکل دارم
  4. هنوز کسی ندیده . این چجور انجمنی هست حداقل بگید بلد نیستیم تکلیف ما هم مشخص شه .......
  5. واقعا کسی پاسخگو نیست؟؟؟؟؟
  6. سلام دوستان عزیز . یه راهنمایی خیلی ضروری لازم دارم اگر بتونید کمکم کنید ممنون میشم . من برنامه ای روی برد mcb2300 با میکرو lpc2378 نوشتم منتها مشکلم اینه میخوام از اسیلاتور بیرون (main oscillator) میکرو که روی برد هست و 12 مگ هست استفاده کنم ولی به صورت پیش فرض روی اسیلاتور داخلی(internal RC Ocs) که 4 مگ تنظیم شده. از قسمت دیباگ میرم تو بخش peripheral که و از قسمت clock source selection نمیتونم تغییر بدم نوع clock رو و کلا روی ذاخلی ثابته!!!! میدونید چطور میتونم اینو set کنم بهmain oscillator.... ایا lock هست برد و باید کاری بکنیم برای unlock کردنش.... لطفا کمکم کنید ... ممنون
  7. hiddenman

    آموزش keil

    سلام - خیلی مطلب خوبی بود - میتونی توضیح بدی چطور باید اسیلاتور داخلی که 4 مگ هست رو متوقف و اسلاتور خازجی که main oscillator نام داره برای میکرو فعال کرد. کلا یه مقدار در باره این منابع کلاک و تنظیماتشون میشه توضیح بدید... ممنون
×
×
  • اضافه کردن...