16f629 не держит состояние выхода, пока опрашивается другой.
|
|
defaultNick |
Дата: Пн, 16.01.2012, 18:15 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
27
Замечания:
±
На сайте с 06.06.2010
Статус:
Offline
|
Примитивная прога термостата.
Code INCLUDE "bs2defs.bas" DEFINE OSC 4
TempData VAR WORD : D var word : TempC var word trisio.1 = 0 'port 0 output pause 1500
st:
pause 1000
OWOUT gpio.2,1,[$CC,$44] ' ds18b20 pause 20 HIGH gpio.2 ' ds18b20 PAUSE 50 OWOUT gpio.2,1,[$CC,$BE] ' ds18b20 pause 10 OWIN gpio.2,0,[TEMPDATA.LowByte,TEMPDATA.HighByte] ' ds18b20 D = 625 * TEMPDATA TempC = DIV32 10 TempC = (TEMPDATA & $0FF0) >> 4
if tempc >= 32 then low gpio.1 ' нагрев if tempc =< 30 then high gpio.1 ' нагрев
goto st
так вот. допустим tempc меньше 30. тогда gpio.1 - high. и вот при каждом цикле опроса термометра, пока ПИК с ним общается, он кладёт мне gpio.1 в low (примерно 80мс)!! т.е. при данной проге, когда нагревалка вообще не подключена, а термометр всегда даёт ~25 на выходе gpio.1 большенство времени high с промежутками в low пока идёт опрос типа так: ``````|_|````````|_|````````|_|````````|_|`` <- это типа такой график
как его убедить, что надо держать high всегда, без перерывов.
Сообщение отредактировал
defaultNick - Пн, 16.01.2012, 18:18
|
|
|
|
ivan_fd |
Дата: Пн, 16.01.2012, 19:34 | Сообщение # 2 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Как Вы определили, что он отпускает, в железе или протеусом?
Сообщение отредактировал
ivan_fd - Пн, 16.01.2012, 19:37
|
|
|
|
defaultNick |
Дата: Пн, 16.01.2012, 20:10 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
27
Замечания:
±
На сайте с 06.06.2010
Статус:
Offline
|
в железе. там на gpio.1 светодиодик. он пригасает на мгновение я б даже плюнул на это всё, т.к. по большому счёту всё работает, но ЭТО управляет нагревалкой в 2квт через реле, и если реле будет туда сюда постоянно прыгать и искрить внутри то его не на долго хватит
|
|
|
|
retas |
Дата: Пн, 16.01.2012, 20:33 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Мне кааатся, что тут проявление эффекта чтение-модификация-запись. Попробуйте временно порт через резистор подкл. к плюсу - посмотрите пропадёт ли дрыг.
|
|
|
|
defaultNick |
Дата: Пн, 16.01.2012, 20:57 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
27
Замечания:
±
На сайте с 06.06.2010
Статус:
Offline
|
retas, сорри, какой порт? gpio.1 если на плюс посадить то полевик тупо откроется и всё...
|
|
|
|
доцент2 |
Дата: Пн, 16.01.2012, 21:17 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
291
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
для начала это не 16-й, а 12-й пик (12f629) потом надо правильно прописать конфигурацию (кроме внешнего кварца сдесь ни чего нет), затем TRISIO=%00000000' все выводы порта на выход GPIO=%00000000 'все выводы на ноль
Сообщение отредактировал
доцент2 - Пн, 16.01.2012, 21:19
|
|
|
|
defaultNick |
Дата: Пн, 16.01.2012, 21:42 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
27
Замечания:
±
На сайте с 06.06.2010
Статус:
Offline
|
ой! дико извиняюсь, конечно 12f629.
доцент2, все на выход - так не работает вообще, наверное т.к. gpio.2 в двух направлениях должен работать же. при таком: TRISIO = %00000100 GPIO = %00000000 точно такой же эффект как и вообще без этого всего. да и вообще эти trisio совсем не обязательная штука, порты сами отлично настраиваются.
тут дело такое же как в 18-ых пиках в порте Д, у них вместо portd.х надо писать latd.х, а иначе такой же эффект как у меня сей час только в 12-ых нет вроде латчей никаких?
|
|
|
|
retas |
Дата: Пн, 16.01.2012, 21:54 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
то полевик тупо откроется и всё... Мешает он? На дрыг смотри!!!
|
|
|
|
ivan_fd |
Дата: Пн, 16.01.2012, 22:38 | Сообщение # 9 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
А может смоделировать схему в Протеусе и посмотреть что да как? Может у Вас сторожевой таймер сбрасывает ПИК? И действительно, установить правильно биты конфигурации.
Сообщение отредактировал
ivan_fd - Пн, 16.01.2012, 22:38
|
|
|
|
defaultNick |
Дата: Пн, 16.01.2012, 22:42 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
27
Замечания:
±
На сайте с 06.06.2010
Статус:
Offline
|
retas, это не что-то неопознанное как "дрыг" или дребезг. контроллер сознательно опускает в ноль выходы, и если его на + повесить то, ничего и не изменится внутри его. так же коротко нулит сигнал, только теперь это не столь очевидно, и мешает это резистор.
Вообщем это только программная недоделка. Что-то должео быть чуть чуть подругому
WDT off стоит.
Сообщение отредактировал
defaultNick - Пн, 16.01.2012, 22:45
|
|
|
|
доцент2 |
Дата: Пн, 16.01.2012, 23:02 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
291
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
вот накидал програмку и схемку. в протеусе все работает. обратите внимание на биты конфигурации и необходимо отключить компаратор. что касается настройки выводов лучше их сделать. некоторые команды сами это устанавливают. но лучше заранее это сделать. да и еще, если задумка управлять чем-то "мощненьким" и дребесжаще-искрящим, то надо подумать о гальванической развязке по питанию, возможно фильтрах и т.д.
Сообщение отредактировал
доцент2 - Пн, 16.01.2012, 23:11
|
|
|
|
defaultNick |
Дата: Вт, 17.01.2012, 01:09 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
27
Замечания:
±
На сайте с 06.06.2010
Статус:
Offline
|
Спасибо всем за помощь, дело было в невыключенном компараторе. Всё заработало как надо.
|
|
|
|
доцент2 |
Дата: Вт, 17.01.2012, 09:58 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
291
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
интерсно, а в чем было причина?
|
|
|
|
defaultNick |
Дата: Чт, 19.01.2012, 01:57 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
27
Замечания:
±
На сайте с 06.06.2010
Статус:
Offline
|
доцент2, CMCON=%00000111 сделало своё дело я как то подумал что если нет ADC то и компоратора нет... бывает.
|
|
|
|