Снова PIC16F874
Снова PIC16F874
как расчитать RC-цепочку, которая подключена к ШИМу микроконтроллера, и которая должна идти на полевик, который должен выдавать порядка 20А тока?
- Реклама
Re: Снова PIC16F874
Не буду новую тему создавать, потому что есть проблема с таким контроллером. В общем такая фигня. Порт А весь на выход. Порт С тоже. Так вот выставляю на RA4=1, затем обнуляю весь Порт С и у меня RA4 устанавливается в 0. Почему так? Все делаю в MPLAB+Протеус.
Re: Снова PIC16F874
Может пому что всё делаеш в в MPLAB+Протеус. Попробуй один МПлаб.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Снова PIC16F874
Читаем долго, упорно и оооочень внимательно - http://ww1.microchip.com/downloads/en/D ... 30292D.pdf , если быть точнее - раздел I/O Ports, а ещё точнее - PORTA. После прочтения, Ваш вопрос отпадёт моментально. Если, конечно, читать будете внимательно.
Re: Снова PIC16F874
Bkmz, не забываем что RA4 - open drain. Классические грабли...
- Реклама
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Снова PIC16F874
Ну вот, dosikus не вытерпел
А я хотел чтоб человек сам дочитался до истины 
Re: Снова PIC16F874
Не говори-ка...Аlex писал(а):Ну вот, dosikus не вытерпел![]()
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Снова PIC16F874
Мне кажется, нужно уже создавать тему с названием "RA4" и поднимать её в самый верх.
Совсем народ не желает пользоваться документацией. Обленился ....
Совсем народ не желает пользоваться документацией. Обленился ....
- Dmitry Dubrovenko
- Поставщик валерьянки для Кота
- Сообщения: 2360
- Зарегистрирован: Вс янв 09, 2011 16:51:39
- Откуда: Санкт-Ленинград
- Контактная информация:
Re: Снова PIC16F874
Я, конечно, дико извиняюсь, но какое отношение "открытый сток" имеет к установке порта в "0"?RA4 - open drain
Полагаю, надо сперва на схему ТС взглянуть.
P.S.: Кстати, в Протеусе, насколько помню, надо ставить пулл-апом "аналоговый" резистор. "Цифровой" не канает.
ICQ нет, и, в ближайшее время, не будет.
- Dmitry Dubrovenko
- Поставщик валерьянки для Кота
- Сообщения: 2360
- Зарегистрирован: Вс янв 09, 2011 16:51:39
- Откуда: Санкт-Ленинград
- Контактная информация:
Re: Снова PIC16F874
А ведь всего неделю назад кое-кто поносил меня последними словами за совет не заниматься ДжиДэЭмом.otest писал(а):Может пому что всё делаеш в в MPLAB+Протеус. Попробуй один МПлаб.
Нарушение
2.2 Запрещается создание нескольких сообщений подряд в одной теме. Если вы хотите что-то добавить к своему, уже написанному сообщению, воспользуйтесь кнопкой "Правка".
Последний раз редактировалось AlekseyEnergo Пн сен 09, 2013 09:41:52, всего редактировалось 1 раз.
Причина: .
Причина: .
ICQ нет, и, в ближайшее время, не будет.
Re: Снова PIC16F874
Про открытый сток я прекрасно знаю. Дело в том что самом регистре PORTA он устанавливается в 0. Мне по идее открытый сток и нужен, потому как там светик весит катодом на этот порт. В общем проблему пока решил переносом на свободный RA5. Но все же хотелось бы выяснить на будущее почему так происходит?
Re: Снова PIC16F874
Предлагаете вместе погадать?Bkmz писал(а): Но все же хотелось бы выяснить на будущее почему так происходит?
Схему и код выложите ...
Re: Снова PIC16F874
Там где брекпоинт есть комменты, думаю разберетесь. Заодно сразу еще вопрос, как мне преобразовать код набранный в двоично-десятичной системе и преобразовать его в шестнадцатиричную. Считываю я его через регистры по 4 бита, соответственно число в десятичном виде четырехразрядное, так вот как его перевести в шестнадцатиричный вид?
- Вложения
-
- Encoder_test.rar
- (100.41 КБ) 224 скачивания
Re: Снова PIC16F874
Посмотрите выполняемый код в ассемблере. И прочтите даташит, в частности "Чтение регистра PORTA возвращает состояние на выводах порта, а запись производится в защелку PORTA. Все операции записи в порт выполняются по принципу «чтение – модификация - запись», т.е. сначала производится чтение состояния выводов порта, затем изменение и запись в защелку." Это с другого PIC, но принцип тот же.Bkmz писал(а):...Дело в том что самом регистре PORTA он устанавливается в 0...
Если подтянуть RA4 к питанию, то все будет нормально.
Re: Снова PIC16F874
Тьфу, черт. А ведь все верно. Надо ж как ступил. Спасибо Вам огромноеSoir писал(а):Посмотрите выполняемый код в ассемблере. И прочтите даташит, в частности "Чтение регистра PORTA возвращает состояние на выводах порта, а запись производится в защелку PORTA. Все операции записи в порт выполняются по принципу «чтение – модификация - запись», т.е. сначала производится чтение состояния выводов порта, затем изменение и запись в защелку." Это с другого PIC, но принцип тот же.Bkmz писал(а):...Дело в том что самом регистре PORTA он устанавливается в 0...
Если подтянуть RA4 к питанию, то все будет нормально.
Тогда почему у меня в программе после обнуления PORTC ставлю команду RA4=1 и он так и остается в 0? Блин. Это если без подтягивающего резистора .
А по второму вопросу подскажет кто-нибудь?
2.7 Запрещается полное цитирование предыдущего сообщения. Допускается цитирование только части сообщения, необходимой для смысловой связи с предыдущим сообщением.
Предусматриваются следующие виды наказаний за нарушение пунктов данных Правил: за нарушение: п 2.7 - Предупреждение. При повторном нарушении - бан на усмотрение модератора.
Последний раз редактировалось AlekseyEnergo Пн сен 09, 2013 09:42:45, всего редактировалось 1 раз.
Причина: .
Причина: .
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Снова PIC16F874
Дмитрий, мне порой кажется, что Вы - одинокий пожилой мужчина, к которому никто не ходит в гости и игнорируют соседи на лавочках. Вам поговорить чтоли нескем и неочем ?Dmitry Dubrovenko писал(а):какое отношение "открытый сток" имеет к установке порта в "0"?RA4 - open drain
Открытый сток на выходе может давать только лог "0" (не считая Z-состояния), т.к. ключ только один - на землю !
Вы сами ответили на свой вопрос :ставлю команду RA4=1 и он так и остается в 0?
Это если без подтягивающего резистора
Re: Снова PIC16F874
Bkmz писал(а):Про открытый сток я прекрасно знаю.
Цирк...Bkmz писал(а):Это если без подтягивающего резистора .
Re: Снова PIC16F874
Ну да ))) в общем сам себя запутал. Мне не совсем понятна операция "чтение-модификация-запись". Т.е. прочитали, изменили и выдали обратно. У меня получается так: RA4=0 зажгли светик, далее RA4=1, тем самым вывод к воздуху подвесили (открытый сток), потому как через светик 1 пролетала. Далее сбрасываю PORTC. И тут со всеми портами происходит чтение-модификация запись, потому как и RA4 меняет состояние. Но почему тогда PORTC уже успел модифицироваться и выдал нули, а PORTA это делает позже, потому как через светик уже не летит 1, и со входа RA4 читается 0, модификации не происходит и выдается обратно 0. Надо полагать, что сброс порта происходит без чтения-модификация-запись, а сразу же. Далее. Ну пусть он сбросился этот RA4. Но почему тогда я подаю после этого команду RA4=1 но модификации не происходит. Ведь пофиг что мы прочитали там с него, модификация то должна же происходить? Или чего я не понимаю?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Снова PIC16F874
Скорее, не понимаем мыИли чего я не понимаю?
Приложите кусок кода и по нему объясняйте пошагово что у Вас происходит.
Re: Снова PIC16F874
Проект целиком чуть выше. Ну да ладно, вот этот кусок:
Код: Выделить всё
RA4=0; //на порт повесили 0
__delay_ms(DT); //
RA4=1; //порт отпустили (Z)
if (d1==0) PORTC=0; //при обнулении PORTC происходит прижимание к 0 RA4
else PORTC = number[d1]; //
RA4=1; //пытаюсь отпустить (состояние Z) RA4, но увы, ничего не меняется


