Okor 0 29 апреля, 2008 Опубликовано 29 апреля, 2008 · Жалоба Добрый день всем в это время суток и дальше тоже! Такая вот у меня загогулина. Сдохли все (5) рулевые машинки на модели самолетика по причине перепутанных потенциалов. Решил отремонтировать - там стоит обычный микроконтроллер (какой-то заказной с обвязкой без надписи) и 4 транзистора по мостовой схеме. Взял PIC12f675, четыре 2n4401 и, соответственно, резисторы в базы. Накидал программку за пару часов. Зашил в контроллеры. Стал радоваться. Но не тут-то было... Электроны перестали меня слушаться... В произвольное время блокируется вывод GPIO5. У меня GPIO0 и GPIO1 управляют одной диагональю моста, GPIO4 и GPIO5 - другой. Почему-то вывод GPIO5 самопроизвольно переключается на вход (такое ощущение) то сразу, то через пару минут. С остальными выводами такого не происходит и исправно отрабатывают положение движка. Менял управление диагоналями, все регистры переустанавливал - не помогает. 3 дня уже "коту под хвост". Используются внутренние RCгенератор и MCLR. Подскажите решение вопроса. А? С уважением, ОК Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evc 0 29 апреля, 2008 Опубликовано 29 апреля, 2008 · Жалоба ...Накидал программку за пару часов... Внимательнее проверьте в симуляторе, может быт забываете правильно RP0 переключить (или он остается в 1 при выходе из подпрограммы, например), и наместо к GPIO обращаетесь к TRISIO? Инструкция "bsf GPIO,5", если RP0 = 1, делает из GPIO5 вход... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
greg 0 29 апреля, 2008 Опубликовано 29 апреля, 2008 · Жалоба Такое бывает при некорректном выполнении операции с портами чтение-модификация-запись. Чтобы не заморачиваться - 100%-ый способ решения проблемы. Введите дополнительно переменную, которая является полной копией Вашего GPIO и все модификации битова производите с этой ячейкой, а её содержимое, с помощью операнда movf копируйте в GPIO. Успехов ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Okor 0 30 апреля, 2008 Опубликовано 30 апреля, 2008 · Жалоба Спасибо за подсказки, но я их сразу учитываю - "собаку съел" за несколько-то лет программирования ПИКов. С PIC12F629/675 я часто имел дело и думал, что - "раз плюнуть" в любом случае его применения. Но... Каналы-то 0, 1 и 4 работают, а 5-й - блокируется независимо от схемы подключения к диагоналям транзисторного моста. Такое ощущение, что где-то установки в микроконтроллере какие-то не сделал. Превышения по электрическим параметрам нет. Ладно. На недельку откину в сторону, а там и мысля придет сама....................................................... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Okor 0 30 апреля, 2008 Опубликовано 30 апреля, 2008 · Жалоба Плюнул я на поиски причин блокировки GPIO5. Сделал я развязочку с одного выхода GPIO1 на одну диагональ, с GPIO4 - на другую. Пусть это не совсем правильно, но зато работает и жужжит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться