Пром. контроллер ICP CON I-7188XC Можно ли использовать таймер 1 для собственных нужд(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено KhA 26 ноября 2006 г. 09:19

внутри стоит Am188, есть своя операционка, которая использует таймер 0 для формирования меток 1мс, и таймер 2, для формирования меток 18.2 мс - системное прерывание (в Дос-е это прерывание 1Сh). Хочется для разгрузки основного цикла программы задействовать таймер 1. но пока безрезультатно. Может у кого есть опыт программирования в ДОС, как реализовать прерывние с разным уровнем приоритета...
Компилятор Borland C++ 3.1

#include
#include
#include

#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;
}
/

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
URL изображения: 
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 123:


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание