PIC12F675 и DS18S20
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: PIC12F675 и DS18S20
Если вы настраиваете пин на выход, значит хотите выдать на шину 0. Почему вас волнует, что это произошло сразу, а не "через пару команд"? Выдали 0 на нужное время, возвращайте пин обратно на вход.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
- Реклама
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: PIC12F675 и DS18S20
А что же Вы пытаетесь, если жалуетесь на лог. ноль, вместо ожидаемой единицы ?Я не пытаюсь вывести единицу с вывода МК! Низкий уровень сам там появляется при переводе порта на выход.
Через пару команд после чего ? Какое-то странное "нужно"Мне это и нужно, только через пару команд.
Почему бы не переводить порт на выход "через пару команд" ? Т.е. тогда, когда нужно
Её там нет, потому что порт притягивает её к нулю. А Вы хотите вывести единицу. Отсюда и возник вопрос - зачем ?ее как не странно, там нет (об этом я написал - "синий квадратик")
Не торопитесь с необоснованными выводами. Очень часто встречаются фразы от новичков, в которых хают инструмент. А в итоге получаются глюки в знаниях.Все-таки дело в глюках Протеуса.
ЗЫ: Вообще, тяжело понять Ваши проблемы. Вы бы хоть к своим сообщениям куски кода прикрепляли, указывая на конкретные строки и объясняя проблему.
Re: PIC12F675 и DS18S20
Вот к примеру еще один из багов. Фрагмент кода:
bcf STATUS,RP0
btfss GPIO,0
goto $+7
bcf GPIO,0
call Pause_5s
call CheckU
btfss UAllow,0 ; Если 1 то есть разрешение на включение
goto $+2
goto GlowOn_2
bcf GPIO,4
goto CheckG
Вот состояние регистров на начало фрагмента.

После выполнения команды "btfss GPIO,0" рабочая точка переходит на "goto $+7" , а должна на "bcf GPIO,0"
На выходах GP0 и GP4 находится светодиоды.
Почему так?
bcf STATUS,RP0
btfss GPIO,0
goto $+7
bcf GPIO,0
call Pause_5s
call CheckU
btfss UAllow,0 ; Если 1 то есть разрешение на включение
goto $+2
goto GlowOn_2
bcf GPIO,4
goto CheckG
Вот состояние регистров на начало фрагмента.
После выполнения команды "btfss GPIO,0" рабочая точка переходит на "goto $+7" , а должна на "bcf GPIO,0"
На выходах GP0 и GP4 находится светодиоды.
Почему так?
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: PIC12F675 и DS18S20
Я уже говорил, что перед проверкой битов порта нужно считать порт, т.е. сделать movf GPIO,f
btfss проверяет защелку порта, а не реальное состояние пинов. Поэтому и нужно сперва обновить защелку, а потом проверять биты.
В более новых МК раздельное управление. Там есть PORTx для входа и LATx для выхода.
btfss проверяет защелку порта, а не реальное состояние пинов. Поэтому и нужно сперва обновить защелку, а потом проверять биты.
В более новых МК раздельное управление. Там есть PORTx для входа и LATx для выхода.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Re: PIC12F675 и DS18S20
Да, пробовал.Zhuk72 писал(а):Я уже говорил, что перед проверкой битов порта нужно считать порт, т.е. сделать movf GPIO,f
btfss проверяет защелку порта, а не реальное состояние пинов. Поэтому и нужно сперва обновить защелку, а потом проверять биты.
В более новых МК раздельное управление. Там есть PORTx для входа и LATx для выхода.
bcf STATUS,RP0
movf GPIO,F
btfss GPIO,0
goto $+7
bcf GPIO,0
call Pause_5s
call CheckU
btfss UAllow,0 ; Если 1 то есть разрешение на включение свечь
goto $+2
goto GlowOn_2
bcf GPIO,4
goto CheckG
После выполнения команды "movf GPIO,F" биты GPIO,0 и GPIO,4 сбрасываются в 0. Ну и соответственно после "btfss GPIO,0" выполняется "goto $+7" .
Вот скриншот регистров (слева - до "movf GPIO,F", справа - после)
- Реклама
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: PIC12F675 и DS18S20
Убедились, что Протеус не виноват?
Вы судили по состоянию защелки на момент начала btfss, а он ориентировался на реальное состояние портов.
В реальном устройстве это считывание может не всегда и нужно, но я, когда писал на асм, для верности всегда это делал перед любой проверкой состояния пина.
Вы судили по состоянию защелки на момент начала btfss, а он ориентировался на реальное состояние портов.
В реальном устройстве это считывание может не всегда и нужно, но я, когда писал на асм, для верности всегда это делал перед любой проверкой состояния пина.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: PIC12F675 и DS18S20
Скорее, наоборот - проверяет реальное состояние. По этому у человека и возникли непонятки, когда он смотрел на состояние защёлок.Zhuk72 писал(а):btfss проверяет защелку порта, а не реальное состояние пинов.
Добавлено after 2 minutes 24 seconds:
ТС'у - http://www.microchip.ru/lit/?mid=1x0 -> Reference Manual -> Раздел 9. Порты ввода/вывода
Re: PIC12F675 и DS18S20
Извините если я надоел своими, возможно, глупыми вопросами. Все равно не понимаю почему GPIO,0 и GPIO,4 сбросились в 0 после "movf GPIO,F"!? Ведь и в GPIO и на физических портах GP0 и GP4 была 1, т.к. незадолго до этого были отработаны команды:Zhuk72 писал(а):Убедились, что Протеус не виноват?
Вы судили по состоянию защелки на момент начала btfss, а он ориентировался на реальное состояние портов.
В реальном устройстве это считывание может не всегда и нужно, но я, когда писал на асм, для верности всегда это делал перед любой проверкой состояния пина.
movlw b'00010001'
movwf GPIO
movf GPIO,F
а порты настроены на выход.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: PIC12F675 и DS18S20
Такое может быть, если на порте висит большая нагрузка. Например - светодиод без ограничительного сопротивления.
Причём такое поведение будет и на железе тоже.
Но, в таком случае, при любой дальнейшей операции (работающей через Ч-М-З) с портом, физически уровень на этом ПИНе самопроизвольно сбросится в ноль. Т.е. примет состояние защёлки.
Причём такое поведение будет и на железе тоже.
Но, в таком случае, при любой дальнейшей операции (работающей через Ч-М-З) с портом, физически уровень на этом ПИНе самопроизвольно сбросится в ноль. Т.е. примет состояние защёлки.
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: PIC12F675 и DS18S20
Ну, не знаю. У меня бывало, что btfss не читал реальное состояние кнопки, пока я не добавлял перед этим movf.Аlex писал(а):Скорее, наоборот - проверяет реальное состояние.Zhuk72 писал(а):btfss проверяет защелку порта, а не реальное состояние пинов.
Kuzya, такое
Код: Выделить всё
movlw b'00010001'
movwf GPIO
Последний раз редактировалось Zhuk72 Пн ноя 07, 2016 10:48:49, всего редактировалось 1 раз.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: PIC12F675 и DS18S20
А после команды гаснут ?Kuzia писал(а):Светодиоды горят до команды "movf GPIO,F".
Опять же - с каким ? Если оно маленькое, то это равносильно тому, что его нет.Kuzia писал(а):Светодиод с сопротивлением
ЗЫ: Эээ, куда Ваш пост делся ?
Re: PIC12F675 и DS18S20
Да, так и делаю. Упростил фрагмент кода чтоб задать вопрос.Zhuk72 писал(а): лучше не делать. Здесь это может приемлемо, а может нет, но вы не всегда можете знать состояние всех пинов порта. Поэтому для изменения используйте маску. Для очистки пина маску с AND, для выставления - OR, для инверсии XOR.
Так же в программе использую опрос 2-х кнопок. С ними вопросов таких не возникает
Добавлено after 1 minute 15 seconds:
А после - гаснут.Аlex писал(а):А после команды гаснут ?Kuzia писал(а):Светодиоды горят до команды "movf GPIO,F".
Опять же - с каким ? Если оно маленькое, то это равносильно тому, что его нет.Kuzia писал(а):Светодиод с сопротивлением
500 Ом
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: PIC12F675 и DS18S20
Значит реальный физический уровень на ноге - ноль.Kuzia писал(а):А после - гаснут.
Чудес не бывает...
Добавлено after 36 seconds:
Отцепите всё от этой ноги и прогоните.
Re: PIC12F675 и DS18S20
Тоже самое.Аlex писал(а):Значит реальный физический уровень на ноге - ноль.Kuzia писал(а):А после - гаснут.
Чудес не бывает...
Добавлено after 36 seconds:
Отцепите всё от этой ноги и прогоните.
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: PIC12F675 и DS18S20
А конфиг и инициализацию можно посмотреть?
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: PIC12F675 и DS18S20
Дас ист фантастиш 
Запаковывайте всё в архив, кидайте сюда и рассказывайте в какой точке это происходит и как до неё добраться.
Запаковывайте всё в архив, кидайте сюда и рассказывайте в какой точке это происходит и как до неё добраться.
Re: PIC12F675 и DS18S20
Zhuk72
Подскажите какой версией Протеуса пользуетесь?
Подскажите какой версией Протеуса пользуетесь?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: PIC12F675 и DS18S20
Кстати, да. Конфигурацию бы посмотреть. Может Вы аналог не отрубили.
Re: PIC12F675 и DS18S20
Аlex
Подскажите какой версией Протеуса пользуетесь?
Подскажите какой версией Протеуса пользуетесь?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: PIC12F675 и DS18S20
Есть 7 и 8.


