Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Помогите разобраться с RA4 на PIC16F628A
igor--ok Дата: Пн, 20.05.2013, 18:25  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 13
Репутация: 0   ±
Замечания:   ±
На сайте с 23.09.2012

Статус: Offline

Проблема в следующем: Выход RA4 подтянут к + питания резистором 2,2к и соединен с базой КТ315, который включает реле. Команда HIGH Relay переводит его (вывод) в высокое логическое состояние. Но как только начинается подпрограмма индикации, RA4 тут же возвращается в низкое логическое состояние. Т.е. реле "тикает", втянуться не может. Если убрать индикацию, реле втягивается и работает. Что не так?
В Протеусе нормально работает.
Прикрепления: Vodonagrevatel_.bas (2.0 Kb)
ЯНДЕКС Дата: 20.05.2013
shaman Дата: Пн, 20.05.2013, 18:48  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

День добрый , схему протеуса скиньте. Опишите конкретно весь принцип работы,что должно выводиться на сегменты при нажатии кнопки  и т.д
Сообщение отредактировал shaman - Пн, 20.05.2013, 21:10
igor--ok Дата: Пн, 20.05.2013, 22:23  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 13
Репутация: 0   ±
Замечания:   ±
На сайте с 23.09.2012

Статус: Offline

Схему скину завтра. Вкратце алгоритм такой. Вывод переводится в состояние лог.1 Затем следует 300 циклов динамической индикации, если не нажата кнопка. Так вот в процессе индикации вывод RA4 снова переходит в состояние лог."0" Почему??? Если нажать кнопку, динамической индикации не будет и вывод  RA4 не изменит своего состояния. Может в программе ошибка? Катоды четырех сегментов подключены к RA0-RA3.  На индикацию выводится одно и то же значение для простоты. (раньше выводилось время)
В программе вообще нет команды перевода RA4 в состояние лог.0 Единица там появляется через подтягивающий резистор.
Как индикация влияет на состояние порта А4?

Сообщение отредактировал igor--ok - Пн, 20.05.2013, 22:28
shaman Дата: Пн, 20.05.2013, 22:33  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

Чета совсем не понял.
1. Если нажать кнопку, динамической индикации не будет и вывод  RA4 не изменит своего состояния.  ????????
если в программе у Вас If ButHour = 1 Then GoSub Ind
igor--ok Дата: Вт, 21.05.2013, 06:06  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Новенький
Сообщений: 13
Репутация: 0   ±
Замечания:   ±
На сайте с 23.09.2012

Статус: Offline

ButHour - это кнопка. При нажатии принимает значение лог."0" Так я и написал: если кнопка имеет значение "1" (т.е. кнопка не нажата) - то выполнить подпрограмму индикации (gosub ind) Кнопку я специально ввел, чтобы можно было в процессе работы отключать индикацию. Нужно было убедиться, что именно в процессе ин дикации порт ra4 самовольно меняет свое состояние с "1" на "0"
anatol Дата: Вт, 21.05.2013, 13:05  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 471
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Скорее всего не соблюдается Ч-М-З
DAlexV Дата: Вт, 21.05.2013, 21:44  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Цитата anatolСкорее всего не соблюдается Ч-М-З
Ну почти что так. Только все дело кроется в железе, а не софте.
Нашел описание проблемы на Микрочипе, сам правда на такие грабли не попадался, но думаю многим будет интересно знать про них.
Скрытый текст http://www.microchip.su/showthread.php?t=3303&page=2 с 33 поста и ....

Успехов wink


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Сообщение отредактировал DAlexV - Вт, 21.05.2013, 21:45
igor--ok Дата: Вт, 21.05.2013, 22:18  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Новенький
Сообщений: 13
Репутация: 0   ±
Замечания:   ±
На сайте с 23.09.2012

Статус: Offline

Спасибо всем за участие. Проблема решена!!! Причина крылась в слишком большом сопротивлении подтягивающего резистора. 2,2кОм заменил на 270 Ом. Всё заработало как часы. (это часы, собственно говоря и есть)) После строки "High PortA.4" Вывод переводится в высокое (благодаря подтяжке) логическое состояние и в нём остается аж до строки"Low PortA.4"
  • Страница 1 из 1
  • 1
Поиск: