#include "def186.h"
#include "lib\7188x.h"
//
// Interrupt Controller
//
static unsigned char TmpLed = 0;
void interrupt far MyTimer1(void)
{
outpw(CTL_OFF+OFFS_TMR1_MAXA,40000); //set max. count for the timer
outpw(OFFS_INT_EOI,EOITYPE_TMR1);
if (TmpLed)
LedOn();
else
LedOff();
TmpLed ^= 0xff;
}
unsigned long far *IntVect=(unsigned long far *)0x00000000L;
unsigned long SavedVect11, SavedVect14;
void InstallIsr(void)
{
unsigned int TmpInt;
TmpInt = inpw(CTL_OFF+OFFS_RELC_REG);
TmpInt &=~ 0x4000; //-Configures the interrupt controller for slave mode when set
// to 1 and for master mode when set to 0.
outpw(CTL_OFF+OFFS_RELC_REG,TmpInt); //Timer 1 Mode and Control Register timer and its interrupt disabled
outpw(CTL_OFF+OFFS_TMR1_CTL,0x4000); //Timer 1 Mode and Control Register timer and its interrupt disabled
outpw(CTL_OFF+OFFS_TMR1_CNT,0x0000); //reset the timer's count
outpw(CTL_OFF+OFFS_TMR1_MAXA,40000); //set max. count for the timer 1ms
IntVect[0x12]=(unsigned long)MyTimer1;
outpw(CTL_OFF+OFFS_TMR1_CTL,0xE001); //enable Timer 1 and its interrupt
outpw(INT_MASK, inpw(INT_MASK)&(~0x0001)); /* Включить прерывания Timer */
//
// !!! после этой строчки программа становится неуправляемой
//
}
int main()
{
InstallIsr();
while(1){}
return 0;
}
/
Составить ответ
|||
Конференция
|||
Архив
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание