اطلاعیه

Collapse
No announcement yet.

یه سوال از نحوه استفاده از متغیر یک تابع مثل تابع rtc در تابع main

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

    یه سوال از نحوه استفاده از متغیر یک تابع مثل تابع rtc در تابع main

    با سلام.میخواستم بدونم که یک متغیری مثل g که توی تابعی مانند RTC هست و خود این تابع توی تابع main اینکلود شده رو چطور میشه توی تابع main به کار برد.به بیان دیگر میخوام با استفاده از وقفه RTC تابع main ام رو که توش حلقه اصلی م قرار داره رو متوجه 1 ثانیه کنمش.
    اینم نمونه کدم برای lpc1768 و keil :
    http://s3.picofile.com/d/92c5c252-49ac-4c60-9333-5bb172f4a15b/RTC.rar
    دقت کردین تو مهمونیا یه کیوی رو وقتی با پوست میخورین چه جور نگاتون میکنن.!!!!

    هيچگاه چيزي را خوب نمي فهمي، مگر اينكه بتواني آن را براي مادربزرگت شرح دهي!((آلبرت انيشتين))

    #2
    پاسخ : یه سوال از نحوه استفاده از متغیر یک تابع مثل تابع rtc در تابع main

    نوشته اصلی توسط omid_2132
    با سلام.میخواستم بدونم که یک متغیری مثل g که توی تابعی مانند RTC هست و خود این تابع توی تابع main اینکلود شده رو چطور میشه توی تابع main به کار برد.به بیان دیگر میخوام با استفاده از وقفه RTC تابع main ام رو که توش حلقه اصلی م قرار داره رو متوجه 1 ثانیه کنمش.
    اینم نمونه کدم برای lpc1768 و keil :
    http://s3.picofile.com/d/92c5c252-49ac-4c60-9333-5bb172f4a15b/RTC.rar
    سلام دوست عزیز،

    اگر می خواهید از اینتراپت RTC استفاده کنید باید فانکشن هایی که میخواهید انجام شوند رو در void RTC_IRQHandler (void) بنویسید.
    قبل از main هم به اینتراپت مورد نظر یک مقدار priority بدهید.
    کد رو به صورت زیر تغییر دهید تا در هر یک ثانیه نرم افزار به وقفه بره و پایه ی خروجی را high و low کند.

    [code=cpp]void RTC_IRQHandler (void)
    {
    LPC_RTC->ILR |= ILR_RTCCIF;
    alarm_on = 1;

    if (g == 1){
    LPC_GPIO0->FIOSET = 0x01;
    g = 2;
    }else if (g == 2){
    LPC_GPIO0->FIOCLR = 0x01;
    g = 1;
    }
    }
    [/code]

    در قسمت main هم هیچ کدی نیازی نیست نوشته شود.
    [code=cpp] RTCSetTime( local_time );
    RTCStart();
    NVIC_EnableIRQ(RTC_IRQn);

    NVIC_SetPriority(RTC_IRQn, 5);

    while (1) {

    }[/code]

    فقط به متغیر g مقدار اولیه ی 1 بدهید.
    [code=cpp]volatile uint32_t alarm_on = 0, g = 1;
    [/code]

    ارادتمند،



    دیدگاه

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