Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прерывания в PIC32
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Iptash
Здравствуйте все!

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

Инициализация таймера 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
}

Что еще нужно для прерывания?
smart_pic
CODE
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 на вывод
симулятором не пользуюсь , все в железе отлаживаю
Iptash
Спасибо. Но на вывод не обязательно. Я с dsPIC работал немного, у меня и вжелезе и в симуляторе работало. Флаг прерывания T2IF устанавливается. но в обработчик не попадает. Вектор вроде правильный.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.