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

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

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

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

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

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


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

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

Извиняюсь, напутал. Не PIE, а PEIE. INTCON.6
Можно взять Протеус, 16F876А поддерживается. Сделать .cof и шаг за шагом дебажить. Протеус не дело, да грубые ошибки в общем случае всплывают.
OakRidge вне форума  
Непрочитано 28.03.2017, 12:04  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,710
Сказал спасибо: 187
Сказали Спасибо 3,199 раз(а) в 2,073 сообщении(ях)
индюк на пути к лучшему
По умолчанию 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.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 434
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
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.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 434
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
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, время: 14:30.


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