PIC12F675 и DS18S20

Поклонники продукции Microchip Technology Inc тусуются тут.
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: PIC12F675 и DS18S20

Сообщение Zhuk72 »

Если вы настраиваете пин на выход, значит хотите выдать на шину 0. Почему вас волнует, что это произошло сразу, а не "через пару команд"? Выдали 0 на нужное время, возвращайте пин обратно на вход.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: PIC12F675 и DS18S20

Сообщение Аlex »

Я не пытаюсь вывести единицу с вывода МК! Низкий уровень сам там появляется при переводе порта на выход.
А что же Вы пытаетесь, если жалуетесь на лог. ноль, вместо ожидаемой единицы ?
Мне это и нужно, только через пару команд.
Через пару команд после чего ? Какое-то странное "нужно" :dont_know:
Почему бы не переводить порт на выход "через пару команд" ? Т.е. тогда, когда нужно :)
ее как не странно, там нет (об этом я написал - "синий квадратик")
Её там нет, потому что порт притягивает её к нулю. А Вы хотите вывести единицу. Отсюда и возник вопрос - зачем ?
Все-таки дело в глюках Протеуса.
Не торопитесь с необоснованными выводами. Очень часто встречаются фразы от новичков, в которых хают инструмент. А в итоге получаются глюки в знаниях.


ЗЫ: Вообще, тяжело понять Ваши проблемы. Вы бы хоть к своим сообщениям куски кода прикрепляли, указывая на конкретные строки и объясняя проблему.
Реклама
Kuzia
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Ср дек 01, 2010 09:57:22

Re: PIC12F675 и DS18S20

Сообщение Kuzia »

Вот к примеру еще один из багов. Фрагмент кода:
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

Сообщение Zhuk72 »

Я уже говорил, что перед проверкой битов порта нужно считать порт, т.е. сделать movf GPIO,f
btfss проверяет защелку порта, а не реальное состояние пинов. Поэтому и нужно сперва обновить защелку, а потом проверять биты.
В более новых МК раздельное управление. Там есть PORTx для входа и LATx для выхода.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Реклама
Эиком - электронные компоненты и радиодетали
Kuzia
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Ср дек 01, 2010 09:57:22

Re: PIC12F675 и DS18S20

Сообщение Kuzia »

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

Сообщение Zhuk72 »

Убедились, что Протеус не виноват?
Вы судили по состоянию защелки на момент начала btfss, а он ориентировался на реальное состояние портов.

В реальном устройстве это считывание может не всегда и нужно, но я, когда писал на асм, для верности всегда это делал перед любой проверкой состояния пина.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: PIC12F675 и DS18S20

Сообщение Аlex »

Zhuk72 писал(а):btfss проверяет защелку порта, а не реальное состояние пинов.
Скорее, наоборот - проверяет реальное состояние. По этому у человека и возникли непонятки, когда он смотрел на состояние защёлок.

Добавлено after 2 minutes 24 seconds:
ТС'у - http://www.microchip.ru/lit/?mid=1x0 -> Reference Manual -> Раздел 9. Порты ввода/вывода
Kuzia
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Ср дек 01, 2010 09:57:22

Re: PIC12F675 и DS18S20

Сообщение Kuzia »

Zhuk72 писал(а):Убедились, что Протеус не виноват?
Вы судили по состоянию защелки на момент начала btfss, а он ориентировался на реальное состояние портов.

В реальном устройстве это считывание может не всегда и нужно, но я, когда писал на асм, для верности всегда это делал перед любой проверкой состояния пина.
Извините если я надоел своими, возможно, глупыми вопросами. Все равно не понимаю почему GPIO,0 и GPIO,4 сбросились в 0 после "movf GPIO,F"!? Ведь и в GPIO и на физических портах GP0 и GP4 была 1, т.к. незадолго до этого были отработаны команды:
movlw b'00010001'
movwf GPIO
movf GPIO,F
а порты настроены на выход.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: PIC12F675 и DS18S20

Сообщение Аlex »

Такое может быть, если на порте висит большая нагрузка. Например - светодиод без ограничительного сопротивления.
Причём такое поведение будет и на железе тоже.
Но, в таком случае, при любой дальнейшей операции (работающей через Ч-М-З) с портом, физически уровень на этом ПИНе самопроизвольно сбросится в ноль. Т.е. примет состояние защёлки.
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: PIC12F675 и DS18S20

Сообщение Zhuk72 »

Аlex писал(а):
Zhuk72 писал(а):btfss проверяет защелку порта, а не реальное состояние пинов.
Скорее, наоборот - проверяет реальное состояние.
Ну, не знаю. У меня бывало, что btfss не читал реальное состояние кнопки, пока я не добавлял перед этим movf.

Kuzya, такое

Код: Выделить всё

movlw b'00010001'
movwf GPIO
лучше не делать. Здесь это может приемлемо, а может нет, но вы не всегда можете знать состояние всех пинов порта. Поэтому для изменения используйте маску. Для очистки пина маску с AND, для выставления - OR, для инверсии XOR.
Последний раз редактировалось Zhuk72 Пн ноя 07, 2016 10:48:49, всего редактировалось 1 раз.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: PIC12F675 и DS18S20

Сообщение Аlex »

Kuzia писал(а):Светодиоды горят до команды "movf GPIO,F".
А после команды гаснут ?
Kuzia писал(а):Светодиод с сопротивлением
Опять же - с каким ? Если оно маленькое, то это равносильно тому, что его нет.

ЗЫ: Эээ, куда Ваш пост делся ? :shock:
Kuzia
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Ср дек 01, 2010 09:57:22

Re: PIC12F675 и DS18S20

Сообщение Kuzia »

Zhuk72 писал(а): лучше не делать. Здесь это может приемлемо, а может нет, но вы не всегда можете знать состояние всех пинов порта. Поэтому для изменения используйте маску. Для очистки пина маску с AND, для выставления - OR, для инверсии XOR.
Да, так и делаю. Упростил фрагмент кода чтоб задать вопрос.
Так же в программе использую опрос 2-х кнопок. С ними вопросов таких не возникает :o

Добавлено after 1 minute 15 seconds:
Аlex писал(а):
Kuzia писал(а):Светодиоды горят до команды "movf GPIO,F".
А после команды гаснут ?
Kuzia писал(а):Светодиод с сопротивлением
Опять же - с каким ? Если оно маленькое, то это равносильно тому, что его нет.
А после - гаснут.
500 Ом
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: PIC12F675 и DS18S20

Сообщение Аlex »

Kuzia писал(а):А после - гаснут.
Значит реальный физический уровень на ноге - ноль.
Чудес не бывает...

Добавлено after 36 seconds:
Отцепите всё от этой ноги и прогоните.
Kuzia
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Ср дек 01, 2010 09:57:22

Re: PIC12F675 и DS18S20

Сообщение Kuzia »

Аlex писал(а):
Kuzia писал(а):А после - гаснут.
Значит реальный физический уровень на ноге - ноль.
Чудес не бывает...

Добавлено after 36 seconds:
Отцепите всё от этой ноги и прогоните.
Тоже самое.
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: PIC12F675 и DS18S20

Сообщение Zhuk72 »

А конфиг и инициализацию можно посмотреть?
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: PIC12F675 и DS18S20

Сообщение Аlex »

Дас ист фантастиш :)

Запаковывайте всё в архив, кидайте сюда и рассказывайте в какой точке это происходит и как до неё добраться.
Kuzia
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Ср дек 01, 2010 09:57:22

Re: PIC12F675 и DS18S20

Сообщение Kuzia »

Zhuk72
Подскажите какой версией Протеуса пользуетесь?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: PIC12F675 и DS18S20

Сообщение Аlex »

Кстати, да. Конфигурацию бы посмотреть. Может Вы аналог не отрубили.
Kuzia
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Ср дек 01, 2010 09:57:22

Re: PIC12F675 и DS18S20

Сообщение Kuzia »

Аlex
Подскажите какой версией Протеуса пользуетесь?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: PIC12F675 и DS18S20

Сообщение Аlex »

Есть 7 и 8.
Ответить

Вернуться в «PIC»