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

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

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

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

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

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


 
Опции темы

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

Непрочитано 28.03.2017, 04:29  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Сообщение от индюк Посмотреть сообщение
Любителям спл это неведомо
спл на пик???
Реклама:
ampy вне форума  
Непрочитано 28.03.2017, 11:46  
OakRidge
Заблокирован
 
Регистрация: 16.05.2015
Адрес: Болгария
Сообщений: 1,464
Сказал спасибо: 287
Сказали Спасибо 1,122 раз(а) в 540 сообщении(ях)
OakRidge на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Извиняюсь, напутал. Не PIE, а PEIE. INTCON.6
Можно взять Протеус, 16F876А поддерживается. Сделать .cof и шаг за шагом дебажить. Протеус не дело, да грубые ошибки в общем случае всплывают.
OakRidge вне форума  
Непрочитано 28.03.2017, 12:04  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,134
Сказал спасибо: 202
Сказали Спасибо 3,285 раз(а) в 2,151 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Сообщение от ampy Посмотреть сообщение
спл на пик???
я как бы провел параллели
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 28.03.2017, 23:28  
26165
Частый гость
 
Регистрация: 25.10.2006
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 61 раз(а) в 13 сообщении(ях)
26165 на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Сообщение от yellow87 Посмотреть сообщение
main(void)
{
SET_TRIS_C(0b10011001);
Led=1; delay_ms(255); Led=0; // start_test
for( ; ; ) {getc(); Led=!Led;}
}
Этот код будет работать да же если rcv висит в воздухе или подключен к земле!!!
26165 вне форума  
Непрочитано 29.03.2017, 05:49  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Сообщение от 26165 Посмотреть сообщение
Этот код будет работать да же если rcv висит в воздухе или подключен к земле!!!
так он и работает! - вы разве не заметили, что я его закоментировал?
А код с прерываниями не работает...
хотя как это он будет подключенным к земле работать?!
Светодиод переключаться не будет, так как при Rx подключенном к земле в приёмник USART байт не поступит, а следовательно программа остановится на функции getc() ожидая данных в RCREG-регистре


Сообщение от OakRidge Посмотреть сообщение
Извиняюсь, напутал. Не PIE, а PEIE. INTCON.6
ENABLE_INTERRUPTS(GLOBAL); устанавливает в INTCON бит 7-GIE и бит 6-PEIE

Последний раз редактировалось yellow87; 29.03.2017 в 05:55.
yellow87 вне форума  
Непрочитано 29.03.2017, 09:47  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Может с компилятором идут сырцы библиотеки, посмотрите, что в этом getc.
Тут похоже никто этим (а чем этим - мы до сих пор не знаем) не увлекается.
У меня так чтение в прерывании выглядит:

Код:
void interrupt intpt (void) {
....
  } else if (RCIF) { //получены данные
    if (FERR) {//ошибка кадра, сбрасывается при чтении RCREG
      *buf = RCREG;
    } else if (OERR) { //ошибка переполнения буфера, сбрасывается при выключении CREN
      CREN = 0;
      CREN = 1;
    } else rchar = RCREG;
  } else 
.....
Как видим, отличия разительные.
ampy вне форума  
Непрочитано 29.03.2017, 11:12  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

вообще-то я тоже делаю проверку ошибок фрейма и переполнения
просто в этом тестовом примере их не использую.

А в библиотеке ошибки нет - в других проектах работало же всё...
yellow87 вне форума  
Непрочитано 29.03.2017, 16:46  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

Сообщение от yellow87 Посмотреть сообщение
вообще-то я тоже делаю проверку ошибок фрейма и переполнения
просто в этом тестовом примере их не использую.

А в библиотеке ошибки нет - в других проектах работало же всё...
Если функция способна бесконечно ждать байт, то она явно не для использования в прерывании.
ampy вне форума  
Сказали "Спасибо" ampy
AYuM (29.03.2017)
Непрочитано 29.03.2017, 17:12  
hfm308
Частый гость
 
Регистрация: 16.06.2008
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
hfm308 на пути к лучшему
По умолчанию Re: не срабатывает прерывание от UART

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

Сообщение от hfm308 Посмотреть сообщение
Временно попробуйте LED подключить к пинам другого порта, а на С оставьте только прием
это зачем так?.. Да и плата у меня уже разведена.
Сообщение от ampy Посмотреть сообщение
Если функция способна бесконечно ждать байт, то она явно не для использования в прерывании.
эта функция бесконечно ждёт флага принятого байта в цикле main()
а в прерывании она этот байт считывает, так как флаг это прерывание и генерирует.
И если даже первой командой в прерывании инвертировать светодиод, а потом напрямую и без функции читать с приёмного регистра, то прерывание всё равно почему-то не возникает
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, время: 01:04.


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