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

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

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

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

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

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


 
Опции темы
Непрочитано 21.07.2015, 01:19  
FreeTramp
Прописка
 
Аватар для FreeTramp
 
Регистрация: 24.12.2006
Сообщений: 167
Сказал спасибо: 9
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
FreeTramp на пути к лучшему
По умолчанию Странности с Mplab Sim и 16F676

Не могу заставить в MPLAB SIM изменить состояние портов у 16F676. В конфигурации Мплаба, контроллер выбран правильно.Порты настроены на выход. Если в шапке асм-файла я выбираю другой контроллер, допустим pic16f73 или 874, то этот же код работает как надо.
У меня MpLab версии 8.92 С 16F676 даже ногами подрыгать не получается, а именно он и нужен. На команду bsf ни одна нога тоже не реагирует. Трисы живые, т.е. их состояние изменяется. Могу конечно ICD2 с pic16f877 задействовать, но тогда надо макетку лепить с семисегментным дешифратором под индикацию. В Протеусе пока не пробовал, хочу с мплабом разобраться.
Вот две шапки. В самом тексте программы ничего не меняю. Что происходит?

list p=16F676 ; Не дрыгает ногами

#include ‹p16F676.inc›

ERRORLEVEL -302

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF

__________________________________________________ _______________
list p=16f73 ; Тут все нормально

include "p16f73.inc"

ERRORLEVEL -302

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _HS_OSC
__________________________________________________ _______________
Реклама:
FreeTramp вне форума  
Непрочитано 21.07.2015, 09:06  
FreeTramp
Прописка
 
Аватар для FreeTramp
 
Регистрация: 24.12.2006
Сообщений: 167
Сказал спасибо: 9
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
FreeTramp на пути к лучшему
По умолчанию Re: Странности с Mplab Sim и 16F676

Сам себе и отвечу. Это глюк Мплаба версии 8.92 Сейчас на работе, откатился на версию 8.56 и случилось чудо. Все заработало!
Однако рано радоваться. Изменяется только старшие тетрады портов, а младшие так и остаются мертвые.
С другим контроллером, все пучком.

Последний раз редактировалось FreeTramp; 21.07.2015 в 09:26.
FreeTramp вне форума  
Непрочитано 21.07.2015, 09:10  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,508
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Странности с Mplab Sim и 16F676

Попробуй Project -› Clean
NewWriter вне форума  
Непрочитано 21.07.2015, 09:28  
FreeTramp
Прописка
 
Аватар для FreeTramp
 
Регистрация: 24.12.2006
Сообщений: 167
Сказал спасибо: 9
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
FreeTramp на пути к лучшему
По умолчанию Re: Странности с Mplab Sim и 16F676

Сообщение от NewWriter Посмотреть сообщение
Попробуй Project -› Clean
Это не помогает. Младшие 4 бита портов ни на что не реагируют.
FreeTramp вне форума  
Непрочитано 21.07.2015, 17:31  
picoman
Прописка
 
Регистрация: 27.08.2006
Адрес: Кривой Рог
Сообщений: 84
Сказал спасибо: 23
Сказали Спасибо 15 раз(а) в 13 сообщении(ях)
picoman на пути к лучшему
По умолчанию Re: Странности с Mplab Sim и 16F676

С ANSEL все в порядке?
picoman вне форума  
Непрочитано 21.07.2015, 17:59  
shindax
Прописка
 
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 34 раз(а) в 25 сообщении(ях)
shindax на пути к лучшему
По умолчанию Re: Странности с Mplab Sim и 16F676

Сообщение от picoman Посмотреть сообщение
С ANSEL все в порядке?
+1. Там ещё и компаратор ( CMCON ) имеется, а у "pic16f73 или 874" его нет. Обычная "проблема" при шапочном изучении даташита, MPLAB вообще здесь никаким боком, все глюки в голове. Что-то вроде:
Код:
...
movlw 0x07
movwf CMCON
...
ТС поможет.

Последний раз редактировалось shindax; 21.07.2015 в 18:08.
shindax вне форума  
Непрочитано 21.07.2015, 20:46  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,508
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Странности с Mplab Sim и 16F676

Вообщето, ANSEL и CMCON влияют только на режим входов, а на режим выходов не действуют. Но значения регистров порта в MPLAB-е считываются именно со состояний входов. А вот в режиме аналогового входа MPLAB будет показывать в регистре порта нули на той позиции, где выбран режим аналогового входа.
Поэтому, то что получилось у ТС - это результат особенностей MPLAB-а.
NewWriter вне форума  
Непрочитано 21.07.2015, 22:47  
FreeTramp
Прописка
 
Аватар для FreeTramp
 
Регистрация: 24.12.2006
Сообщений: 167
Сказал спасибо: 9
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
FreeTramp на пути к лучшему
По умолчанию Re: Странности с Mplab Sim и 16F676

Сообщение от shindax Посмотреть сообщение
+1. Там ещё и компаратор ( CMCON ) имеется, а у "pic16f73 или 874" его нет. Обычная "проблема" при шапочном изучении даташита, MPLAB вообще здесь никаким боком, все глюки в голове.
Да нет, уважаемый. MPLAB как раз-таки боком идет. Попробовал этот же код симулировать в Протеусе из под Мплаба (Debugger/Select Tool/Proteus VSM) Все команды с портами выполняются в лучшем виде. Там где ноги настроены на вход, они и являются входами. Я еще раз повторю, в самой программе я не изменил ни строчки. Все эксперименты делал с одним и тем же кодом. Вот результат для PIC16F676:
MPLAB 8.92 - состояние портов не меняется. Все ноги в низком уровне.
MPLAB 8.56 - состояние портов меняется только у старшей тетрады. Младшие биты = 0.
Симуляция в Протеусе -
Вот картинка:
Миниатюры:
Нажмите на изображение для увеличения
Название: 676.jpg
Просмотров: 23
Размер:	121.8 Кб
ID:	81634  
FreeTramp вне форума  
Непрочитано 22.07.2015, 11:27  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,508
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Странности с Mplab Sim и 16F676

Да, и в железе будет так же, как в Протеусе - ANSEL и CMCON на режим выходов совершенно не влияют. Выход то может быть только цифровым.
Дело именно в симуляторе MPLAB-а. Он передает в регистр состояние входов, а не выходных защелок. А аналоговые входы, повторюсь, дают 0 при чтении.
Но если выбрать симулятор Протеус, тогда регистры портов уже покажут состояние выходных защелок, а не входов.
Аналоговые входы влияют только на результат действий с портом командой bsf (bcf) PORTA (PORTC). При этом все остальные выходы, на которые влияет ANSEL, будут сброшены в 0. А если обновлять порт целиком командой movwf PORTC, то будет все нормально.
NewWriter вне форума  
Непрочитано 07.08.2015, 10:56  
shindax
Прописка
 
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 34 раз(а) в 25 сообщении(ях)
shindax на пути к лучшему
По умолчанию Re: Странности с Mplab Sim и 16F676

Сообщение от NewWriter Посмотреть сообщение
Да, и в железе будет так же, как в Протеусе - ANSEL и CMCON на режим выходов совершенно не влияют. Выход то может быть только цифровым...
Может дадите ссылку в даташите, где об этом сказано? Я вот не уверен, кто именно управляет выводами, пока компаратор включён. Сам я этот момент специально не проверял, но смотрю даташит и вижу таблицу на стр. 41 и там сказано: "There are eight modes of operation for the comparator. The CMCON register, shown in Register 6-1, is used to select the mode. Figure 6-2 shows the eight possible modes. The TRISA register controls the data direction of the comparator pins for each mode." В режимах CM2:CM0 011, 001 и 101 TRISA2 должен настраиваться на выход, как сказано выше. Да, выход цифровой ( а каким ему в этом МК ещё быть ), но управляется он компаратором, а не выходной защёлкой. Чтобы ему стать "просто" цифровым входом/выходом, нужно компаратор отключить: CMCON = 0x07. Надо проверить "в железе". А вот как раз Proteus-у я-бы доверял меньше всего.

Последний раз редактировалось shindax; 07.08.2015 в 11:00.
shindax вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SIM карты при отрицательных температурах firew0rker Делимся опытом 7 30.05.2012 13:33
возможно-ли состыковать PBP и MPLab SIM? an-sver Микроконтроллеры, АЦП, память и т.д 4 24.02.2008 19:26
РАБОТА с MPLAB downkazus Proteus, KiCAD и другие ECAD 10 28.01.2007 13:15
таймер и симуляция в MPLAB Sim lisergin Микроконтроллеры, АЦП, память и т.д 0 16.01.2006 15:35
странности с 16f676 Алекс Микроконтроллеры, АЦП, память и т.д 0 21.09.2005 22:34


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


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