Перейти к содержанию
    

Примеры прерываний LPC Cortex

Да. Спасибо. Это как учиться плавать. Вначале всё делаешь как надо и удивляешься почему не получается.

Потом, когда научился, удивляешься почему раньше не умел.

 

Вначале прерывание от таймера детально разберу, а там уже на более серьёзное переходить буду.

 

Сделал программу для LPC1343. По совпадению таймера должно генерироваться прерывание:

 

 

#include <LPC13xx.h>
#include <core_cm3.h>

void TIMER_32_0_IRQ_Handler()
{
    LPC_GPIO0->DATA|=(1<<7);
}



int main()
{
    LPC_GPIO0->DIR = 0xFFFF;
    LPC_TMR32B0->MCR = 0x01;
    LPC_TMR32B0->MR0 = 0x30;
    __enable_irq();
    NVIC_EnableIRQ(TIMER_32_0_IRQn);
    NVIC_SetPendingIRQ(TIMER_32_0_IRQn);
    LPC_TMR32B0->TCR = 0x01;
    while(1){
        __asm("nop");
    }
}

 

 

Программа зависает на строке NVIC_SetPendingIRQ(TIMER_32_0_IRQn);

Подскажите, может в стартапе подправить что надо?

 

И SystemInit(); вначале дописал, всё равно зависает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заработало!

 

 

Вот код:

 

 

#include <LPC13xx.h>
#include <core_cm3.h>

unsigned long p = 0;


void TIMER32_0_IRQHandler()
{
    LPC_GPIO0->DATA = p;
    ++p;
}



int main()
{
    SystemInit();
    LPC_GPIO0->DIR = 0xFFFFFFFF;

    LPC_TMR32B0->MCR = 0x01;
    LPC_TMR32B0->MR0 = 0x30;
    
    __enable_irq();
    
    
    NVIC_EnableIRQ(TIMER_32_0_IRQn);
    TIMER32_0_IRQHandler(TIMER_32_0_IRQn);
    
    LPC_TMR32B0->TCR = 0x01;
    while(1){
        __asm("nop");
        __asm("nop");
        __asm("nop");
    }
}

 

Всем большое спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...