NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 1854 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید

نمایش نتیجه های نظرسنجی ها: دوستان بحث رو چطور ادامه بدیم؟

رأی دهندگان
113. شما نمی توانید در این نظرسنجی رای دهید.
  • گفتن مثال برای قسمتهای راه اندازی شده

    56 49.56%
  • ادامه بحث و راه اندازی قسمتهای راه اندازی نشده

    57 50.44%
صفحه 18 از 18 نخستنخست 123456789101112131415161718
نمایش نتایج: از 341 به 360 از 360

موضوع: تشریح کامل دستورات cmsisبرای lpc1768

  1. #341
    عضو جدید
    تاریخ عضویت
    Jul 2012
    نوشته ها
    10
    تشکر
    27
    تشکر شده 19 بار در 2 پست

    پیش فرض

    سلام
    من با کانتر و cmsis به نتیجه ای نرسیدم! کسی هم کمکم نکرد
    ولی براتون یک چیز جالب دارم که NXP اونو از سایت پاک کرده بود!
    این کتابخانه CMSIS برای LPC17XX با مثال هاش:
    lpc17xx.cmsis.driver.library - Download - 4shared - reza sede
    موفق باشین!

  2. کاربران : 2 تشکر کرده اند از شما rezasede برای ارسال این پست سودمند:


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #342
    عضو جدید zohal آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    معصومه توپااسفندياري
    نوشته ها
    11
    تشکر
    1
    تشکر شده 0 بار در 0 پست

    پیش فرض مشكل براي راه اندازي همزمان چند كانال adc

    نقل قول نوشته اصلی توسط esi_52000 نمایش پست ها
    به روی چشم .انشالله تا امشب وقت بدین به محض برگشت از سر کار در خدمتم داداشم
    سلام
    آقاي طاهري
    من هم با adc مشكل دارم
    اين تاپيك رو كامل گشتم ولي مثالي پيدا نكردم كه چندتا كانال ADC باهم كاركنند ممكنه يك مثال بگذاريد

  5. #343
    تازه وارد elecfast آواتار ها
    تاریخ عضویت
    Aug 2013
    نوشته ها
    2
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام داداش ممنون بابت راهنمایی هایه قشنگت ولی من نفهمیدم آخرش با kile کار کنیم یا coide

  6. #344
    تازه وارد
    تاریخ عضویت
    Feb 2013
    نوشته ها
    2
    تشکر
    4
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام به همه ی دوستان و تشکر از ارسالهای خوبتون.من میخوام بدونم که توی محیط keil به چند روش میشه برنامه نوشت؟مثلأ اینکه جایی تو همین پست فرمودید "cmsis یک سری کتابخانه است که برنامه نویسی رو تو محیط keil ساده تر میکنه" از این سری کتابخونه ها بازم نوشته شده؟ چون مثالهای خود keil رو که باز میکنی مثلأ روش تعیین جهت پورت یا مقدار دهی به پورت رو اینجوری مینویسه که میخوام بدونم این از چه نوع کتابخو نه هاست؟
    [PHP][/PHP]LPC_GPIO2->FIODIR = 0x00000001; /* P2.xx defined as Outputs */
    LPC_GPIO2->FIOCLR = 0x00000001; /* turn off port2.xx*

    ولی توی cmsis بر حسب کتابخانه هاش همین config رو باید اینجوری معرفی کنی:
    [PHP][/PHP]GPIO_SetDir(2,0X00000001,1);
    (
    GPIO_ClearValue(2,0X00000001
    [HTML][/HTML]
    این رو هم میدونم که یک روشم مطالعه ی لحظه به لحظه ی دیتا شیت خود میکرو در حین برنامه نویسی و مقدار دهی مستقیم به رجیستر هاست.

  7. #345
    کاربر فعال
    تاریخ عضویت
    Jul 2011
    نوشته ها
    130
    تشکر
    65
    تشکر شده 204 بار در 77 پست

    پیش فرض

    سلام

    این دستورات تکنیک های کد نویسی در زبان C رو به صورت های متفاوت نشون میده و هیچ ربطی به نوع کامپایلر نداره. کتابخونه CMSIS در اصل کار رو یکم آسونتر کرده. یعنی شما دیگه نمیخواد با پوینترها و آدرس ها و رجیستر ها کار کنی. بلکه یکسری تابع رو مقدار دهی میکنی که همون کار رو براتون انجام میده. مثلا فرض کنید آدرس تعیین ورودی خروجی یک میکرو به صورت مقابل هست: GPSIO_DIR: 0x40008004
    این رجیستر رو میتونی حداقل به این 3 صورت مقدار دهی کنی :
    کد:
    (*((volatile unsigned long *)0x40008004)) = 0x02; // Initializing with dereferencing operators 
    LPC_GPIO2->FIODIR = 0x00000001; // Initializing using structural variable
    GPIO_SetDir(2,0X00000001,1); // Initializing using high level functions
    نوع اول که همون مقدار دهی مستفیم رجیستر ها است.
    نوع دوم مقدار دهی بر پایه رده یا همون ساختار (Structure) هست.
    نوع سوم هم که با استفاده از توابع سطح بالا این عمل انجام شده و همه هم یک کار رو انجام میدن.

  8. کاربران : 2 تشکر کرده اند از شما hossein1387 برای ارسال این پست سودمند:


  9. #346
    تازه وارد
    تاریخ عضویت
    Feb 2013
    نوشته ها
    2
    تشکر
    4
    تشکر شده 0 بار در 0 پست

    پیش فرض

    نقل قول نوشته اصلی توسط hossein1387 نمایش پست ها
    سلام

    این دستورات تکنیک های کد نویسی در زبان C رو به صورت های متفاوت نشون میده و هیچ ربطی به نوع کامپایلر نداره. کتابخونه CMSIS در اصل کار رو یکم آسونتر کرده. یعنی شما دیگه نمیخواد با پوینترها و آدرس ها و رجیستر ها کار کنی. بلکه یکسری تابع رو مقدار دهی میکنی که همون کار رو براتون انجام میده. مثلا فرض کنید آدرس تعیین ورودی خروجی یک میکرو به صورت مقابل هست: GPSIO_DIR: 0x40008004
    این رجیستر رو میتونی حداقل به این 3 صورت مقدار دهی کنی :
    کد:
    (*((volatile unsigned long *)0x40008004)) = 0x02; // Initializing with dereferencing operators 
    LPC_GPIO2->FIODIR = 0x00000001; // Initializing using structural variable
    GPIO_SetDir(2,0X00000001,1); // Initializing using high level functions
    نوع اول که همون مقدار دهی مستفیم رجیستر ها است.
    نوع دوم مقدار دهی بر پایه رده یا همون ساختار (Structure) هست.
    نوع سوم هم که با استفاده از توابع سطح بالا این عمل انجام شده و همه هم یک کار رو انجام میدن.
    آقا ممنون،عالی بود.
    این structure ها رو از کجا باید بیاریم؟مثلأ توی keil به طور پیش فرض میشه دیدشون که بفهمی هر کدومشون برای چه کای هست که ازشون استفاده کنی؟مثلأ از همین دستور دوم(به صورت 8بیتی) میشه تو codevisionavr هم استفاده کرد و همون نتیجه رو گرفت(و جای 2 نوشت a) یا اونجا متفاوت میشه؟
    ویرایش توسط soojad : 22-09-2013 در ساعت 11:46

  10. #347
    کاربر فعال
    تاریخ عضویت
    Jul 2011
    نوشته ها
    130
    تشکر
    65
    تشکر شده 204 بار در 77 پست

    پیش فرض

    نقل قول نوشته اصلی توسط soojad نمایش پست ها
    آقا ممنون،عالی بود.
    این structure ها رو از کجا باید بیاریم؟مثلأ توی keil به طور پیش فرض میشه دیدشون که بفهمی هر کدومشون برای چه کای هست که ازشون استفاده کنی؟مثلأ از همین دستور دوم(به صورت 8بیتی) میشه تو codevisionavr هم استفاده کرد و همون نتیجه رو گرفت(و جای 2 نوشت a) یا اونجا متفاوت میشه؟

    Structure یک نوع داده در زبان C هست.
    کد:
    typedef struct {
        __IO uint8_t FIODIR[4];    
           uint32_t RESERVED0[3];
        __IO uint8_t FIOMASK[4];
        __IO uint8_t FIOPIN[4];    
        __IO uint8_t FIOSET[4];    
        __O  uint8_t FIOCLR[4];    
    } GPIO_Byte_TypeDef;
    برای مثال، کد بالا GPIO_Byte_TypeDef رو به صورت یک رده تعریف کرده. حالا شما میتونی متغییر های متفاوتی از این نوع داده ایجاد کنی. GPIO_Byte_TypeDef که در بالا تعریف شده شامل 6 تا ویژگی هست که داخل رده تعریف شدن. برای دسترسی به اعضای یک رده از علامت "." استفاده میشه و اگر به صورت Pointer تعریف شده باشه، دسترسی به اعضا با استفاده از "<-" انجام میشه. مثال:


    کد:
    GPIO_Byte_TypeDef *pGPIO = GPIO_GetPointer(portNum); // As a Pointer
    pGPIO->FIODIR |= bitValue; // Access to the Structure elements
    
    
    GPIO_Byte_TypeDef pGPIO = GPIO_GetPointer(portNum); 
    pGPIO.FIODIR |= bitValue; // Access to the Structure elements
    باز هم میگم این دستورات هیچ ربطی به Keil و یا IAR و یا کامپایلر دیگه ای نداره و اینها دستورات خود زبان C هستند. اگر یکم با این دستورات مشکل دارید، بهتره زبان C رو یک دوره ای بکنید. برای مثال این سری ویدو های دکتر بازرگان عالی هستند:
    http://maktabkhooneh.org/course?course=bazargan466
    ویرایش توسط hossein1387 : 23-09-2013 در ساعت 06:26

  11. تشکرها از این نوشته :


  12. #348
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نقل قول نوشته اصلی توسط zohal نمایش پست ها
    اين تاپيك رو كامل گشتم ولي مثالي پيدا نكردم كه چندتا كانال ADC باهم كاركنند ممكنه يك مثال بگذاريد
    سلام
    در مثال های cmsic :
    lpc17xx.cmsis.driver.library\Examples\ADC\Burst
    برای حالت burst مثال گذاشته که دو تا کانال را فعال کرده و استفاده کرده همزمان. دیدید؟

  13. تشکرها از این نوشته :


  14. #349
    تازه وارد
    تاریخ عضویت
    Feb 2013
    نوشته ها
    3
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام خدمت همگی. من با اینتراپت تایمر 0 مشکل دارم. برنامم مشکلی نداره ولی نمیدونم چرا تو روتین اینتراپت نمیره. کسی میتونه راهنمایی کنه؟

    اینم برنامم.
    کد:
    void TIMER0_IRQHandler(){
    
    	if(f == 1){
    		f = 0;
    	    LPC_GPIO0->FIOSET = 0x01;
    	}
    	else{
    		f = 1; 
    		LPC_GPIO0->FIOCLR = 0x01;
    	}
    	LPC_TIM0->IR = 1;		
    
    }

  15. #350
    تازه وارد
    تاریخ عضویت
    Feb 2013
    نوشته ها
    3
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    آقای طاهری من با اینتراپت تایمر 0 مشکل دارم. برنامه مشکلی نداره ولی تو روتین اینتراپت نمیره.
    کد:
    #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);
    }
    ممنون میشم اگه راهنمایی کنید .

  16. #351
    تازه وارد
    تاریخ عضویت
    Feb 2014
    نوشته ها
    2
    تشکر
    1
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام آقا اسماعیل دست شما درد نکنه واقعا زحمت کشیدی راستشو بخوای من تازه شروع کردم کارو میخواستم ببینم این فایلای هدر باید از کجا گیر بیاریم وکجا saveکنیم؟؟؟ راستی یا علی مدد

  17. #352
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    سلام به همه دوستان.
    بعضی دوستان مثال برای adc در حالت burest میخواستن.من مثال خود شرکت nxp رو میزارم

    /************************************************** ********************
    * $Id$ adc_interrupt_test.c 2010-07-16
    *//**
    * @file adc_interrupt_test.c
    * @brief This example describes how to use ADC conversion in
    * burst mode
    * @version 2.0
    * @date 16. July. 2010
    * @author NXP MCU SW Application Team
    *
    * Copyright(C) 2010, NXP Semiconductor
    * All rights reserved.
    *
    ************************************************** *********************
    * Software that is described herein is for illustrative purposes only
    * which provides customers with programming information regarding the
    * products. This software is supplied "AS IS" without any warranties.
    * NXP Semiconductors assumes no responsibility or liability for the
    * use of the software, conveys no license or title under any patent,
    * copyright, or mask work right to the product. NXP Semiconductors
    * reserves the right to make changes in the software without
    * notification. NXP Semiconductors also make no representation or
    * warranty that such application will be suitable for the specified
    * use without further testing or modification.
    ************************************************** ********************/
    #include "lpc17xx_adc.h"
    #include "lpc17xx_libcfg.h"
    #include "lpc17xx_pinsel.h"
    #include "debug_frmwrk.h"
    #include "lpc17xx_gpio.h"


    /* Example group ----------------------------------------------------------- */
    /** @defgroup ADC_Burst Burst
    * @ingroup ADC_Examples
    * @{
    */


    /************************** PRIVATE DEFINITIONS ***********************/
    #define MCB_LPC_1768
    //#define IAR_LPC_1768
    #define MCB_LPC17XX_ADC_INJECT_TEST


    #ifdef MCB_LPC_1768
    #define MCB_LPC_1768_ADC_BURST_MULTI
    #endif


    #ifdef MCB_LPC_1768
    #define _ADC_INT ADC_ADINTEN2
    #define _ADC_CHANNEL ADC_CHANNEL_2


    #ifdef MCB_LPC_1768_ADC_BURST_MULTI
    #define _ADC_INT_3 ADC_ADINTEN3
    #define _ADC_CHANNEL_3 ADC_CHANNEL_3
    #endif


    #elif defined(IAR_LPC_1768)
    #define _ADC_INT ADC_ADINTEN5
    #define _ADC_CHANNEL ADC_CHANNEL_5
    #endif


    /** DMA size of transfer */
    #define DMA_SIZE 8


    #ifdef MCB_LPC17XX_ADC_INJECT_TEST
    #define GPIO_INT (1<<10)
    #define POLL_LED (1<<4) // P1.28
    #endif
    /************************** PRIVATE VARIABLES *************************/
    uint8_t menu1[] =
    "************************************************* *******************************\n\r"
    "Hello NXP Semiconductors \n\r"
    " ADC burst demo \n\r"
    "\t - MCU: LPC17xx \n\r"
    "\t - Core: ARM CORTEX-M3 \n\r"
    "\t - Communicate via: UART0 - 115200 bps \n\r"
    " Use ADC with 12-bit resolution rate of 200KHz, running burst mode (single or multiple input)\n\r"
    " Display ADC value via UART0\n\r"
    " Turn the potentiometer to see how ADC value changes\n\r"
    "************************************************* *******************************\n\r";


    #ifdef MCB_LPC17XX_ADC_INJECT_TEST
    static BOOL_8 toggle=FALSE;
    #endif
    /************************** PRIVATE FUNCTION *************************/
    void print_menu(void);


    #ifdef MCB_LPC17XX_ADC_INJECT_TEST
    void EINT3_IRQHandler(void);
    #endif


    /*----------------- INTERRUPT SERVICE ROUTINES --------------------------*/
    #ifdef MCB_LPC17XX_ADC_INJECT_TEST
    void EINT3_IRQHandler(void)
    {
    if (GPIO_GetIntStatus(1, 10, 1))
    {
    GPIO_ClearInt(2,(1<<10));
    toggle=~toggle;
    #ifdef MCB_LPC_1768_ADC_BURST_MULTI
    if(toggle)
    {
    ADC_ChannelCmd(LPC_ADC,_ADC_CHANNEL_3,ENABLE);
    FIO_ByteSetValue(1, 3, POLL_LED);
    }
    else
    {
    ADC_ChannelCmd(LPC_ADC,_ADC_CHANNEL_3,DISABLE);
    FIO_ByteClearValue(1, 3, POLL_LED);
    }
    #endif
    }
    }
    #endif
    /*-------------------------PRIVATE FUNCTIONS------------------------------*/
    /************************************************** *******************//**
    * @brief Print menu
    * @param[in] None
    * @return None
    ************************************************** ********************/
    void print_menu(void)
    {
    _DBG(menu1);
    }




    /*-------------------------MAIN FUNCTION------------------------------*/
    /************************************************** *******************//**
    * @brief c_entry: Main ADC program body
    * @param[in] None
    * @return int
    ************************************************** ********************/
    int c_entry(void)
    {
    PINSEL_CFG_Type PinCfg;
    #ifdef MCB_LPC_1768_ADC_BURST_MULTI
    PINSEL_CFG_Type PinCfg1;
    #endif
    uint32_t tmp;
    uint32_t adc_value;
    /* Initialize debug via UART0
    * – 115200bps
    * – 8 data bit
    * – No parity
    * – 1 stop bit
    * – No flow control
    */
    debug_frmwrk_init();


    // print welcome screen
    print_menu();


    /* Because the potentiometer on different boards (MCB & IAR) connect
    * with different ADC channel, so we have to configure correct ADC channel
    * on each board respectively.
    * If you want to check other ADC channels, you have to wire this ADC pin directly
    * to potentiometer pin (please see schematic doc for more reference)
    */
    #ifdef MCB_LPC_1768
    /*
    * Init ADC pin connect
    * AD0.2 on P0.25
    */
    PinCfg.Funcnum = 1;
    PinCfg.OpenDrain = 0;
    PinCfg.Pinmode = 0;
    PinCfg.Pinnum = 25;
    PinCfg.Portnum = 0;
    PINSEL_ConfigPin(&PinCfg);
    #ifdef MCB_LPC_1768_ADC_BURST_MULTI
    /*
    * Init ADC pin connect
    * AD0.3 on P0.26
    */
    PinCfg1.Funcnum = 1;
    PinCfg1.OpenDrain = 0;
    PinCfg1.Pinmode = 0;
    PinCfg1.Pinnum = 26;
    PinCfg1.Portnum = 0;
    PINSEL_ConfigPin(&PinCfg1);
    #endif
    #elif defined (IAR_LPC_1768)
    /* select P1.31 as AD0.5 */
    PinCfg.Funcnum = 3;
    PinCfg.OpenDrain = 0;
    PinCfg.Pinmode = 0;
    PinCfg.Pinnum = 31;
    PinCfg.Portnum = 1;
    PINSEL_ConfigPin(&PinCfg);
    #endif




    /* Configuration for ADC:
    * select: ADC channel 2 (if using MCB1700 board)
    * ADC channel 5 (if using IAR-LPC1768 board)
    * ADC conversion rate = 200KHz
    */
    ADC_Init(LPC_ADC, 200000);
    ADC_ChannelCmd(LPC_ADC,_ADC_CHANNEL,ENABLE);
    #ifdef MCB_LPC_1768_ADC_BURST_MULTI
    ADC_ChannelCmd(LPC_ADC,_ADC_CHANNEL_3,ENABLE);
    #endif


    #ifdef MCB_LPC17XX_ADC_INJECT_TEST
    FIO_ByteSetDir(1, 3, POLL_LED, 1);
    FIO_ByteClearValue(1, 3, POLL_LED);
    // Enable GPIO interrupt P2.10
    GPIO_IntCmd(2,(1<<10),1);
    NVIC_EnableIRQ(EINT3_IRQn);
    #endif


    //Start burst conversion
    ADC_BurstCmd(LPC_ADC,ENABLE);
    while(1)
    {
    #ifdef MCB_LPC_1768
    adc_value = ADC_ChannelGetData(LPC_ADC,ADC_CHANNEL_2);
    _DBG("ADC value on channel 2: ");
    #elif defined (IAR_LPC_1768)
    adc_value = ADC_ChannelGetData(LPC_ADC,ADC_CHANNEL_5);
    _DBG("ADC value on channel 5: ");
    #endif
    _DBD32(adc_value);
    _DBG_("");
    #ifdef MCB_LPC_1768_ADC_BURST_MULTI
    adc_value = ADC_ChannelGetData(LPC_ADC,ADC_CHANNEL_3);
    _DBG("ADC value on channel 3: ");
    _DBD32(adc_value);
    _DBG_("");
    #endif
    // Wait for a while
    for(tmp = 0; tmp < 1500000; tmp++);
    }
    ADC_DeInit(LPC_ADC);
    return (0);
    }


    /* Support required entry point for other toolchain */
    int main (void)
    {
    return c_entry();
    }
    #ifdef DEBUG
    /************************************************** *****************************
    * @brief Reports the name of the source file and the source line number
    * where the CHECK_PARAM error has occurred.
    * @param[in] file Pointer to the source file name
    * @param[in] line assert_param error line source number
    * @return None
    ************************************************** *****************************/
    void check_failed(uint8_t *file, uint32_t line)
    {
    /* User can add his own implementation to report the file name and line number,
    ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */


    /* Infinite loop */
    while(1);
    }
    #endif


    /*
    * @}
    */

  18. کاربران : 5 تشکر کرده اند از شما esi_52000 برای ارسال این پست سودمند:


  19. #353
    تازه وارد
    تاریخ عضویت
    Dec 2013
    نوشته ها
    3
    تشکر
    0
    تشکر شده 1 بار در 1 پست

    پیش فرض

    سلام
    آقا ممنون از زحماتتون
    فقط اگر تو پست اول لیست مثال هایی که تو صفحات بعدی توضیح دادید رو میگذاشتید خیلی راحت تر بود تا اینکه بخوایم تمام این 36 صفحه رو مرور کنیم.

  20. #354
    تازه وارد
    تاریخ عضویت
    Feb 2014
    نوشته ها
    2
    تشکر
    1
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام برادر خسته نباشی
    واقا ازت ممنونم خیلی نرم افزار خوبیه
    یاعلی مدد

  21. #355
    عضو جدید
    تاریخ عضویت
    Jan 2012
    نوشته ها
    5
    تشکر
    2
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام خدمت همه دوستان مخصوصا جناب طاهری
    در مورد intrrupt به شدت به مشکل بر خوردم
    چندتا برنامه نوشتم که همش پایش اینتراپت هیچ کدوم به تابع وقفه پرش نمیکنه . دیگه سرم درد گرفت از صبح تا حالا پاش بودم
    میخواستم بپرسم اگه میشه لطف کنید یه نگاه بهشون بندازید
    #include <lpc17xx.h>
    #include "lpc17xx_clkpwr.h"
    #include "lpc_types.h"
    #include "lpc17xx_nvic.h"
    #include "lpc17xx_rit.h"
    #include "lpc17xx_gpio.h"

    void RIT_IRQHandler(void);

    int main(void)
    {
    GPIO_SetDir(2,1,1);
    RIT_Init(LPC_RIT);
    RIT_TimerConfig(LPC_RIT,1000); // x in milisecond declared
    NVIC_EnableIRQ(RIT_IRQn);
    RIT_Cmd(LPC_RIT,ENABLE);

    while(1)
    {
    }
    }

    void RIT_IRQHandler(void){

    GPIO_SetValue(2,1);
    RIT_GetIntStatus(LPC_RIT);
    }
    دومیه پاور rit رو بعدن روشن کردم البته اما بازم اینتراپت رو اجرا نمیکنه . با coide مینویسم
    ممنون
    ویرایش توسط s699fx : 11-11-2014 در ساعت 20:05

  22. #356
    تازه وارد
    تاریخ عضویت
    Jul 2016
    نوشته ها
    2
    تشکر
    4
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام.من هم این مشکلو دارم. وقتی اینتراپت میدم کلا میکرو قاطی میکنه

  23. #357
    تازه وارد
    تاریخ عضویت
    Mar 2017
    نوشته ها
    2
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    چرا این ارور رو میده؟ uart1 - lpc1768

    سلام
    سوال اول این دستور چکار میکنه؟
    UART_GetIntId)(
    .
    .
    .
    این جوابشه
    Get Interrupt Identification value.

    Parameters:
    [in] UARTx UART peripheral selected, should be:
    LPC_UART0: UART0 peripheral
    LPC_UART1: UART1 peripheral
    LPC_UART2: UART2 peripheral
    LPC_UART3: UART3 peripheral


    Returns:
    Current value of UART UIIR register in UART peripheral.


    خوب پس من میام میگم
    intsrc = UART_GetIntId(LPC_UART1);

    که این ارور رو دارم!
    ..\error: #167: argument of type &quot;LPC_UART1_TypeDef &quot; is incompatible with parameter of type &quot;LPC_UART_TypeDef &quot;

    یعنی مردیکه اومدی میگی LPC_UART1_TypeDef بعد میخای بریزیش تو LPC_UART_TypeDef

    بله همونطور متوجه شدین نوع ها بهم نمیخورن که همونطور بالا میبینین برای تعریف دستور نوشته

    [in] UARTx UART peripheral selected, should be:
    LPC_UART0: UART0 peripheral
    LPC_UART1: UART1 peripheral
    LPC_UART2: UART2 peripheral
    LPC_UART3: UART3 peripheral

    خوب من نوشتم uart1 ارور میگیره !
    کسی میدونه چرا؟

  24. #358
    تازه وارد
    تاریخ عضویت
    Feb 2019
    نوشته ها
    2
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض یک نقد براردانه

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    صفحه دانلود:
    Free ARM Cortex M3 and Cortex M0 IDE
    لینکش در این صفحه است GCC ARM Embedded
    این باید دانلود بشه: arm-none-eabi-gcc-4_6-20111208.exe
    با سلام و عرض خسته نباشید خدمت مهندس زرکوب /// مهندس جان بنده اموزش میکروی lpc1768 شما رو ویرایش قدیم تهیه کردم و فیلم هارو دیدم چند تا نکته بگم خدمتتون تا اموزش هاتون برای دفه های بعد تکمیل بشه //// مهندس جان بعضی جاها تلفظ کلمات اینگلیسی رو اشتباه میگفتی و در برنامه دستورات رو کامل توضیح نمیدادی به طور مثال اصلا توضیح ندادی اون تابع دیلی که اول مینویسی چطوری باعث دیلی میشه یا خیلی از جاهای دیگه شما توضیحاتت کامل نبوده براردر جان //// اینا همه به کنار داداشم خیلی جاها برنامتم مشکل داشته و وقتی من میبستم ارورو میداده

  25. #359
    تازه وارد
    تاریخ عضویت
    Feb 2019
    نوشته ها
    2
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام داداش اسی خیلی گلی شما این همه زحمت کشیدی دمت گرم ////// من یه مشکلی دارم ///// توی قسمت uart0 یه دیتا رو میفرستم به لبتابم از طریق پورت rs232 اطلاعات رو هم دریافت میکنم ولی چرند دریافت میکنم بجا اینکه the number is 22 رو دریافت کنم کارکترای عجیبی دریافت میکنم اگر میشه لطف کن یه برنامه ساده با پورت uart0 که یه متن کوچکی رو ارسال کنه برام بنویس ممنون

    - - - Updated - - -

    داداش یه مثالی برن که یه کارکترو روی پورت uart0 ارسال کنم

  26. #360
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نقل قول نوشته اصلی توسط AMLR نمایش پست ها
    با سلام و عرض خسته نباشید خدمت مهندس زرکوب /// مهندس جان بنده اموزش میکروی lpc1768 شما رو ویرایش قدیم تهیه کردم و فیلم هارو دیدم چند تا نکته بگم خدمتتون تا اموزش هاتون برای دفه های بعد تکمیل بشه //// مهندس جان بعضی جاها تلفظ کلمات اینگلیسی رو اشتباه میگفتی و در برنامه دستورات رو کامل توضیح نمیدادی به طور مثال اصلا توضیح ندادی اون تابع دیلی که اول مینویسی چطوری باعث دیلی میشه یا خیلی از جاهای دیگه شما توضیحاتت کامل نبوده براردر جان //// اینا همه به کنار داداشم خیلی جاها برنامتم مشکل داشته و وقتی من میبستم ارورو میداده
    ورژن قدیم!
    بله ایراداتی بوده و خیلی قبل این مواردی که فرمودید به غیر از ایراد کد دوستان ذکر کرده اند که در ورژن بعدی رفع شده. شما چرا ورژن جدید نگرفتید؟

صفحه 18 از 18 نخستنخست 123456789101112131415161718

موضوعات مشابه

  1. پاسخ: 6
    آخرين نوشته: 05-03-2014, 18:24
  2. کاربرد و معنی دستورات بسکام به شکلی ساده
    توسط mapmap در انجمن پرسش و پاسخ (نرم افزارهای تخصصی)
    پاسخ: 7
    آخرين نوشته: 07-12-2013, 00:52
  3. [سوال] عمل کرد دستور شیفت د
    توسط arvin2009 در انجمن LPC series (NXP)
    پاسخ: 1
    آخرين نوشته: 04-11-2013, 23:03
  4. دستور ارسال کاراکتر در spi با میکرو arm
    توسط Niloufar.Male در انجمن AT91 series (ATMEL)
    پاسخ: 6
    آخرين نوشته: 25-10-2013, 23:20
  5. ادامه اجرای دستوراته قبل از خاموش شدن میکرو
    توسط mohsenal در انجمن گفت و گوي آزاد
    پاسخ: 2
    آخرين نوشته: 07-09-2013, 22:09

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •