Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Надо еще инициализировать VIC
Отправлено
kan
21 августа 2008 г. 17:55
В ответ на:
Ответ:
отправлено <font color=gray>Лень</font> 21 августа 2008 г. 17:31
void LPCInitVIC()
{
volatile unsigned long * pVecAdd, *pVecCntl;
int i;
// Assign all interrupt channels to IRQ
VICINTSELECT = 0;
// Disable all interrupts
VICINTENCLEAR = 0xFFFFFFFF;
// Clear all software interrupts
VICSOFTINTCLEAR = 0xFFFFFFFF;
// VIC registers can be accessed in User or privileged mode
VICPROTECTION = 0;
// Clear interrupt
VICADDRESS = 0;
// Clear address of the Interrupt Service routine (ISR) for vectored IRQs
// and disable all vectored IRQ slots
for(i = 0, pVecCntl = &VICVECTPRIORITY0, pVecAdd = &VICVECTADDR0; i < 32; ++i)
{
*pVecCntl++ = *pVecAdd++ = 0;
}
}
Вот стандартный вид обработчика
__irq __arm void irq_handler(void)
{
void (*interrupt_function)();
unsigned int vector;
vector = VICADDRESS; // Get interrupt vector.
interrupt_function = (void(*)())vector;
if( interrupt_function != (void(*)())0 )
{
interrupt_function(); // Call vectored interrupt function.
VICADDRESS = 0; // Clear interrupt in VIC.
}
}
Вместо interrupt_function(); вызывай свой _blink();
Составить ответ
|
Вернуться на конференцию
Ответы
И надо разрешить прерывание так:
-
kan
(21.08.2008 17:58:24
192.168.3.9,62.205.163.4
, 257 байт)
Ответ: Спасибо! буду грызть...
-
Лень
(21.08.2008 18:14:14
195.42.90.40
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите 6 на два:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru