Перейти к содержанию
    

Помогите разобраться новичку с TMS320F2812

Учусь получать прерывания от таймера. Прерывания по заему и по периоду сделаны как приведено в программе. Хочу сделать прерывание по сравнению, подскажите как разрешить и организовать эти прерывания. Дайте ссылку на Manual от TI, где описано как с этим работать. Спасибо)

 

#include "DSP28_Device.h"

#include "main.h"

 

interrupt void EvaTimer1(void);

 

int isr_ticker = 0; //счетчик прерываний по заему

 

interrupt void EvaTimer2(void);

 

int isr_ticker_p = 0; //счетчик прерываний по периоду таймера

 

void main(void)

{

 

//Инициализация регистров управления микроконтроллером, PLL, WatchDog

 

InitSysCtrl();

 

// Отключение и очистка всех прерываний CPU:

DINT;

IER = 0x0000;

IFR = 0x0000;

 

// Инициализация регистров управления прерываниями (Pie Control Registers)

 

InitPieCtrl();

 

// Инициализация таблицы векторов прерывания в известные состояния (PIE Vector Table)

 

InitPieVectTable();

 

// Разрешение прерывания по событию Underflow

EvaRegs.EVAIMRA.bit.T1UFINT = 1;

EvaRegs.EVAIFRA.bit.T1UFINT = 1;

// Разрешение прерывания по периоду таймера

EvaRegs.EVAIMRA.bit.T1PINT = 1;

EvaRegs.EVAIFRA.bit.T1PINT = 1;

 

// Переопределение прерываний.

EALLOW; // Требуется разрешение на запись EALLOW

PieVectTable.T1UFINT = &EvaTimer1;

PieVectTable.T1PINT = &EvaTimer2;

EDIS; // Запрещаем запись в защищенные регистры

 

// Разрешаем группу 2 (PIE group 2) прерывание 6 для T1UFINT

PieCtrlRegs.PIEIER2.all |= M_INT6;

// Разрешаем группу 2 (PIE group 2) прерывание 4 для T1PINT

PieCtrlRegs.PIEIER2.all |= M_INT4;

 

// Разрешаем CPU INT2 для T1UFINT:

IER |= M_INT2;

 

// Разрешаем глобальные прерывания для высокоприоритетных

// прерываний реального времени

EINT; // Разрешаем глобальное прерывание INTM

ERTM; // Разрешаем глобальное прерывание реального времени DBGM

 

// Инициализация 1 таймера менеджера событий А (EVA Timer 1):

// Частота прерываний для центрированной ШИМ = 10 kHz

// при тактовой 150MГц (0x1d4c = 7500)

 

EvaRegs.T1PR = 0x1d4c; // Записываем значение периода

EvaRegs.T1CON.all = 0x0840; //Счет вверх-вниз

 

// Пустой замкнутый цикл фоновой программы

for(;;)

{

l_counter_Curent++;

 

}

 

}

 

interrupt void EvaTimer1(void)

{

// инкрементируем счетчик прерываний

isr_ticker++;

 

// Разрешаем прерывания от этого таймера

EvaRegs.EVAIMRA.bit.T1UFINT = 1;

 

EvaRegs.EVAIFRA.all = BIT9;

 

// Запрос на выполнение новых прерываний

PieCtrlRegs.PIEACK.all = PIEACK_GROUP2;

}

 

interrupt void EvaTimer2(void)

{

// инкрементируем счетчик прерываний

isr_ticker_p++;

 

// Разрешаем прерывания от этого таймера

EvaRegs.EVAIMRA.bit.T1UFINT = 1;

 

EvaRegs.EVAIFRA.all = BIT7;

 

// Запрос на выполнение новых прерываний

PieCtrlRegs.PIEACK.all = PIEACK_GROUP2;

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Учусь получать прерывания от таймера. Прерывания по заему и по периоду сделаны как приведено в программе. Хочу сделать прерывание по сравнению, подскажите как разрешить и организовать эти прерывания. Дайте ссылку на Manual от TI, где описано как с этим работать. Спасибо)

Привет, бро ! я тоже новичок. Вот кидаю тебе книженцию отличную прям под твой процессор. По ней что-то пытался делать в свое время..

а так если хочешь знать больше о своем проце, то заходи на страницу в интернете на сайте TI используемого процессора и там внизу будет до кучи документации и ищи по названию, да скачивай, да читай.

Книга TMS320F2812 Implementation tutorial во вложении ... ЧЕРТ!!!! не загружается файл больше 5 метров =((

вот ссылка на он-лайн хранилище. Пользуйте =))

Изменено пользователем beaRTS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо) С таймерами разобрался, буду двигаться дальше!

 

Изменено пользователем Maksim_13

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...