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

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

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

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

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

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

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

 
Опции темы

Проблема с PIC16F73

Непрочитано 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.RUN
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Проблема с PIC16F73

По листингу программы.
MisterDi вне форума  
Сказали "Спасибо" MisterDi
tolyanv8 (05.10.2009)
Непрочитано 05.10.2009, 17:03  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 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,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 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.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 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.run/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, время: 04:30.


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