![]() |
|
|
Продукция MICROCHIP Технические вопросы по всей продукции Microchip |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 |
Junior Member
Регистрация: 17.04.2011
Возраст: 42
Сообщений: 9
Вес репутации: 100/0 ![]() ![]() |
![]()
Здравствуйте.
Не могу получить прерывание от модуля захвата...в обработчик прерывания даже не входит. Настраиваю так: CCP1CON:= $5; //Capture Falling Edge PIR1.CCP1IF:= 0; PIE1.CCP1IE:= 1; ЗЫ. Прерывания от других периферий INTx и USB (это те, что проверил) работают исправно. Какие будут мысли? Может еще какие регистры нужно использовать? |
![]() |
![]() |
![]() |
#2 |
Junior Member
Регистрация: 08.04.2011
Адрес: Palermo
Сообщений: 24
Вес репутации: 100/37 ![]() ![]() |
![]()
1. Проверить TRISC.5 := 1 // ccp1pin - input
2. Предварительно сбросить CCP CCP1CON := 0 3. и CCP mode = 5 это - "rising edge" для "falling edge" CCP mode = 4 (CCP1CON := 4) |
![]() |
![]() |
![]() |
#3 |
Junior Member
Регистрация: 17.04.2011
Возраст: 42
Сообщений: 9
Вес репутации: 100/0 ![]() ![]() |
![]()
Пин CCP1 на вход работает нормально (проверил в цикле с выводом на ЖК). Значение было 4 вначале, это потом уже перебирал все что можно. Попробую предварительное обнуление CCP1CON, но сомневаюсь что это поможет...
|
![]() |
![]() |
![]() |
#4 |
Junior Member
Регистрация: 17.04.2011
Возраст: 42
Сообщений: 9
Вес репутации: 100/0 ![]() ![]() |
![]()
Предварительное обнуление CCP1CON не помогло. Какие еще будут идеи? Курение эраты также не помогло (там нет проблем с модулем)!
|
![]() |
![]() |
![]() |
#5 |
Super Moderator
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,086
Вес репутации: 6158/182 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#6 |
Junior Member
Регистрация: 17.04.2011
Возраст: 42
Сообщений: 9
Вес репутации: 100/0 ![]() ![]() |
![]()
Не хочет вставлять текст...постоянно пишет Bad Request...
Как то движок форума через одно место работает ((( Код вложением сделал... Последний раз редактировалось awtoap; 15.12.2011 в 19:57. |
![]() |
![]() |
![]() |
#7 |
Junior Member
Регистрация: 17.04.2011
Возраст: 42
Сообщений: 9
Вес репутации: 100/0 ![]() ![]() |
![]()
Убрал минимализм в настройках и коде. Вернул поддержку USB и прочий код. И блин чудо случилось...но не тут то было...прерывания начинают обрабатываться если всунуть USB кабель в комп и прошла инициализация. Но стоит выдернуть кабель и опять возвращается на круги своя...мистика блин. Уже не знаю что и думать.
![]() |
![]() |
![]() |
![]() |
#8 |
Junior Member
Регистрация: 08.04.2011
Адрес: Palermo
Сообщений: 24
Вес репутации: 100/37 ![]() ![]() |
![]()
а INTCON.PEIE = 1
автоматически компилятором добавляется? приоритеты прерываний выключены? |
![]() |
![]() |
![]() |
#9 |
Junior Member
Регистрация: 17.04.2011
Возраст: 42
Сообщений: 9
Вес репутации: 100/0 ![]() ![]() |
![]()
RCON.IPEN:= 0;
INTCON.PEIE:= 1; Вот и это добавлял...полный ноль...только, если воткнуть шнурок USB. К сожалению исходников USB библы нет, так бы посмотрел что она делает. Может у кого есть платень на этом чипе, что бы проверить модуль захвата? |
![]() |
![]() |
![]() |
#10 |
Senior Member
Регистрация: 25.02.2007
Возраст: 51
Сообщений: 1,002
Вес репутации: 414/65 ![]() ![]() ![]() ![]() ![]() |
![]()
Рискну сдуть пыль с темы. Аналогичная проблема, только с модулем USART. Камень тот же, компайлер MikroC PRO For PIC. Приоритетная система прерываний выключена, PEIE установлен, GIE включен, прерывания от приёмника USART разрешены, модуль активирован (и приемник и передатчик). Данные на ногу RX (RB5) приходят исправно. По вектору прерывания (0008) камень не переходит - контролирую светодиодом. Передатчик работает. В чём может быть проблема?
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
|
![]() Цитата:
Код:
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(;;){ ........................ } }
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3) |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Регистрация: 25.02.2007
Возраст: 51
Сообщений: 1,002
Вес репутации: 414/65 ![]() ![]() ![]() ![]() ![]() |
![]()
Понятненько. Спасибо, еррату почитаю.
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Регистрация: 25.02.2007
Возраст: 51
Сообщений: 1,002
Вес репутации: 414/65 ![]() ![]() ![]() ![]() ![]() |
![]()
Да какой там код... Инициализация и стандартный прием байта в прерывании. Хотя, мож глаз замылился... Сейчас на даче, а в поХмедельник выложу и инициализацию и приём байта в прерывании.
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Регистрация: 25.02.2007
Возраст: 51
Сообщений: 1,002
Вес репутации: 414/65 ![]() ![]() ![]() ![]() ![]() |
![]()
Собссно, вот инициализация, ничего необычного:
Код:
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; // } // |
![]() |
![]() |
![]() |
#16 |
Senior Member
Регистрация: 25.02.2007
Возраст: 51
Сообщений: 1,002
Вес репутации: 414/65 ![]() ![]() ![]() ![]() ![]() |
![]()
Еррата ничего не дала - у меня ревизия камня "е3", в еррате о ней даже не упоминается.
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Регистрация: 25.02.2007
Возраст: 51
Сообщений: 1,002
Вес репутации: 414/65 ![]() ![]() ![]() ![]() ![]() |
![]()
Всё, нашел. ANSELH.ANS11, был сконфигурирован как аналоговый вход. Что то я сначала не подумал об этом, полагал, что по умолчанию как Digital I/O настраивается при сбросе.
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Инициализация и настройка 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 |