Библиотека для работы с 74HC595

znatachek
Offline
Зарегистрирован: 08.03.2019

Нашёл библиотеку Shift595, которая включает выключает необходимую ножку в одну строку, но в ней не реализованно считывание состояния ножки.

Есть ли какая то библиотека которая может и считывать ?

nik182
Offline
Зарегистрирован: 04.05.2015

Считать ногу не проблема. Замыкаем выход передачи последней микросхемы на ногу процессора и крутим сколько надо раз до считывания нужного пина. Потом возвращаем всё как было. Библиотека для этого не нужна. Можно все ноги считать одним циклом. Потом выбрать нужную.

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

Во как!! А я и не знал, что на неё библиотеки есть.

Я даже вопроса не понял ...  что такое "считывать". Это же выходы! Повесь свнтодиоды и любуйся. 

Или в мониторе порта.

Green
Offline
Зарегистрирован: 01.10.2015

Как вроде кто то чужой этими выходами управляет.) Вы же сами формируете уровни на этих выходах 595. На кой ляд их считывать? Или забывается со временем?)))

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

nik182 пишет:
Считать ногу не проблема. Замыкаем выход передачи последней микросхемы на ногу процессора и крутим сколько надо раз до считывания нужного пина. Потом возвращаем всё как было. Библиотека для этого не нужна. Можно все ноги считать одним циклом. Потом выбрать нужную.

Ну, что библиотека не нужна, с этим, конечно, следует согласиться.

Но раз так, вопрос переходит в чисто академическую плоскость.

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

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

Откуда вывод: в библиотеке должна храниться копия содержимого регистра. Вот из нее и следует брать значение нужного бита, если оно вдруг поадобилось.

Вывод: библиотеку таким образом переделать МОЖНО.

nik182
Offline
Зарегистрирован: 04.05.2015

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

SLKH
Offline
Зарегистрирован: 17.08.2015

nik182 пишет:
Считать ногу не проблема. Замыкаем выход передачи последней микросхемы на ногу процессора и крутим сколько надо раз до считывания нужного пина.
при этом последовательно срабатывают все устройства, подключенные к выходам регистра. Вода льётся, ракеты взлетают не в ту сторону и т.д.

nik182
Offline
Зарегистрирован: 04.05.2015

Да. Именно так все ноги пробегут по кругу. Но это плата за считывание и это надо иметь в виду. Поэтому согласен с тем что лучше не читать а помнить. Но вопрос был про прочитать. 

Green
Offline
Зарегистрирован: 01.10.2015

В 595-м по кругу не побегут. Только от этого вам легче не будет.)

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

nik182 пишет:

Да. Именно так все ноги пробегут по кругу. Но это плата за считывание и это надо иметь в виду. Поэтому согласен с тем что лучше не читать а помнить. Но вопрос был про прочитать. 

1. Объявили переменную -  байт.
2. Вывели байт в регистр.

И что после этого вам нужно что-то откуда-то читать?

А для чтения входов есть специальный регистр 165
 

 

 

 

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Похоже тема ,как написать часы реального времени на 74HC595 не раскрыта. Тут выше потерли 1 мой пост на тему ума ТС, который считает, что была бы библиотека , и уже не важно какое железо на ноги повешено , даже если у этого железа нет для этого аппаратных возможностей.

nik182
Offline
Зарегистрирован: 04.05.2015

Мне ничего читать не нужно. Это ТС хочет из 595 прочитать. Я ответил что прочитать можно только дополнительным соединением и выдвиганием информации, после чего информацию надо востановить. Люди у вас есть мозг? Неужели трудно прочитать топик и отвечать на вопрос ТС или дискутировать по теме ? Я не понимаю зачем вам вырывать из дискуссии куски и отвечать мне, при этом совершено не по теме и иногда полную ахинею, тем самым давая понять ваш уровень понимания проблемы. Лучше иногда промолчать. Можно за умного сойти. 

nik182
Offline
Зарегистрирован: 04.05.2015

Green пишет:

В 595-м по кругу не побегут. Только от этого вам легче не будет.)

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

Green
Offline
Зарегистрирован: 01.10.2015

Зачем обратно? Пока LATCH (ST_CP) не сделаешь, можно крутить сколько хош.)

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

nik182 пишет:

Мне ничего читать не нужно. Это ТС хочет из 595 прочитать. 

znatachek пишет:

Есть ли какая то библиотека которая может и считывать ?

А теперь вопрос присутсвующим. Что ТС хочет прочитать 1- уровень на выходе микросхемы 2- уровень в регистре микросхемы 3- что есть какая то мифическая библитека которая может прочитать из головы ТС что надо прочитать в на 595. 

 

ПС:Один дурак может задать вопросы, на которые и сто мудрецов не ответят

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

nik182 пишет:
Ну раз в академическую... , то считывание из регистра подразумевает физическое считывание. Причины этого действия могут быть разные. Ваши абстрактные умозаключения никак не помогут решить проблему физического считывания.

Нет такой проблемы в связи с отсутствием какого либо резона производить это считывание.

Нужные данные содержатся в библиотеке - оттуда их и следует брать.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

nik182 пишет:

Да. Именно так все ноги пробегут по кругу. Но это плата за считывание и это надо иметь в виду. Поэтому согласен с тем что лучше не читать а помнить. Но вопрос был про прочитать. 

Нет, вопрос был про библиотеку. 

Про физическое считывание - это Вы сами придумали.

VladimirTsibrov
Offline
Зарегистрирован: 05.03.2019

qwone пишет:

А теперь вопрос присутсвующим. Что ТС хочет прочитать 1- уровень на выходе микросхемы 2- уровень в регистре микросхемы 3- что есть какая то мифическая библитека которая может прочитать из головы ТС что надо прочитать в на 595. 

ПС:Один дурак может задать вопросы, на которые и сто мудрецов не ответят

По мне, так желание ТС очевидно: он хочет не только устанавливать значения на выводах микросхемы, но и считывать их. Просто человек не понимает назначения 74HC595, на что можно было сразу ему указать.

ТС, если вам не хватает входов/выходов, то смотрите в сторону расширителей портов

nik182
Offline
Зарегистрирован: 04.05.2015

andriano пишет:

Нет, вопрос был про библиотеку. 

Про физическое считывание - это Вы сами придумали.

ТС писал: ... выключает необходимую ножку в одну строку, но в ней не реализованно считывание состояния ножки...

Включает физически. Как можно ещё понять считывание в одной фразе как не физически? Это вам любой связанный с железом человек скажет. Если вам ваше академическое образование не дает понимания работы с железом, может быть не надо лезть в ту область где ваши замечания похнут дилетанством? И это не первый раз. К теории притензий нет. 

SLKH
Offline
Зарегистрирован: 17.08.2015

Green пишет:

В 595-м по кругу не побегут. 

Могут и побежать, если считанное с Q7 значение подавать на DS.

Мало ли какие извращения бывают.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

nik182 пишет:

andriano пишет:

Нет, вопрос был про библиотеку. 

Про физическое считывание - это Вы сами придумали.

ТС писал: ... выключает необходимую ножку в одну строку, но в ней не реализованно считывание состояния ножки...

Включает физически. Как можно ещё понять считывание в одной фразе как не физически? Это вам любой связанный с железом человек скажет. Если вам ваше академическое образование не дает понимания работы с железом, может быть не надо лезть в ту область где ваши замечания похнут дилетанством? И это не первый раз. К теории притензий нет. 

Вот так, да?

Хорошо.

Будем воспринимать буквально - состояние ножки, так состояние ножки.

Предположим, ножку попытались установить в 1, но вот беда, - оказалось, она закорочена на землю. Пин честно выдает свои несколько мА, но оторвать ножку от земли не может. Прокручиваем регистр, подцепив на выход пин контроллера. Что получит контроллер? "1". А на самом деле на ножке "0". Где деньги, Зин?

Еще раз перечитаем, чего хочет ТС. Он хочет библиотеку для 595, которая бы не только могла установить заданный пин в нужное состояние, не трогая других пинов, но и узнать значение этого пина. О каком значении идет речь, о физическом или о логическом? Физическое 595 читать не может, он не 165. Значит, - только логическое. Т.е. физическое нам читать не нужно (хотя бы потому, что это физически невозможно), а нужно каким-либо образом узнать логическое. Для чего самый прямой метод - считать этот бит из копии, которая все равно есть в библиотеке. А крутиить регистр по кругу - метод явно кривой, т.к.:

- требует дополнительной аппаратной поддержки в виде лишнего свободного входа МК и нескольких сантиметров провода,

- требует лишних телодвижений, что выливается в дополнительные затраты как объема кода, так и времени выполнения.

nik182
Offline
Зарегистрирован: 04.05.2015

Мы в разных весовых категориях. Я дипломированный в СССР инженер электрик. С опытом работы больше 30 лет. По моим разработкам выпускаются несколько приборов анализа и проверки электросетей с микроконтроллерным управлением. Вы явно из другой области и там Вы выше как специалист. Мы с Вами уже обсуждали закон Ома. Из того обсуждения я сделал выводы для себя и стараюсь не учавствовать в обсуждениях где присутствуете Вы. Для меня ардуина это способ быстро проверить отдельные модули и алгоритмы. Оборудование я делаю на STM.

Давайте не строить домыслы а спросим у ТС что он имел в виду. Думаю на этом всё закончиться. 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

nik182 пишет:

Мы в разных весовых категориях... я сделал выводы для себя и стараюсь не учавствовать в обсуждениях где присутствуете Вы.

Вы правильно оцениваете ситуацию и сформулировали верную стратегию поведения в данных условиях, но, к сожалению, не следуете этой стратегии.

Печально.

nik182
Offline
Зарегистрирован: 04.05.2015

Я отвечаю только на ваши прямые наезды. К сожалению, и тогда про закон Ома, и сейчас вы не совсем в теме. Поэтому и мне печально видеть как вобщем то достаточно образованный человек вертится ужом защищая своё не совсем адекватное мнение. Ну вот что вам мешало дождаться разъяснения ТС, а потом либо втоптать меня в грязь, либо промолчать? 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Я не наезжаю, я обсуждаю задачу. Переход на личности осуществлен Вами в сообщении №21. А в теме я или нет, судить не Вам из-за , как Вы справедливо заметили, существенной разницы в уровне квалификации (в Вашей терминологии "разные весовые категории").

По поводу "дождаться разъяснений от ТС", в принципе - это один из возможных подходов. Согласен - достаточно рациональных. Но не единственный.

Другой подход - оперировать с тем, что уже есть. Т.е. исходить из того, что "разъяснений не будет". Такой подход не гарантирует достижение какого-либо практического результата, но с академической точки зрения может оказаться весьма интересным. А, учитывая, что после того, как ТС закинул вопрос, уже 24 поста его не видно (причем, такое поведение никак нельзя назвать уникальным), этот подход может оказаться единственно возможным.

В общем, обсуждать или нет, - личное дело каждого. А вот переходить на личности в любом случае не следует.

 

PS. Вы уже дважды упоминали закон Ома. Помню, что была такая дискуссия. Помню также, что участники форума высказывали различные мнения на этот счет. Что утверждали конкретно Вы, извините, уже не помню. Если этот вопрос представляет для Вас интерес, можно создать тему среди "Отвлеченных" и там расставить все точки над i.

Green
Offline
Зарегистрирован: 01.10.2015

SLKH пишет:

Green пишет:

В 595-м по кругу не побегут. 

Могут и побежать, если считанное с Q7 значение подавать на DS.

Мало ли какие извращения бывают.


Нормальные люди подают с Q7'. А так да, извращенцы всякие бывают, поэтому и получается всё через ж.

znatachek
Offline
Зарегистрирован: 08.03.2019

Я ТС - вы уж извините меня за тупые вопросы, не думал что тут такое развернётся.
Просто от безделья решил занять себя тем, в чем вообще не разбираюсь.

И пытаюсь по различным темкам что то поковырять.

Просто наткнулся на библиотеку Shift595
- она помогла мне без пониманимания работы 74hc595, включить / выключить конкретную ножку.

Диоды у меня подключены и я вижу что включаю и выключаю.

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

Поэтому я задался вопросом про библиотеку, которая не только может включить ножку Shifter.setRegisterPin(0, HIGH);
Но возможно, могла бы узнавать состояние ножки if(Shifter.getRegisterPin(0) == HIGH){...};

Без разбирательств в теме, пока тупо создал 8 переменных и записываю дополнительно состояние в них.

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

 

nik182
Offline
Зарегистрирован: 04.05.2015

Вопрос проясните пожалуйста. Вы хотели иметь возможность прочитать значение ножки из микросхемы? 

znatachek
Offline
Зарегистрирован: 08.03.2019

Я хотел бы иметь возможность что то вроде digitalRead() для ножек

nik182
Offline
Зарегистрирован: 04.05.2015

Ок. Спасибо. 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

znatachek пишет:

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

Поэтому я задался вопросом про библиотеку, которая не только может включить ножку Shifter.setRegisterPin(0, HIGH);
Но возможно, могла бы узнавать состояние ножки if(Shifter.getRegisterPin(0) == HIGH){...};

Без разбирательств в теме, пока тупо создал 8 переменных и записываю дополнительно состояние в них.

znatachek пишет:

Я хотел бы иметь возможность что то вроде digitalRead() для ножек

В этих двух постах Вы говорите о взаимоисключающих вещах:

1. Вам нужно знать, какой сигнал был записан в какую ножку. Для этого необязательно даже заводить дополнительные переменные - эта информация уже хранится в библиотеке и может быть оттуда добыта.

2. Вам нужно переключить ножку в режим INPUT и прочитать, какой сигнал подают на него внешние цепи. Микросхема 74HC595 этого принципиально не может, для этого служит микросхема 74HC165.

znatachek
Offline
Зарегистрирован: 08.03.2019

andriano пишет:

1. Вам нужно знать, какой сигнал был записан в какую ножку. Для этого необязательно даже заводить дополнительные переменные - эта информация уже хранится в библиотеке и может быть оттуда добыта.

Здорово! Как это делается ?

SLKH
Offline
Зарегистрирован: 17.08.2015

Green пишет:

SLKH пишет:

Green пишет:

В 595-м по кругу не побегут. 

Могут и побежать, если считанное с Q7 значение подавать на DS.

Мало ли какие извращения бывают.


Нормальные люди подают с Q7'. А так да, извращенцы всякие бывают, поэтому и получается всё через ж.

нормальные люди не считывают в цикле с регистра то значение, которое они туда затолкали несколькими (милли)секундаит ранее. А программное инвертирование Q7 придаст некий дополнительный изыск всей камасутре.

nik182
Offline
Зарегистрирован: 04.05.2015

andriano пишет:

nik182 пишет:

Да. Именно так все ноги пробегут по кругу. Но это плата за считывание и это надо иметь в виду. Поэтому согласен с тем что лучше не читать а помнить. Но вопрос был про прочитать. 

Нет, вопрос был про библиотеку. 

Про физическое считывание - это Вы сами придумали.

Возможно Вы не понимаете, но именно этим постом Вы меня обидели, тоненко, интеллигентненко пройдясь по моим умственным способностям. Вся остальная дискуссия результат этого поста. Так что не надо с больной головы на здоровую по поводу перехода на личности. Я вижу такие наезды в Ваших постах не только на меня и потом не стоит удивляться что в топиках возникают срачи, а Вы вроде и ни причём.

SLKH
Offline
Зарегистрирован: 17.08.2015

znatachek пишет:

Просто наткнулся на библиотеку Shift595
- она помогла мне без пониманимания работы 74hc595, включить / выключить конкретную ножку.

это называется "медвежья услуга".  Лучше бы ты на нее не натыкался, а прочитал http://arduino.ru/Tutorial/registr_74HC595, чтобы было понимание работы.

========

/2 если библиотека эта: https://sites.google.com/site/shift595arduino/downloads , то желательно её удалить и больше никогла не скачивать.

 

 

znatachek
Offline
Зарегистрирован: 08.03.2019

SLKH пишет:

/2 если библиотека эта: https://sites.google.com/site/shift595arduino/downloads , то желательно её удалить и больше никогла не скачивать.

Эта xD

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

znatachek пишет:

andriano пишет:

1. Вам нужно знать, какой сигнал был записан в какую ножку. Для этого необязательно даже заводить дополнительные переменные - эта информация уже хранится в библиотеке и может быть оттуда добыта.

Здорово! Как это делается ?

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

 

Upd: прислушайтесь к сообщению №34, 595 регистр достаточно простая штука, чтобы начать разбираться  с используемой периферией именно с него.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

nik182 пишет:

Возможно Вы не понимаете, но именно этим постом Вы меня обидели...

В таком случае приношу Вам свои искренние извинения. Обидеть ни в коей мере не хотел.