Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Не выполняется внешние прерывание PIC16F877

Непрочитано 31.08.2014, 15:58  
vavan1983
Почётный гражданин KAZUS.RUN
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: Не выполняется внешние прерывание PIC16F877

Сообщение от vavan1983 Посмотреть сообщение
// дайте шанс обработчику прерываний. Что угодно. Хоть // 1000500 asm("nop");
// Читать документацию.
на счёт этого то это не обязательно я проверял без бесконечного цикла в функции main() прерывание срабатывает и код внутри функции void interupt(void) выполняется.
А проверял на таймере сконфигурировав его на прерывание после переполнения TMR1
Реклама:
vavan1983 вне форума  
Непрочитано 31.08.2014, 16:01  
vavan1983
Почётный гражданин KAZUS.RUN
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: Не выполняется внешние прерывание PIC16F877

Попробую тоже на PIC18F452
vavan1983 вне форума  
Непрочитано 31.08.2014, 16:08  
shindax
Прописка
 
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
shindax на пути к лучшему
По умолчанию Re: Не выполняется внешние прерывание PIC16F877

Сообщение от vavan1983 Посмотреть сообщение
Вывод глюк Протеус программы.
Все глюки Вашего примитива, лишь в Вашей голове. Можете не пробовать. Это бесполезно.
shindax вне форума  
Непрочитано 31.08.2014, 19:58  
MisterDi
Почётный гражданин KAZUS.RUN
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Не выполняется внешние прерывание PIC16F877

Уж сколько раз твердили миру...(с)
НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ ЗАДЕРЖКИ В ПРЕРЫВАНИИ!!!
особенно ОЧЕЕЕЕЕНЬ ДЛИННЫЕ
у вас тупо отрабатывает сторожевая собака. Кроме того хотите нормальной симуляции - пользуйтесь штатным симулятором Микрочипа.
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 31.08.2014, 20:59  
vavan1983
Почётный гражданин KAZUS.RUN
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: Не выполняется внешние прерывание PIC16F877

Сообщение от MisterDi Посмотреть сообщение
Уж сколько раз твердили миру...(с)
НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ ЗАДЕРЖКИ В ПРЕРЫВАНИИ!!!
особенно ОЧЕЕЕЕЕНЬ ДЛИННЫЕ
у вас тупо отрабатывает сторожевая собака. Кроме того хотите нормальной симуляции - пользуйтесь штатным симулятором Микрочипа.
Код:
unsigned short i=0;
void interupt(void)
{
if(INTCON.INTF)
{
INTCON.INTF=0; 
i=1;
}
}
void main()
{
TRISD=0;
PORTD=0; 
TRISC=0;
PORTC=0;
TRISB=0XFF;
OPTION_REG.NOT_RBPU=0;
OPTION_REG.INTEDG=0;
INTCON.GIE=1;
INTCON.INTE=1;
while(1)
{
if(i)
{
PORTC++;
i=0;
}
}
}
тоже самое и при таком написание.
Бит конфигурации "сторожевая собака" отключён.
vavan1983 вне форума  
Непрочитано 31.08.2014, 21:42  
vavan1983
Почётный гражданин KAZUS.RUN
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: Не выполняется внешние прерывание PIC16F877

Код:
void main()
{
TRISB=0XFF;
OPTION_REG.NOT_RBPU=0;
OPTION_REG.INTEDG=1;
INTCON.GIE=1;
INTCON.INTE=1;
}
Сократил вот до такого и при нажатие на K1 Протеус также ругается
"(PIC16 CORE) PC=0X0025 Stack overflow pushing return address of interupt"
и тоже самое пишет и PIC Simulator IDE
vavan1983 вне форума  
Непрочитано 31.08.2014, 23:21  
vavan1983
Почётный гражданин KAZUS.RUN
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: Не выполняется внешние прерывание PIC16F877

На просто было не interupt писать а interrupt.
Две буквы rr а не одна.
Прям западло.
vavan1983 вне форума  
Непрочитано 31.08.2014, 23:25  
vavan1983
Почётный гражданин KAZUS.RUN
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: Не выполняется внешние прерывание PIC16F877

Вот этот код работает как написан.
Код:
void main()
{
TRISC=0;
PORTC=0;
TRISB=0x01;
OPTION_REG.NOT_RBPU=0;
OPTION_REG.INTEDG=1;
INTCON.INTE=1;
INTCON.GIE=1;
}
void interrupt(void)
{
if(INTCON.INTF)
{
INTCON.INTF=0;
for(i=0;i‹=254;i++)
{
Delay_ms(10);
PORTC=i;
}
}
}
vavan1983 вне форума  
Непрочитано 01.09.2014, 05:25  
Staszek
Прохожий
 
Регистрация: 25.08.2007
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Staszek на пути к лучшему
По умолчанию Re: Не выполняется внешние прерывание PIC16F877

Сообщение от vavan1983 Посмотреть сообщение
Код:
void main()
{
TRISB=0XFF;
OPTION_REG.NOT_RBPU=0;
OPTION_REG.INTEDG=1;
INTCON.GIE=1;
INTCON.INTE=1;
}
Сократил вот до такого и при нажатие на K1 Протеус также ругается
"(PIC16 CORE) PC=0X0025 Stack overflow pushing return address of interupt"
и тоже самое пишет и PIC Simulator IDE
А Вы Stack Pointer указать не забыли?
Staszek вне форума  
Непрочитано 01.09.2014, 12:12  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Не выполняется внешние прерывание PIC16F877

Сообщение от Staszek Посмотреть сообщение
А Вы Stack Pointer указать не забыли?
А Вы процессор чем-нибудь загрузить не забыли?
А то он из main() то выйдет и что будет делать?
Конкретно, пальчиком ткните
Вамм же сказали, что не должно быть выхода из main().
Boba_spb вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывание по совпадению таймера 1 gruffi AVR 38 21.10.2016 22:58
Внешние прерывания kurilka AVR 13 23.11.2013 23:55
stm32 после старта TIM6 сразу прерывание kvark85 ARM 8 04.07.2013 11:22
Мега88 внешнее прерывание по низкому уровню E_C_C Proteus 0 06.09.2012 11:47
Подскажите по dsPIC33: не всегда запускается прерывание от Timer1 night_light_ Микроконтроллеры, АЦП, память и т.д 1 08.09.2010 17:10


Часовой пояс GMT +4, время: 10:24.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.