Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Блокируется вывод у PIC12F675
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Okor
Добрый день всем в это время суток и дальше тоже!

Такая вот у меня загогулина.
Сдохли все (5) рулевые машинки на модели самолетика по причине перепутанных потенциалов. Решил отремонтировать - там стоит обычный микроконтроллер (какой-то заказной с обвязкой без надписи) и 4 транзистора по мостовой схеме. Взял PIC12f675, четыре 2n4401 и, соответственно, резисторы в базы. Накидал программку за пару часов. Зашил в контроллеры. Стал радоваться. Но не тут-то было... Электроны перестали меня слушаться...
В произвольное время блокируется вывод GPIO5. У меня GPIO0 и GPIO1 управляют одной диагональю моста, GPIO4 и GPIO5 - другой. Почему-то вывод GPIO5 самопроизвольно переключается на вход (такое ощущение) то сразу, то через пару минут. С остальными выводами такого не происходит и исправно отрабатывают положение движка. Менял управление диагоналями, все регистры переустанавливал - не помогает. 3 дня уже "коту под хвост". Используются внутренние RCгенератор и MCLR.
Подскажите решение вопроса. А?

С уважением,
ОК
evc
Цитата(Okor @ Apr 29 2008, 08:49) *
...Накидал программку за пару часов...


Внимательнее проверьте в симуляторе, может быт забываете правильно RP0 переключить (или он остается в 1 при выходе из подпрограммы, например), и наместо к GPIO обращаетесь к TRISIO? Инструкция "bsf GPIO,5", если RP0 = 1, делает из GPIO5 вход...
greg
Такое бывает при некорректном выполнении операции с портами чтение-модификация-запись. Чтобы не заморачиваться - 100%-ый способ решения проблемы. Введите дополнительно переменную, которая является полной копией Вашего GPIO и все модификации битова производите с этой ячейкой, а её содержимое, с помощью операнда movf копируйте в GPIO. Успехов !
Okor
Спасибо за подсказки, но я их сразу учитываю - "собаку съел" за несколько-то лет программирования ПИКов. С PIC12F629/675 я часто имел дело и думал, что - "раз плюнуть" в любом случае его применения. Но...
Каналы-то 0, 1 и 4 работают, а 5-й - блокируется независимо от схемы подключения к диагоналям транзисторного моста. Такое ощущение, что где-то установки в микроконтроллере какие-то не сделал. Превышения по электрическим параметрам нет.
Ладно. На недельку откину в сторону, а там и мысля придет сама.......................................................
Okor
Плюнул я на поиски причин блокировки GPIO5. Сделал я развязочку с одного выхода GPIO1 на одну диагональ, с GPIO4 - на другую. Пусть это не совсем правильно, но зато работает и жужжит.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.