Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

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

Ответ
Опции темы

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

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

Тьфу, опять очепятка

void f1(void)
{
PORTD |= 2;
}

int main(void)
{
DDRC = 0;
PORTC = 0b00000001;

DDRD = 0b00000011;

MCUCR &= ~0b11101111;

while(1)
{
if ((PINC & 1) == 1) f1();
else PORTD &= 0b11111101;

if ((MCUCR & 0b00010000) == 0b00010000) PORTD |= 1;
else PORTD &= 0b11111110;
}
}
Реклама:
jsv001 вне форума   Ответить с цитированием
Непрочитано 15.09.2017, 14:24   #32
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,276
Сказал спасибо: 11,858
Сказали Спасибо 4,158 раз(а) в 3,176 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: подтягивающие резисторы

jsv001, у Вас какая-то извращённая кочка зрения на все уже сказанное.
Кто кому вопросы задаёт и доказывает что-то?
Ctrl-A, Ctrl-C и Ctrl-V тоже не работают? И тег CODE руками не набирается?
Голый кусок без инициализации, подключений библиотек, указания версий используемого - сильно напоминает сферического коня…
И найти таким образом причину абсолютно нереально, от слова совсем… .

Засунул между делом Ваш пример в целых 4 разных по времени 328 из отладочных - все типа работает… видимо у меня или среда другая, или библиотеки правильные, или камни прямые,…
Код конечно без светодиодов на ногах, но порт никак не теряет внутреннюю подтяжку…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…

Последний раз редактировалось mike-y-k; 15.09.2017 в 14:30.
mike-y-k вне форума   Ответить с цитированием
Непрочитано 15.09.2017, 15:14   #33
jsv001
Временная регистрация
 
Регистрация: 04.05.2007
Сообщений: 54
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jsv001 на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Причину я уже нашел.
В плате уже стоит другой контроллер, купленый в другом месте.
Меня интересовало, насколько часто встречаются дефектные, и именно с таким дефектом.
Я, помнится, спрашивал "Кто нибудь такой дефект у меги328 встречал? "
Ответ я получил.

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

Сообщение от AR_Favorit Посмотреть сообщение
Что вот эта команда по вашей задумке делает?
И мне тоже интересно. Не знаю, какая задумка автора, но навскидку она сбрасывает сброшенные биты, кроме четвертого, хотя и он уже в нуле.

И зачем писать так много букв в условиях? Зачем после отжатия бита сравнивать его с контрольным числом. Ведь условие все-равно выполнится, если не ноль. А ноль будет, если отжатый бит равен нулю.
И наверное, это не весь код. В последней версии показанной программы диод на PD0 и не должен зажечься так, как условие if((MCUCR & 0b00010000)==0b00010000) не будет выполнено. А на PD1 не должен тухнуть, разве, что после замыкания на землю PINC0.

Последний раз редактировалось МВА; 15.09.2017 в 16:14.
МВА вне форума   Ответить с цитированием
Непрочитано 15.09.2017, 16:08   #35
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,276
Сказал спасибо: 11,858
Сказали Спасибо 4,158 раз(а) в 3,176 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: подтягивающие резисторы

jsv001, причина или следствие - сие тайна величайшая есть и путь к познанию ее изначально через анализ кода лежит…
При замене процессора все пропаяно было…
Совокупные ёмкости и сопротивления таки поменялись…
Список можно продолжить.
Но у Вас есть абсолютная уверенность…
Тогда ждём следующего вопроса о сходных проблемах в другой ситуации…
Вероятность из материалов данной темы высока, однако
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума   Ответить с цитированием
Сказали "Спасибо" mike-y-k
ForcePoint (15.09.2017)
Непрочитано 15.09.2017, 17:07   #36
jsv001
Временная регистрация
 
Регистрация: 04.05.2007
Сообщений: 54
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jsv001 на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Уверяю вас, это самая полная версия программы для воспроизведения дефекта, о котором идет речь.

Инклуды я не стал добавлять из экономии места.

Программа устанавливает в MCUCR бит PUD, который управляет подключением резисторов подтяжки.

По умолчанию он должен устанавливаться в ноль.
В начале программы я еще раз его устанавливаю принудительно,
а потом в цикле проверяю, не соскочил ли он (напомню про дефект).

Так что, ежели светодиод на выводе PD0 не зажжется, регистр MCUCR не виноват.

А на PD1 светодиод может погаснуть в двух случаях:

1 - замкнут тумблер на PC0 (об этом было раньше)
2 - по какой то причине напряжение на входе PC0 самопроизвольно? невзирая на подтяжку, упадет до нуля, что я и наблюдал вольтметром.

Это и есть дефект, о котором мы говорим.

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

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

Сообщение от jsv001 Посмотреть сообщение
Программа устанавливает в MCUCR бит PUD, который управляет подключением резисторов подтяжки.
Не устанавливает.

MCUCR &= ~0b11101111; - это то же самое, что MCUCR &= 0b00010000;

MCUCR изначально содержит ноль во всех битах, побитовое "и" с любой маской оставляет в них нули.

А если бы вы таки установили бит PUD, то подтяжку бы он не включил, а отключил. PUD - расшифровывается как pull-up disable. Изначально бит сброшен и подтяжка разрешена для побитовой установки в регистрах PORTx, установка этого бита вырубает ее всю нафик независимо от состояния этих регистров.

Видите, ситуация в точности, о чем я говорил - программа делает совсем не то, что вы думаете. А потом где-то еще в большой программе, например, в этот PUD таки записывается единица, и вуаля - "подтяжка сама собой пропала"...

Почему вас и просят привести именно копипаст того, что вы компилируете и шьете в процессор.

Бывало такое и у меня - не изучив даташит, схватил мегу64 после "маленьких" авр, ой, не работает один вывод порта. Все ставится, а вольтметр показывает фигню. Наверно проц плохой! Меняем проц. Ой, опять не работает. А интернет тогда был совсем еще медленный и печальный, и быстро нагуглить, чем процессор с JTAG отличается от других без такового, было невозможненько.

PS перечитав ваш пост, таки сообразил, что вы пытаетесь сбросить этот бит. Не говорят так - "установить в ноль". Установить - в единицу, сбросить - в ноль))) Но ваша команда всё равно его не сбрасывает, именно этот бит))

Ваш опыт показал, что MCUCR не меняется.

А еще нет опыта по проверке состояния DDR и PORTC... То есть, где именно дефект, даже и непонятно осталось.

Последний раз редактировалось AR_Favorit; 15.09.2017 в 17:42.
AR_Favorit вне форума   Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо AR_Favorit за это сообщение:
mike-y-k (16.09.2017), МВА (15.09.2017)
Непрочитано 15.09.2017, 17:32   #38
МВА
Гражданин KAZUS.RUN
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 841
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Сообщение от AR_Favorit Посмотреть сообщение
Не устанавливает.
Опередил таки меня. Только что набирал почти такой-же текст.
МВА вне форума   Ответить с цитированием
Непрочитано 15.09.2017, 17:32   #39
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: подтягивающие резисторы

блин, опередили - и не раз

Сообщение от jsv001 Посмотреть сообщение
В начале программы я еще раз его устанавливаю принудительно,
а потом в цикле проверяю, не соскочил ли он (напомню про дефект).
Вам уже раза два ткнули в то место - не обнуляете вы тот бит там. Вы обнуляете все остальные биты. Или напишите

Код:
MCUCR &= 0b11101111;
или

Код:
MCUCR &= ~0b00010000;
Ну и еще кривости разные наблюдаются, вкупе с нежеланием оформить код как положено. Потому у вас и переспрашивают все по нескольку раз. Да и я по прежнему считаю что у вас скорее с фузами чего-то напутано. Были бы вы рядом - ей богу, не поленился бы потестировать тот "бракованный" чип.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума   Ответить с цитированием
Непрочитано 15.09.2017, 17:39   #40
jsv001
Временная регистрация
 
Регистрация: 04.05.2007
Сообщений: 54
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jsv001 на пути к лучшему
По умолчанию Re: подтягивающие резисторы

Насчет копипаста - там около 5 тысяч строк.
И комментариев совсем немного.
jsv001 вне форума   Ответить с цитированием
Ответ


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

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, время: 18:01.


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