ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
14618 Топик полностью
zyn (16.09.2004 13:26, просмотров: 1) ответил MALLOY на Ответ: Код прерывания и процедуры в студию можно
Исходники - где же ошибочка ? #include // инициализация Таймера 0 void InitTimer() { T0TCR = 0x0; T0PC = 0x0; //(27 647 000 Гц) делиться на 55295500 T0MR0 = 5529500; // 2 секунды T0TC = 0x0; T0MCR = 0x3; //разрешаем прерывание и пересброс от MR0 } // инициализация ног на вывод void InitGPIO () { // выводы Р04.5.6.7 IODIR = 0xF0; // выводы P04,5,6,7 установлены на вывод } // обработчик прерывания __irq __arm void IRQHandler0 (void) { IOSET = 0x20; for (int j=1; j<6000000; j++) {}; IOCLR = 0x20; T0IR = 0x1; VICVectAddr = 0xFF; } // инициализация Контроллера прерываний void InitVIC () { VICIntSelect = 0x0; // пр. классифицировано как IRQ (по умолчанию) VICIntEnable = 0x10;// разрешение пр. от канала 4 (таймер 0) VICVectCntl4 = 0x24;// классифицировал пр. от 4 канала как // IRQи разрешил его в слоте 4 VIC } int main (void) { InitGPIO(); InitTimer(); InitVIC(); VICVectAddr4 = (unsigned int) IRQHandler0; VICProtection = 0x0; T0TCR=0x1; //запуск таймера0 while (1) { for (int j=1; j<500000; j++) {}; IOSET = 0x40; for (int j=1; j<500000; j++) {}; IOCLR = 0x40; } }