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

Прерывания в PIC32

Здравствуйте все!

 

Пытаюсь сгенерировать прерывание от таймера в симуляторе. Почему то код не работает. Код с мануала.

 

Инициализация таймера 2

 

void Timer2Init(void)
{
    T2CON = 0x0;                 
    T2CONbits.TCKPS = 0x02;      
    TMR2 = 0x0;              
    PR2 = 0xFF;              
    IPC2SET = 0x0000000C;    
    IPC2SET = 0x00000001;    
    
    IFS0bits.T2IF = 0x0;    // сброс флага
    IEC0bits.T2IE = 0x1;    // разрешить прерывание
    
    T2CONbits.ON = 1;
}

 

Тело прерывания

void __ISR(_TIMER_2_VECTOR,IPL3)Timer2Handler(void)
{
    LATAbits.LATA12 = ~LATAbits.LATA12;

    IFS0bits.T2IF = 0x0; // Be sure to clear the Timer1 interrupt status
}

Что еще нужно для прерывания?

 

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


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

void Timer1_Init(void)
{
// Use Timer 1 for 16-bit and 32-bit processors
// 1:256 prescale
T1CONbits.TCKPS = 0;	// 1:1 prescale value
T1CONbits.TCS = 0;		// 1 = External clock from TxCKI pin  ; 0-internal clock
T1CONbits.TSYNC = 0;	// Timer External Clock Input Synchronization Selection bit
					// 1 = External clock input is synchronized
					// 0 = External clock input is not synchronized
T1CONbits.TWIP = 0;
T1CONbits.TGATE = 0;


PR1 = 0x03ff;			// Base
TMR1 = 0x0000;			// Clear counter
IPC1bits.T1IP = 3;		// Interrupt priority 3 (low)

IEC0CLR = _IEC0_T1IE_MASK;
IFS0CLR = _IFS0_T1IF_MASK;

// Start timer
T1CONbits.TON = 1;
}

 

TMR1 и 2 одинаковые, так что настройки идентичные

У меня это код работает в железе .

Попробуйте настроить регистры периода как у меня

Еще возможно потребуется настройка основного генератора.

так что код инициализации у вас не полный

И еще не заметил у вас настройки порта A12 на вывод

симулятором не пользуюсь , все в железе отлаживаю

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

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


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

Спасибо. Но на вывод не обязательно. Я с dsPIC работал немного, у меня и вжелезе и в симуляторе работало. Флаг прерывания T2IF устанавливается. но в обработчик не попадает. Вектор вроде правильный.

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


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

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

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

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

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

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

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

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

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

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