Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 14.12.2011, 22:30   #1
awtoap
Junior Member
 
Регистрация: 17.04.2011
Возраст: 41
Сообщений: 9
Вес репутации: 100/0
awtoap will become famous soon enoughawtoap will become famous soon enough
По умолчанию PIC18F14K50 и CCP1 Compture Mode

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

Не могу получить прерывание от модуля захвата...в обработчик прерывания даже не входит.
Настраиваю так:

CCP1CON:= $5; //Capture Falling Edge
PIR1.CCP1IF:= 0;
PIE1.CCP1IE:= 1;


ЗЫ. Прерывания от других периферий INTx и USB (это те, что проверил) работают исправно.

Какие будут мысли? Может еще какие регистры нужно использовать?
awtoap вне форума   Ответить с цитированием
Старый 15.12.2011, 07:31   #2
XuMuK
Junior Member
 
Регистрация: 08.04.2011
Адрес: Palermo
Сообщений: 24
Вес репутации: 100/32
XuMuK will become famous soon enoughXuMuK will become famous soon enough
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

1. Проверить TRISC.5 := 1 // ccp1pin - input
2. Предварительно сбросить CCP CCP1CON := 0
3. и CCP mode = 5 это - "rising edge" для "falling edge" CCP mode = 4
(CCP1CON := 4)
XuMuK вне форума   Ответить с цитированием
Старый 15.12.2011, 14:59   #3
awtoap
Junior Member
 
Регистрация: 17.04.2011
Возраст: 41
Сообщений: 9
Вес репутации: 100/0
awtoap will become famous soon enoughawtoap will become famous soon enough
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

Пин CCP1 на вход работает нормально (проверил в цикле с выводом на ЖК). Значение было 4 вначале, это потом уже перебирал все что можно. Попробую предварительное обнуление CCP1CON, но сомневаюсь что это поможет...
awtoap вне форума   Ответить с цитированием
Старый 15.12.2011, 18:22   #4
awtoap
Junior Member
 
Регистрация: 17.04.2011
Возраст: 41
Сообщений: 9
Вес репутации: 100/0
awtoap will become famous soon enoughawtoap will become famous soon enough
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

Предварительное обнуление CCP1CON не помогло. Какие еще будут идеи? Курение эраты также не помогло (там нет проблем с модулем)!
awtoap вне форума   Ответить с цитированием
Старый 15.12.2011, 18:52   #5
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,876
Вес репутации: 5553/169
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

Цитата:
Сообщение от awtoap Посмотреть сообщение
Какие еще будут идеи?
покажите минимально неработающий код
Greg вне форума   Ответить с цитированием
Старый 15.12.2011, 19:51   #6
awtoap
Junior Member
 
Регистрация: 17.04.2011
Возраст: 41
Сообщений: 9
Вес репутации: 100/0
awtoap will become famous soon enoughawtoap will become famous soon enough
По умолчанию Re: PIC18F14K50 и CCP1 Capture Mode

Не хочет вставлять текст...постоянно пишет Bad Request...
Как то движок форума через одно место работает (((
Код вложением сделал...
Вложения
Тип файла: rar test.rar (573 байт, 11 просмотров)

Последний раз редактировалось awtoap; 15.12.2011 в 19:57.
awtoap вне форума   Ответить с цитированием
Старый 15.12.2011, 22:54   #7
awtoap
Junior Member
 
Регистрация: 17.04.2011
Возраст: 41
Сообщений: 9
Вес репутации: 100/0
awtoap will become famous soon enoughawtoap will become famous soon enough
По умолчанию Re: PIC18F14K50 и CCP1 Capture Mode

Убрал минимализм в настройках и коде. Вернул поддержку USB и прочий код. И блин чудо случилось...но не тут то было...прерывания начинают обрабатываться если всунуть USB кабель в комп и прошла инициализация. Но стоит выдернуть кабель и опять возвращается на круги своя...мистика блин. Уже не знаю что и думать.
awtoap вне форума   Ответить с цитированием
Старый 15.12.2011, 23:33   #8
XuMuK
Junior Member
 
Регистрация: 08.04.2011
Адрес: Palermo
Сообщений: 24
Вес репутации: 100/32
XuMuK will become famous soon enoughXuMuK will become famous soon enough
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

а INTCON.PEIE = 1
автоматически компилятором добавляется?

приоритеты прерываний выключены?
XuMuK вне форума   Ответить с цитированием
Старый 15.12.2011, 23:46   #9
awtoap
Junior Member
 
Регистрация: 17.04.2011
Возраст: 41
Сообщений: 9
Вес репутации: 100/0
awtoap will become famous soon enoughawtoap will become famous soon enough
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

RCON.IPEN:= 0;
INTCON.PEIE:= 1;

Вот и это добавлял...полный ноль...только, если воткнуть шнурок USB. К сожалению исходников USB библы нет, так бы посмотрел что она делает.

Может у кого есть платень на этом чипе, что бы проверить модуль захвата?
awtoap вне форума   Ответить с цитированием
Старый 12.04.2019, 13:14   #10
NSS
Senior Member
 
Аватар для NSS
 
Регистрация: 25.02.2007
Возраст: 49
Сообщений: 986
Вес репутации: 414/59
NSS is just really niceNSS is just really niceNSS is just really niceNSS is just really niceNSS is just really nice
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

Рискну сдуть пыль с темы. Аналогичная проблема, только с модулем USART. Камень тот же, компайлер MikroC PRO For PIC. Приоритетная система прерываний выключена, PEIE установлен, GIE включен, прерывания от приёмника USART разрешены, модуль активирован (и приемник и передатчик). Данные на ногу RX (RB5) приходят исправно. По вектору прерывания (0008) камень не переходит - контролирую светодиодом. Передатчик работает. В чём может быть проблема?
__________________
"Ignoramus et ignorabimus..."
NSS вне форума   Ответить с цитированием
Старый 12.04.2019, 16:29   #11
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,876
Вес репутации: 5553/169
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

Цитата:
Сообщение от NSS Посмотреть сообщение
Рискну сдуть пыль с темы.

В чём может быть проблема?
да вроде прям в этой же теме и ответ был
Greg вне форума   Ответить с цитированием
Старый 12.04.2019, 16:58   #12
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 47
Сообщений: 1,803
Вес репутации: 2039/81
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

Цитата:
Сообщение от NSS Посмотреть сообщение
Рискну сдуть пыль с темы. Аналогичная проблема, только с модулем USART. Камень тот же, компайлер MikroC PRO For PIC. Приоритетная система прерываний выключена, PEIE установлен, GIE включен, прерывания от приёмника USART разрешены, модуль активирован (и приемник и передатчик). Данные на ногу RX (RB5) приходят исправно. По вектору прерывания (0008) камень не переходит - контролирую светодиодом. Передатчик работает. В чём может быть проблема?
Ну как бы у меня работает. Кусок из рабочего кода, но с RS485, что не принципиально, прием идет в прерывании.

Код:
void interrupt (){
 .................  
  if (RCIF_bit) {
      if(OERR_bit || FERR_bit){

       if(FERR_bit){
        tmp = RCREG;
       }

       if(OERR_bit){
         CREN_bit = 0;
         CREN_bit = 1;
        }
      }
      else{
       RS485Slave_Receive(dat_in); // тут собственно RCREG  и читается
      }
  }
}


void main() {

 ANSEL  = 0;                                    
 ANSELH = 0;
 C1ON_bit = 0;                                   
 C2ON_bit = 0;
..........
UART1_Init(57600);
...................
PEIE_bit = 1;
RCIE_bit = 1;
GIE_bit = 1;
 ...........................
for(;;){
........................

}

 }
P.S. И еррата еще есть, там кой-чего про UART.
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 12.04.2019, 18:25   #13
NSS
Senior Member
 
Аватар для NSS
 
Регистрация: 25.02.2007
Возраст: 49
Сообщений: 986
Вес репутации: 414/59
NSS is just really niceNSS is just really niceNSS is just really niceNSS is just really niceNSS is just really nice
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

Понятненько. Спасибо, еррату почитаю.
__________________
"Ignoramus et ignorabimus..."
NSS вне форума   Ответить с цитированием
Старый 12.04.2019, 18:28   #14
NSS
Senior Member
 
Аватар для NSS
 
Регистрация: 25.02.2007
Возраст: 49
Сообщений: 986
Вес репутации: 414/59
NSS is just really niceNSS is just really niceNSS is just really niceNSS is just really niceNSS is just really nice
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

Да какой там код... Инициализация и стандартный прием байта в прерывании. Хотя, мож глаз замылился... Сейчас на даче, а в поХмедельник выложу и инициализацию и приём байта в прерывании.
__________________
"Ignoramus et ignorabimus..."
NSS вне форума   Ответить с цитированием
Старый 16.04.2019, 11:23   #15
NSS
Senior Member
 
Аватар для NSS
 
Регистрация: 25.02.2007
Возраст: 49
Сообщений: 986
Вес репутации: 414/59
NSS is just really niceNSS is just really niceNSS is just really niceNSS is just really niceNSS is just really nice
Thumbs up Re: PIC18F14K50 и CCP1 Compture Mode

Собссно, вот инициализация, ничего необычного:

Код:
RCON.IPEN     = 0; //
INTCON.PEIE   = 1; //
GIE           = 0; //
                   //
TRISB.B5      = 1; //
TRISB.B7      = 1; //
                   //
RCSTA.SPEN    = 1; // USART is ON, Fosc = 18.432MHz
TXSTA.BRGH    = 1; // Highspeed mode
BAUDCON.BRG16 = 0; // 16-bit BRG generator (for OSC = HSPLL)
SPBRG         = 9; // SPBRG = (((Fosc/BAUDRATE)/16)-1) for BRGH = 0/BRG16 = 1 or
                   // BRGH = 1/BRG16 = 0
                   // For Fosc = 18.432MHz (18432000Hz):
                   // Baud rate = 9600(119), 19200(59), 57600(19), 115200(9)
                   //
TXSTA.SYNC    = 0; // Asynchronous mode
TXSTA.TXEN    = 1; // Transmit on
RCSTA.CREN    = 1; // Receive on
PIR1.RCIF     = 0; // Interrupt flag from receiver cleared
PIE1.RCIE     = 1; // Interrupt from receiver on
                   //
INTCON.GIE    = 1; //
}                  //
А вот обработчик (светодиод добавил чтобы видеть - попадает проц в прерывание или нет):

Код:
void interrupts() iv 0x0008 ics ICS_AUTO {    //
                                              //
        Stat_Led = !Stat_Led;                 //
                                              // 
        if (PIE1.RCIE && PIR1.RCIF){          //
                                              //
              if(RCSTA.FERR || RCSTA.OERR){   //
                       RCSTA.CREN=0;          //
                       RCREG;                 //
                       RCSTA.CREN=1;          //
              }                               //
              else{                           //
//                     Stat_Led = !Stat_Led;    //
                       rc_buff = RCREG;       //
              }                               //
        }                                     //
        PIR1.RCIF = 0;                        //
 }                                            //
В общем, все как обычно, ничего нового. Всегда этот код работал, уже много лет пользуюсь. А тут вот такая фигня. Правда, раньше на МПЛАБ и HTPICC делал, а сейчас на MikroC. Маловероятно, что дело в этом, но для полноты информации, так сказать...
__________________
"Ignoramus et ignorabimus..."
NSS вне форума   Ответить с цитированием
Старый 16.04.2019, 11:26   #16
NSS
Senior Member
 
Аватар для NSS
 
Регистрация: 25.02.2007
Возраст: 49
Сообщений: 986
Вес репутации: 414/59
NSS is just really niceNSS is just really niceNSS is just really niceNSS is just really niceNSS is just really nice
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

Еррата ничего не дала - у меня ревизия камня "е3", в еррате о ней даже не упоминается.
__________________
"Ignoramus et ignorabimus..."
NSS вне форума   Ответить с цитированием
Старый 16.04.2019, 11:55   #17
NSS
Senior Member
 
Аватар для NSS
 
Регистрация: 25.02.2007
Возраст: 49
Сообщений: 986
Вес репутации: 414/59
NSS is just really niceNSS is just really niceNSS is just really niceNSS is just really niceNSS is just really nice
По умолчанию Re: PIC18F14K50 и CCP1 Compture Mode

Всё, нашел. ANSELH.ANS11, был сконфигурирован как аналоговый вход. Что то я сначала не подумал об этом, полагал, что по умолчанию как Digital I/O настраивается при сбросе.
__________________
"Ignoramus et ignorabimus..."
NSS вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инициализация и настройка CAN на dsPIC Velocity Продукция MICROCHIP 26 15.09.2011 21:54
PIC18F14K50 XTEA bootloader 2 кб. goodwin Продукция MICROCHIP 0 12.11.2010 20:06
PIC18F14K50 как мост USB-UART Sergey K Продукция MICROCHIP 11 11.11.2010 23:01
dsPIC30F2020 PWM Push-Pull mode and_69 Продукция MICROCHIP 7 26.02.2009 09:56
Шаговый на PIC16F84A-нужна помощь Foma Источники питания и силовая электроника 11 24.06.2007 21:59


Часовой пояс GMT +3, время: 12:11.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot