Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 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,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

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

ENABLE_INTERRUPTS( ПЕРИФЕРИАЛ) ?
OakRidge вне форума  
Непрочитано 27.03.2017, 12:54  
welcome61
Почётный гражданин KAZUS.RU
 
Аватар для welcome61
 
Регистрация: 11.06.2006
Адрес: 51° 46′ 0″ N, 55° 6′ 0″ E
Сообщений: 1,975
Сказал спасибо: 370
Сказали Спасибо 1,725 раз(а) в 706 сообщении(ях)
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
Почётный гражданин KAZUS.RU
 
Аватар для OakRidge
 
Регистрация: 16.05.2015
Адрес: Болгария
Сообщений: 1,460
Сказал спасибо: 286
Сказали Спасибо 1,125 раз(а) в 540 сообщении(ях)
OakRidge на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

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

Сообщение от Easyrider83 Посмотреть сообщение
PIC я начинаю забывать, но вроде же бы чушь какая-то написана или нет?
Имхо это называется CCS C.
ampy вне форума  
Непрочитано 27.03.2017, 22:18  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,375
Сказал спасибо: 176
Сказали Спасибо 3,128 раз(а) в 2,017 сообщении(ях)
индюк на пути к лучшему
По умолчанию 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, время: 10:23.


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