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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 05.10.2009, 02:37  
tsb
Прописка
 
Аватар для tsb
 
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
tsb на пути к лучшему
По умолчанию Re: Проблема с PIC16F73

Сообщение от tolyanv8 Посмотреть сообщение
Подставляю некое видимое действие, например вывод в
порт
Как же Вы таким методом можете проконтролировать переключение в первый банк ОЗУ, если порты находятся в нулевом?
И еще одна мысль. В этом ПИКе 2 страницы программной памяти. И если подпрограмма находится в Page 1 (выше адреса 0800h), а вызов происходит из Page 0, то нужно перед вызовом правильно установить регистр PCLATH.
Реклама:
tsb вне форума  
Сказали "Спасибо" tsb
tolyanv8 (05.10.2009)
Непрочитано 05.10.2009, 13:24  
tolyanv8
Прописка
 
Аватар для tolyanv8
 
Регистрация: 29.09.2007
Адрес: Донецк, ????
Сообщений: 199
Сказал спасибо: 21
Сказали Спасибо 19 раз(а) в 15 сообщении(ях)
tolyanv8 на пути к лучшему
По умолчанию Re: Проблема с PIC16F73

Цитата:
И еще одна мысль. В этом ПИКе 2 страницы программной памяти. И если подпрограмма находится в Page 1 (выше адреса 0800h), а вызов происходит из Page 0, то нужно перед вызовом правильно установить регистр PCLATH.
Как можно узнать, в какой странице находится подпрограмма?
tolyanv8 вне форума  
Непрочитано 05.10.2009, 16:48  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Проблема с PIC16F73

По листингу программы.
MisterDi вне форума  
Сказали "Спасибо" MisterDi
tolyanv8 (05.10.2009)
Непрочитано 05.10.2009, 17:03  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Проблема с PIC16F73

Вот так можно установить нужную страницу перед вызовом:

Код:
movlw high PODPROGRAMMA
movwf PCLATH
call PODPROGRAMMA

Последний раз редактировалось realid; 05.10.2009 в 17:09.
realid вне форума  
Непрочитано 05.10.2009, 21:11  
tolyanv8
Прописка
 
Аватар для tolyanv8
 
Регистрация: 29.09.2007
Адрес: Донецк, ????
Сообщений: 199
Сказал спасибо: 21
Сказали Спасибо 19 раз(а) в 15 сообщении(ях)
tolyanv8 на пути к лучшему
По умолчанию Re: Проблема с PIC16F73

Только что добрался до кода
Вся программа помещается в Page0,
т.е. межсегментных переходов вроде как-бы не надо
Что бы могло сие значить?
Код:
0186                  00644 I2C_SEND_BYTE
0186   1683           00645                 BSF     STATUS,RP0 ;bank1
0187   1303           00646                 BCF     STATUS,RP1
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0188   1A07           00647                 BTFSC   SDA_SET
TRIS-регистры вроде бы находятся в первом банке
Что компилятору может не нравиться?
tolyanv8 вне форума  
Непрочитано 05.10.2009, 21:16  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Проблема с PIC16F73

Сообщение от tolyanv8 Посмотреть сообщение
Только что добрался до кода
Вся программа помещается в Page0,
т.е. межсегментных переходов вроде как-бы не надо
Что бы могло сие значить?
Код:
0186                  00644 I2C_SEND_BYTE
0186   1683           00645                 BSF     STATUS,RP0 ;bank1
0187   1303           00646                 BCF     STATUS,RP1
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0188   1A07           00647                 BTFSC   SDA_SET
TRIS-регистры вроде бы находятся в первом банке
Что компилятору может не нравиться?
Это предупреждение проверить биты выбора банка, а не ошибка. Убирается директивой error -302
realid вне форума  
Непрочитано 06.10.2009, 02:08  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Проблема с PIC16F73

Сообщение от realid Посмотреть сообщение
Вот так можно установить нужную страницу перед вызовом:
Код:
movlw high PODPROGRAMMA
movwf PCLATH
call PODPROGRAMMA
И при возврате в 0 банк:
Код:
movlw 0
movwf PCLATH
return
Сообщение от tolyanv8 Посмотреть сообщение
P.S. На другом PIC-е этот же код отлично функционирует
Такие глюки проверяются не нескольких экземплярах МК одного типа...

Последний раз редактировалось picavr; 06.10.2009 в 02:12.
picavr вне форума  
Непрочитано 13.10.2009, 16:40  
tolyanv8
Прописка
 
Аватар для tolyanv8
 
Регистрация: 29.09.2007
Адрес: Донецк, ????
Сообщений: 199
Сказал спасибо: 21
Сказали Спасибо 19 раз(а) в 15 сообщении(ях)
tolyanv8 на пути к лучшему
По умолчанию Re: Проблема с PIC16F73

Немного прояснил проблему
Похоже проблема с осциллятором (внутри PIC-a)
Попробовал различные тестовые программы,
повисание происходит в произвольных точках.
Осциллятор стандартный (кварц 4 МГц + 2 кондера 15 пф)
Часто осциллятор не заводится вообще,
но стартует от наводок (при касании кварца рукой),
потом правда виснет снова :О

Последний раз редактировалось tolyanv8; 13.10.2009 в 16:44. Причина: добавление
tolyanv8 вне форума  
Непрочитано 13.10.2009, 22:29  
tsb
Прописка
 
Аватар для tsb
 
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
tsb на пути к лучшему
По умолчанию Re: Проблема с PIC16F73

В таком случае попробуйте другой экземпляр кварца. Или в конфигурации ПИКа поменяйте тип генератора с XT на HS.
См. также https://kazus.ru/forums/showthread.php?t=14235
tsb вне форума  
Непрочитано 14.10.2009, 22:23  
tolyanv8
Прописка
 
Аватар для tolyanv8
 
Регистрация: 29.09.2007
Адрес: Донецк, ????
Сообщений: 199
Сказал спасибо: 21
Сказали Спасибо 19 раз(а) в 15 сообщении(ях)
tolyanv8 на пути к лучшему
По умолчанию Re: Проблема с PIC16F73

Кварц уже менял - не помогло
С XT/HS - то же самое
Попробую действительно собрать другую плату
с таким же контроллером, а то закрадываются смутные
сомнения, что PIC убитый немного
В данном экземпляре при тактировке от внешнего
генератора действительно происходит нормальное выполнение
тестовой программы, а от кварца - ни в каком режиме не хочет :о
tolyanv8 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при запуске Atmega16 zamsv Микроконтроллеры, АЦП, память и т.д 5 02.10.2009 12:52
[Решено] проблема при работе с Bluetooth модулем Gn0me Автоматика и аппаратура связи 1 02.10.2009 09:33
[Решено] Проблема с eeprom в Proteus Memfis666 Proteus, KiCAD и другие ECAD 1 01.10.2009 15:38
Проблема запитывания демо платы от PICKIT2 alexander70 Микроконтроллеры, АЦП, память и т.д 9 28.09.2009 22:17


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


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