Немного доработал программу и все заработало!
CODE
#include <nxp/iolpc2378.h>
//#include "device.h"
char counter = 0;
char flag = 0;
__irq __arm void Timer0_Handler(void)
{
flag = 1;
T0IR = 1; // сброс флага прерывания
VICADDRESS = 0;
}
//============================================================================
void Init_Timer0(void)
{
T0PR = 12000; // предделитель для импульсов 1 мс
T0MR0 = 1000; // до этого значения считаем, =1сек
T0TCR = 2; // сброс счетчика и предделителя таймера 0
T0MCR = 3; // сброс и прерывание от совпадения от MR0
T0TCR = 1; // разрешить таймер 0
VICVECTADDR4 = (unsigned long)Timer0_Handler; // присваиваем адрес вектора прерывания
VICVECTPRIORITY4 = 3; // приоритет не более 3
VICINTENABLE = (1 << VIC_TIMER0); // разрешить прерывание
}
//===========================================================================
int main()
{
// Init_PLL();
Init_Timer0();
while (1) {
if (flag == 1){
flag = 0;
counter >>= 1;
if (counter == 0) {
counter = 0x80;
}
FIO2CLR = 0xFF;
FIO2SET = counter;
}
}
}
только вот не пойму, почему в строке
VICVECTPRIORITY4 = 3;
когда ставлю приоритет равным более 4 , то программа не работает!
Причина редактирования: Уменьшение видимого размера цитаты исходника.