Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> прерывания PIC16F676, не работают прерывания pic16f676 
:(
    Опции темы
vol4ek
Дата 26.8.2018, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 1.5.2011
Где: Минск

Репутация: нет
Всего: 0



Доброго дня или ночи. Проблема такая: есть мк pic16f676 кусаю локти уже второй день, никак не ловятся внешние прерывания от RA1 и RA3
упростил код - проще некуда.
Код

#include <xc.h> 

#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator: High speed crystal/resonator on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF      // RA3/MCLR pin function select (RA3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = OFF      // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF         // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)

#define _XTAL_FREQ 4000000 // 4MHz

void __interrupt(high_priority)isr(void)
{
if (RAIF) 
{
    PORTC = 0x1;
    RAIF=0;
}
    return;
}

void main(void) 
{
    CMCON = 0x07; // компараторы отключены
    ADCON0 = 0x00; // АЦП отключен
    OPTION_REG = 0x00 // подтягивающие резисторы PORTA включены
    ANSEL = 0x00; // все порты цифровые i/o
    INTCON=0x88; // GIE = 1, RAIE = 1 // разрешены глобальные прерываня и прерывания от PORTA
    IOCA = 0xA; // IOCA3 = 1, IOCA1 = 1 // разрешены прерываня при изменении состояния RA3, RA1
    TRISA = 0x1D; // RA5, RA4, RA3, RA1 - входы, остальные выходы
    TRISC = 0x00; // весь PORTC выходы
    PORTA = 0x00;
    PORTC = 0x00;

while(1)
{
    __delay_ms(10);
}
return;
}


RA3, RA1 подтянуты к + питания через резаки 10к. Игрался с регистром WPUA результата ноль. Если в INITCON бит INTE поставить в 1 и проверять флаг INTF, то прерывания от RA2 ловятся. Железо уже готово, переделывать не хочется. Сейчас состояние RA1, RA3 проверяю по прерыванию от таймера TMR0 но это как-то совсем калично выглядит. с 628A и 819 пиками никакких проблем, что с 676 не так я делаю?
PS компилятор xc8 v2.0

Это сообщение отредактировал(а) vol4ek - 26.8.2018, 22:41
PM MAIL ICQ   Вверх
vol4ek
Дата 8.9.2018, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 1.5.2011
Где: Минск

Репутация: нет
Всего: 0



перешел на pic18 но с этим проблема так и не решилась. Было под рукой штук с десяток поэтому и решил использовать "что не жалко"
PM MAIL ICQ   Вверх
vol4ek
Дата 7.1.2019, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 1.5.2011
Где: Минск

Репутация: нет
Всего: 0



опять свела судьба меня с этим чипом. после получасового траханья было выяснено, что несмотря на установленный регистр ADCON0 который вроде бы полностью отключает модуль АЦП в контроллере все равно нужно инициализировать регистр ADCON1 и в нем выставлять где аналоговые\цифровые входы-выходы. вот такие дела.
PM MAIL ICQ   Вверх
Blogodov
Дата 19.1.2019, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.1.2019

Репутация: -1
Всего: -1



 smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.1185 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.