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

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


 
Опции темы

не срабатывает прерывание от UART

Непрочитано 27.03.2017, 11:08  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
Печаль не срабатывает прерывание от UART

Всем привет!

принимаю байты в main() - всё нормально
хочу в прерывании, но почему-то ничего не работает.
Гляньте этот простенький тестовый код: может я забыл чего...
Код:
#include ‹16F876A.h›
#use delay(clock=14745600)
#use rs232(baud=9600, parity=N, rcv=PIN_C7)
#fuses HS, NOWDT, NOPROTECT, NOBROWNOUT, PUT, NOLVP, NODEBUG, NOWRT

#byte   PORTC=7
#bit   Button    =PORTC.4
#bit   Led       =PORTC.5	// anod -› pin_c5
#bit   TabloC    =PORTC.6

/*void main(void)
{
SET_TRIS_C(0b10011001);	
Led=1; delay_ms(255); Led=0;	// start_test
for(;;)	{getc(); Led=!Led;}
}*/

#int_rda
void rda_isr(void)
{getc(); Led=!Led;}

void main(void)
{
SET_TRIS_C(0b10011001);		
Led=1; delay_ms(255); Led=0;	// start_test
ENABLE_INTERRUPTS(INT_RDA);
ENABLE_INTERRUPTS(GLOBAL);
for(;;);
}
Реклама:
yellow87 вне форума  
Непрочитано 27.03.2017, 12:09  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

PIC я начинаю забывать, но вроде же бы чушь какая-то написана или нет?
Easyrider83 вне форума  
Непрочитано 27.03.2017, 12:49  
OakRidge
Заблокирован
 
Регистрация: 16.05.2015
Адрес: Болгария
Сообщений: 1,464
Сказал спасибо: 287
Сказали Спасибо 1,122 раз(а) в 540 сообщении(ях)
OakRidge на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

ENABLE_INTERRUPTS( ПЕРИФЕРИАЛ) ?
OakRidge вне форума  
Непрочитано 27.03.2017, 12:54  
welcome61
Почётный гражданин KAZUS.RUN
 
Аватар для welcome61
 
Регистрация: 11.06.2006
Адрес: 51° 46′ 0″ N, 55° 6′ 0″ E
Сообщений: 1,993
Сказал спасибо: 378
Сказали Спасибо 1,744 раз(а) в 712 сообщении(ях)
welcome61 на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Сообщение от yellow87 Посмотреть сообщение
принимаю байты в main() - всё нормально
хочу в прерывании, но почему-то ничего не работает.
Где там байты?

Сообщение от yellow87 Посмотреть сообщение
может я забыл чего...
А что должно быть то, ничего не понятно?
welcome61 вне форума  
Непрочитано 27.03.2017, 13:16  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Сообщение от OakRidge Посмотреть сообщение
ENABLE_INTERRUPTS( ПЕРИФЕРИАЛ) ?
нет таких (и подобных) констант
Сообщение от welcome61 Посмотреть сообщение
Где там байты?
getc() - это стандартная функция чтения байта
Сообщение от welcome61 Посмотреть сообщение
А что должно быть то, ничего не понятно?
светодиод должен переключаться по приходу нового байта
yellow87 вне форума  
Непрочитано 27.03.2017, 13:38  
OakRidge
Заблокирован
 
Регистрация: 16.05.2015
Адрес: Болгария
Сообщений: 1,464
Сказал спасибо: 287
Сказали Спасибо 1,122 раз(а) в 540 сообщении(ях)
OakRidge на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Есть бит PIE в INTCON. Разрешает прерывания периферии.
Не поставив в 1 они работать не будет. УАРТ из их числа.
OakRidge вне форума  
Непрочитано 27.03.2017, 17:54  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Сообщение от Easyrider83 Посмотреть сообщение
PIC я начинаю забывать, но вроде же бы чушь какая-то написана или нет?
Имхо это называется CCS C.
ampy вне форума  
Непрочитано 27.03.2017, 22:18  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,134
Сказал спасибо: 202
Сказали Спасибо 3,285 раз(а) в 2,151 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Сообщение от OakRidge Посмотреть сообщение
Есть бит PIE в INTCON. Разрешает прерывания периферии.
Не поставив в 1 они работать не будет. УАРТ из их числа.
Любителям спл это неведомо
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 28.03.2017, 00:37  
AYuM
Прописка
 
Аватар для AYuM
 
Регистрация: 21.04.2009
Адрес: Королёв
Сообщений: 89
Сказал спасибо: 1,054
Сказали Спасибо 34 раз(а) в 27 сообщении(ях)
AYuM на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Сам в Сях по поверхности, не пинайте сильно, но у Вас getc() байты в пустоту принимает?
AYuM вне форума  
Непрочитано 28.03.2017, 04:10  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Цитата:
Есть бит PIE в INTCON. Разрешает прерывания периферии.
Не поставив в 1 они работать не будет. УАРТ из их числа.
ENABLE_INTERRUPTS(GLOBAL); устанавливает два бита: GIE и PIE
Цитата:
у Вас getc() байты в пустоту принимает
так мне и не нужно принятый байт сохранять, мне нужно только отреагировать на его появление. Для теста этого достаточно.
yellow87 вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывает прерывание watchdog у Attiny AVR v170 Proteus 4 03.02.2014 14:10
stm32 после старта TIM6 сразу прерывание kvark85 ARM 8 04.07.2013 11:22
AVR, UART и режим IDLE anpaza Микроконтроллеры, АЦП, память и т.д 14 25.07.2011 03:04
AVR и UART через прерывание - help :) code-by Микроконтроллеры, АЦП, память и т.д 13 05.12.2008 12:31
Помогите разобраться с UART masterpc Микроконтроллеры, АЦП, память и т.д 10 13.02.2007 17:49


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


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