Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Цифровые сигнальные процессоры (DSP) и их применение»

Помогите пожалуйста отстающему по ADSP-21992

Отправлено отстающий 17 августа 2007 г. 11:00


Выдали мне ADSP-2199x EZ-KIT LITE с процессором ADSP-21992.
Пробовал запустить пример из "ADSP-2199x Mixed Signal DSP Controller
Hardware Reference" - Timer Example – должен махать флажками PF0-PF3.
Все вроде бы элементарно.
Проект откомпилировался, на выводе TMR0 – идут импульсы, а прерываний нет и
PF0-PF3 не изменяются. Пробовал PF как внешнее прерывание - то же. Почему прерывания не происходят?
----------------------------------------------------------
Используется ADSP-21992.ldf

.SECTION /pm program;
Program_Timer_Interrupt:
IOPG = 0;
ar=io(SYSCR); /* Map Interrupt Vector Table to Page 0*/
ar = setbit 4 of ar;
io(SYSCR)=ar;
DIS int; /* Disable all interrupts */
IRPTL = 0x0; /* Clear all interrupts */
ICNTL = 0x0; /* Interrupt nesting disable */
IMASK = 0; /* Mask all interrupts */
IOPG = Interrupt_Controller_Page;
ar = 0xBBB1; /* Assign Timer0 with priority of 1 */--------------!!!!!
io(IPR5) = ar;
ar = 0xBBBB; /* Assign remainder with lowest priority */
io(IPR0) = ar;
io(IPR1) = ar;
io(IPR3) = ar;
AY0=IMASK;
AY1=0x0020; /* Unmask Timer0 Interrupt */------------------------!!!!!
AR = AY0 or AY1;
IMASK=AR;
//ar=0x0010;
//io(PIMASKHI)=ar;
RTS;

/*TIMER REGISTER INTIALIZATION*/
.SECTION /pm program;
Timer_register_Initialization:
IOPG = Timer_Page;
ax0 = 0x001D;----------------------------------------------------!!!!!
/* PWM_OUT mode, Positive Active Pulse, Count to end of */
IO(T_CFGR0) = ax0;
/* period ,Int Request Enable, Timer_pin select */
ax0 = 0x0262;
IO(T_PRDH0) = ax0;
/* Timer 0 Period register (high word) */
ax0 = 0x5A00;
IO(T_PRDL0) = ax0;
/* Timer 0 Period register (low word) */
ax0 = 0x0131;
IO(T_WHR0) = ax0;
/* Timer 0 Width register (high word) */
ax0 = 0x2D00;
IO(T_WLR0) = ax0;
/* Timer 0 Width register (low word) */
ax0 = 0x0100; /* Enable Timer0 */
IO(T_GSR0) = ax0;
ENA INT; /* Globally Enable Interrupts */------------------------!!!!!
RTS;
……………….
/* Timer ISR*/
.section/pm IVint5;
timer0_ :
ENA SR;
ay1 = IOPG;
IOPG = Timer_Page;
ax0 = 0x0001;
IO(T_GSR0) = ax0;
ar = dm(counter_int5);
ar = ar + 1;
dm(counter_int5) = ar;
Timer0_Interrupt_Handler:
AX0 = 0x000F;
AR = 0;
IOPG = General_Purpose_IO;
AX1 = DM(Timer__Flag_Polarity);
AR = TGLBIT 0x0 OF AX1;
if eq jump TURN_OFF;
TURN_ON:
IO(FLAGS) = AX0;
DM(Timer__Flag_Polarity) = AR;
IOPG = ay1;
DIS SR;
RTI;
TURN_OFF:
IO(FLAGC) = AX0;
DM(Timer__Flag_Polarity) = AR;
IOPG = ay1;
DIS SR;
RTI;



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

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

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru