На какой ящик? Код повторно...
#include#include #include "PLL_calc.h" // инициализация Таймера 0 ----------------------------------------------------------------- void InitTimer() { T0TCR = 0x0; T0PC = 0x0; // частота периферии (27 647 000 Гц) T0MR0 = 55295000; // устанавливаем 2 секунды T0TC = 0x0; T0MCR = 0x3; // разрешаем прерывание и пересброс от MR0 } // инициализация PLL------------------------ void InitPLL() { PLLCFG= PLLCFGVAL; // the value is pre-calculated in // PLL_calc.h PLLCON= 0x3; // enable and connect PLLFEED=0xAA; // PLL Feed Sequence PLLFEED=0x55; // PLL Feed Sequence VPBDIV = 0x2; // частота периферии в два раза // меньше частоты проца } // инициализация ног на вывод------------- void InitGPIO () { // выводы Р04.5.6.7 IODIR = 0xF0; // выводы P04,5,6,7 установлены на вывод } // обработчик прерывания------------- __irq __arm void IRQHandler0 (void) { IOSET = 0x20; for (int j=1; j<600000; j++) {}; IOCLR = 0x20; T0IR = 0x1; VICVectAddr = 0xFF; } // инициализация Контроллера прерываний---- void InitVIC () { VICProtection = 0x1; VICIntSelect = 0x0; // прерывание классифицировано как // IRQ (по умолчанию) VICIntEnable = 0x10; // разрешение прерывания от канала // 4 (таймер 0) VICVectCntl4 = 0x24; // классифицировал преравание от // 4 канала как IRQ и разрешил его // в слоте 4 VIC VICVectAddr = 0x0; VICVectAddr4 = (unsigned int) IRQHandler0; VICProtection = 0x0; } //------------------------------------------ int main (void) { InitPLL(); InitGPIO(); InitTimer(); InitVIC(); IOSET = 0x80; // зажигаем ногу 7 T0TCR=0x1; //запуск таймера0 while (1) { for (int j=1; j<500000; j++) {}; IOSET = 0x40; for (int j=1; j<500000; j++) {}; IOCLR = 0x40; // if(VICVectAddr == (unsigned int)IRQHandler0) // { // if (IOPIN&0x10)IOCLR = 0x10; else IOSET = 0x10; // T0IR = 0x1; // VICVectAddr = 0xFF; // } } }
-
- Ответ: Шли на x-mk@freemail.ru - MALLOY(16.09.2004 17:26)
- Спасибо. - zyn(20.09.2004 10:51)
- Ответ: Шли на x-mk@freemail.ru - MALLOY(16.09.2004 17:26)