Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

подтягивающие резисторы

Непрочитано 14.09.2017, 15:54  
jsv001
Временная регистрация
 
Регистрация: 04.05.2007
Сообщений: 54
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jsv001 на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Скобка лишняя, согласен. Фрагмент не брался из программы, а писал прямо здесь.
Реклама:
jsv001 вне форума  
Непрочитано 14.09.2017, 15:56  
jsv001
Временная регистрация
 
Регистрация: 04.05.2007
Сообщений: 54
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jsv001 на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Пин опрашивает тумблер, так, что дребезга нет.
Опрос производится через 2-3 минуты.
jsv001 вне форума  
Непрочитано 14.09.2017, 16:37  
jsv001
Временная регистрация
 
Регистрация: 04.05.2007
Сообщений: 54
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jsv001 на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Фузы, конешно, трогались. Но давно, когда начал писать эту программу.
WDT не включен за ненадобностью.
Зависания нет, программа бодренько делает почти все, что надо,
за исключением этой самой функции. Не делает то, что в ней написано.
А в ней контроллер работает только с портом PORTD.

Программу можно так описать.
Допустим, моторчик вращается вправо, сделав 347 оборотов, читает состояние тумблера.
Ежели тумблер замкнут, опять делает 347 оборотов.и.т.д.
Ежели разомкнут, заходит в функцию f(), где делает 512 оборотов влево,
и при этом жужжит.
Как то так. (Правда, моторчик виртуальный)

Если залить свеженькую программу, то переключение происходит.
Примерно через полминуты контроллер перестает реагировать на тумблер.
Потому я и стал мерить напряжение на ножке PC0.
Секунд через 20-30 после включения питания оно падает с 5 вольт в ноль.
Другие ноги я не смотрел.

С внешним резистором все работает прекрасно.

Я всегда ставлю резисторы примерно 3кома, они помех меньше ловят, чем внутренние.
А тут решил сэкономить.
jsv001 вне форума  
Непрочитано 14.09.2017, 16:50  
AR_Favorit
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Вариантов всего два. Или китайцы изготовили мегу328, в которой регистр, ответственный за подтяжку порта, самопроизвольно сбрасывается в ноль через 30 секунд, и продали этот экземпляр вам.

Или ваша сверхсекретная программа, исполняя "всё, что в ней написано", в какой-то момент портит состояние этого регистра, либо переключает ножку на выход, либо включает какую-то периферию, связанную с данной ножкой, что приводит к отключению подтяжки (РС0=ADC0) и т.д.

Меги от китайцев с бракованным флешем видел, с бракованным регистром подтяжки - пока не приходилось.

Программ, делающих не всегда только то, что задумал автор, видел много и сам такие "умею" писать. Но когда у меня получается такая программа - я пользуюсь какими-нить доступными средствами отладки, чтобы понять, что именно происходит с процессором.

Последний раз редактировалось AR_Favorit; 14.09.2017 в 16:58.
AR_Favorit вне форума  
Сказали "Спасибо" AR_Favorit
mike-y-k (14.09.2017)
Непрочитано 14.09.2017, 17:12  
baiderin
Почётный гражданин KAZUS.RUN
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,739
Сказал спасибо: 2,487
Сказали Спасибо 897 раз(а) в 584 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Вывести значение настройки порта куда-нибудь и смотреть,не меняется ли оно.
baiderin вне форума  
Непрочитано 14.09.2017, 17:22  
jsv001
Временная регистрация
 
Регистрация: 04.05.2007
Сообщений: 54
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jsv001 на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Возможно, Вы правы. Такие программы я тоже "умею".
Я закомментировал всё, что не касается PC0.
А в сверхсекретной функции f() просто загорается светодиод.
АЦП и раньше не трогал.
Проблема не исчезла.
Так что не буду больше в этой конторе меги покупать.
jsv001 вне форума  
Непрочитано 14.09.2017, 17:49  
jsv001
Временная регистрация
 
Регистрация: 04.05.2007
Сообщений: 54
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jsv001 на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Посмотрел регистры.
MCUCR держит бит.PC0 падает до нуля.
Короче, надо менять микросхемку, бракованная.

Спасибо.
jsv001 вне форума  
Непрочитано 14.09.2017, 17:56  
МВА
Гражданин KAZUS.RUN
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 841
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Сообщение от AR_Favorit Посмотреть сообщение
Или ваша сверхсекретная программа, исполняя "всё, что в ней написано", в какой-то момент портит состояние этого регистра, либо переключает ножку на выход, либо включает какую-то периферию, связанную с данной ножкой, что приводит к отключению подтяжки (РС0=ADC0) и т.д.
Эта гипотеза мне тоже близка. Лучше бы посмотреть программу. Я сам, два дня назад, натупил в этом плане. Один из входов задумывался как вход с подтяжкой и джампером замыкался на землю, когда снимаешь перемычку - должен переходить в режим программирования. Так вот, после того, как переходил в этот режим у меня самопроизвольно выключалась подтяжка. Когда прошел программу пошагово, то нашел в какой строке сбрасывался порт. Я просто вместо PORTB &= ~(1‹‹5); написал PORTB &= 1‹‹5; Так что гадать на кофейной гуще не лучший вариант. Ларчик, может быть , открывается просто.
МВА вне форума  
Непрочитано 14.09.2017, 18:02  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Сообщение от jsv001 Посмотреть сообщение
Посмотрел регистры.
Чем, где?

Чтобы быть уверенным - я бы включил в программу реалтаймовский отладочный модуль и реально посмотрел содержимое памяти и регистров, на работающем кристалле.

А насчет брака... За все годы работы с АВРками один раз попался очень-хитро-глючный чип, сбрасывался при записи ненулевого содержимого в OCR регистр.

Правда, последние партии мега8535 со странностями - фузы не соответствуют значениям "по умолчанию" и изредка попадаются исходно мертвые чипы(не входят в программирование). Видимо, производство переехало на малую Арнаутскую.
__________________
[ жизнь приятна и красива, если выпить литр пива ]

Последний раз редактировалось nml; 14.09.2017 в 18:06.
nml вне форума  
Непрочитано 14.09.2017, 18:19  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,459
Сказал спасибо: 3,227
Сказали Спасибо 3,513 раз(а) в 2,394 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Сообщение от jsv001 Посмотреть сообщение
MCUCR держит бит.PC0 падает до нуля.
Расшифруйте.
__________________
Экзорцист 40-го уровня.
ForcePoint вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC18F4550 и подтягивающие резисторы порта В vavan1983 PIC 13 15.02.2014 13:33
Не включаются подтягивающие резисторы Atmega8515 svv11 Микроконтроллеры, АЦП, память и т.д 9 18.07.2009 20:57
внутренние подтягивающие резисторы у МК dimonbest Микроконтроллеры, АЦП, память и т.д 16 18.05.2007 11:09


Часовой пояс GMT +4, время: 02:25.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.