Цитата(Палыч @ Aug 28 2008, 18:53)

Компилятор говорит, что не понимает "__fiq" (я - тоже не понимаю), которое идет после "(void)". Компилятор ожидает, что после "(void)" будет "{" (ну, или ";" в третьей строке).
а как тогда объявить прототип на функцию обработчик прерывания?
в примере, в книге ЛПЦ2000 (Т. Мартин) пример 11, именно так и написано ..
Код
#include <LPC21xx.H>
void FIQ_Handler (void) __fiq; //declare FIQ ISR
void initFiq (void);
void main (void)
{
initFiq(); //Initilise the Fast interrupt source
IOCLR1 = 0x00FF0000; //clear the LED pins
while(1)
{
; //Loop here forever
}
}
void FIQ_Handler (void) __fiq
{
IOSET1 = 0x00FF0000; //Set the LED pins
EXTINT = 0x00000002; //Clear the peripheral interrupt flag
}
void initFiq(void)
{
IODIR1 = 0x00FF0000; //Set the LED pins as outputs
PINSEL0 = 0x20000000; //Enable the EXTINT1 interrupt
VICIntSelect = 0x00008000; //Enable a Vic Channel as FIQ
VICIntEnable = 0x00008000;
}
Цитата(AD_Wolf @ Aug 28 2008, 19:02)

а как тогда объявить прототип на функцию обработчик прерывания?
в примере, в книге ЛПЦ2000 (Т. Мартин) пример 11, именно так и написано ..
Код
#include <LPC21xx.H>
void FIQ_Handler (void) __fiq; //declare FIQ ISR
void initFiq (void);
void main (void)
{
initFiq(); //Initilise the Fast interrupt source
IOCLR1 = 0x00FF0000; //clear the LED pins
while(1)
{
; //Loop here forever
}
}
void FIQ_Handler (void) __fiq
{
IOSET1 = 0x00FF0000; //Set the LED pins
EXTINT = 0x00000002; //Clear the peripheral interrupt flag
}
void initFiq(void)
{
IODIR1 = 0x00FF0000; //Set the LED pins as outputs
PINSEL0 = 0x20000000; //Enable the EXTINT1 interrupt
VICIntSelect = 0x00008000; //Enable a Vic Channel as FIQ
VICIntEnable = 0x00008000;
}
может быть это потому что у меня в опциях пректа стоит галочка на Use RealView Compiler, а он такой синтаксих не понимает. если да, то подскажите как переключить на CARM? с опции Use RealView Compiler переключиться не получается, не снимается