Не вопрос
CODE
/*************************************************************************
 *
*    Used with ICCARM and AARM.
 *
 *    © Copyright IAR Systems 2007
 *
 *    File name   : main.c
 *    Description : Define main module
 *
 *    History :
 *    1. Data        : 28, February 2007
 *       Author      : Stanimir Bonev
 *       Description : Create
 *
 *  This example project shows how to use the IAR Embedded Workbench for ARM
 * to develop code for the IAR LPC-P2378-SK board. It shows basic use of the I/O,
 * the timer and the interrupt controllers.
 *  It starts by blinking USB Link LED.
 *
 * Note:
 *  After power-up the controller get clock from internal RC oscillator that
 * is unstable and may fail with J-Link auto detect, therefore adaptive clocking
 * should always be used. The adaptive clock can be select from menu:
 *  Project->Options..., section Debugger->J-Link/J-Trace  JTAG Speed - Adaptive.
 *
 *    $Revision: 1.1.2.2 $
 ******************************************************************************/
#include <inarm.h>
#include <stdio.h>
#include <iolpc2378.h>
#include "board.h"
#define bitset(var,bitno)((var)|=1<<(bitno))//set bit
#define bitclr(var,bitno)((var)&=~(1<<(bitno)))//clear bit
#define testbit(var, bitno)((var>> bitno)&0x01)//test bit
//***************Объявление переменных и прототипов функций*********************
 int a,b;
 void timer(void);
//******************************************************************************
#pragma vector=0x1C //определение положения вектора fiq на карте памяти(0x1C)
__fiq __arm void fiq_handler(void)//обработчик прерываний
{
  a++;
  timer();
  T0IR_bit.MR0INT=1;
}
/*******************************************************************************
 * Function Name: InitClock
 * Parameters: void
 * Return: void
 *
 * Description: Initialize PLL and clocks' dividers. Hclk - 288MHz,
 * Cclk- 57.6MHz, Usbclk - 48MHz
 *
 ******************************************************************************/
void InitClock(void)
{
  // 1. Init OSC
  SCS_bit.OSCRANGE = 0;
  SCS_bit.OSCEN = 1;
  // 2.  Wait for OSC ready
  while(!SCS_bit.OSCSTAT);
  // 3. Disconnect PLL
  PLLCON_bit.PLLC = 0;
  PLLFEED = 0xAA;
  PLLFEED = 0x55;
  // 4. Disable PLL
  PLLCON_bit.PLLE = 0;
  PLLFEED = 0xAA;
  PLLFEED = 0x55;
  // 5. Select source clock for PLL
  CLKSRCSEL_bit.CLKSRC = 1; // Selects the main oscillator as a PLL clock source.
  // 6. Set PLL settings 288 MHz
  PLLCFG_bit.MSEL = 24-1;
  PLLCFG_bit.NSEL = 2-1;
  PLLFEED = 0xAA;
  PLLFEED = 0x55;
  // 7. Enable PLL
  PLLCON_bit.PLLE = 1;
  PLLFEED = 0xAA;
  PLLFEED = 0x55;
  // 8. Wait for the PLL to achieve lock
  while(!PLLSTAT_bit.PLOCK);
  // 9. Set clk divider settings
  CCLKCFG   = 5-1;            // 1/5 Fpll - 57.6 MHz
  USBCLKCFG = 6-1;            // 1/6 Fpll - 48 MHz
  PCLKSEL0 = PCLKSEL1 = 0;    // other peripherals - 18MHz
  // 10. Connect the PLL
  PLLCON_bit.PLLC = 1;
  PLLFEED = 0xAA;
  PLLFEED = 0x55;
}
/*************************************************************************
 * Function Name: GpioInit
 * Parameters: void
 * Return: void
 *
 * Description: Reset all GPIO pins to default: primary function
 *
 *************************************************************************/
void GpioInit(void)
{
  // Set to inputs
  IO0DIR  = \
  IO1DIR  = \
  FIO0DIR = \
  FIO1DIR = \
  FIO2DIR = \
  FIO3DIR = \
  FIO4DIR = 0;
  // Enable Fast GPIO 0,1
  SCS_bit.GPIOM = 1;
  // clear mask registers
  FIO0MASK =\
  FIO1MASK =\
  FIO2MASK =\
  FIO3MASK =\
  FIO4MASK = 0;
  // Reset all GPIO pins to default primary function
  PINSEL0 =\
  PINSEL1 =\
  PINSEL2 =\
  PINSEL3 =\
  PINSEL4 =\
  PINSEL5 =\
  PINSEL6 =\
  PINSEL7 =\
  PINSEL8 =\
  PINSEL9 =\
  PINSEL10= 0;
}
//******************************************************************************
void VicInit(void)
{
bitset(VICINTSELECT,4);// TMR0 int-FIQ  
bitset(VICINTENABLE,4);// разрешить прер. 
} 
//****************************************************************************** 
//***************************Подпрограммы***************************************
void timer()
{
  if(testbit(FIO1PIN,19)){bitset(FIO1CLR,19);}
  else{bitset(FIO1SET,19);}// индикация входа в прерывание по TMR0
}
/*******************************************************************************
 * Function Name: main
 * Parameters: none
 *
 * Return: none
 *
 * Description: main
 *
 ******************************************************************************/
void main(void)
{
  // MAM init
  MAMCR_bit.MODECTRL = 0;
  MAMTIM_bit.CYCLES = 3;    // FCLK > 40 MHz
  MAMCR_bit.MODECTRL = 2;   // MAM functions fully enabled
  // Init clock
  InitClock();
  // Init GPIO
  GpioInit();
  // Init VIC
  VicInit();
//********************Инициализация и настройка режимов TMR0******************** 
  PCONP_bit.PCTIM0=1;//TMR0 запитан
  T0TCR_bit.CR=1;//таймер сброшен
  T0TC=0;T0PC=0;//счетчик таймера и предделителя сброшены
  T0TCR_bit.CE=1;//разрешение счета
  T0PR=0x0FFF;//коэфф предделителя
  
  T0MR0=0x00FF;//значение совпадения c T0TC reg 
  T0MCR_bit.MR0I=1;//разрешить установку флага прерывания
  T0MCR_bit.MR0R=1;//сброс счетчика T0TC по совпадению
  T0TCR_bit.CR=0;//счет  
  T0IR_bit.MR0INT=1;//сброс флага рперывания по совпадению
//*************************Тест работы LED**************************************
  bitset(FIO1DIR,19);// P1.19-выход
  bitset(FIO1SET,19);// P1.19-установлен в 1
  bitset(FIO1CLR,19);// P1.19-сброшен в 0
//******************************************************************************   
  __enable_interrupt();
  while(1)
  {b++;}
}