Разработка 74HC595-шилда

12sd
Offline
Зарегистрирован: 04.08.2011

У меня есть одна интресная идея. Можно разработать шилд на этом сдвиговом регистре для увеличения 

i/o портов. Единственный вопрос - как перегрузить станд. функции digitalWrite / digitalRead, чтобы

пользователь шилда пользовался новыми портами, как и обычными?

Короче: как перегрузить (вернее, заменить) станд. функции?

leshak
Offline
Зарегистрирован: 29.09.2011

 Никак. Тут все-таки не полноценный C++, а очень куцый "огрызок". Не те мощностя что-бы полноценную объектную модель тащить и что-то "перегружать.

Более того, даже в "полноценных" языках понятие "перегрузки" относится к методам/функциям класса, а digitalRead, digitalWrite это функции из "мира процедурной парадигмы". Если бы их можно было "перегружать", то поверте, это был бы ад.

Если хочет более высокоуровневый язык, то смотрите в сторону netduino и C#.

Если же вернуться к ардуине, то пути два:

  1. Сделать свой "бранч" библиотеки и нахачить их "как хочется" (но потом постоянно следить/обновлять когду будут свежие версии оригинальной библиотеки выходить)
  2. или
  3. Объявить свои digitalRead2, digitalWrite2 и пользовать их. Но не совсем понятно "зачем". "Отдельные библиотеки" для этого чипа вроде и так уже существуют.
  4. Есть конечно еще и фантастический вариант: так как весь проект OpenSource можете попытся сами реализовать, в компиляторе, поддержку перегрузки функций.

 

 

12sd
Offline
Зарегистрирован: 04.08.2011

leshak пишет:

 Никак. Тут все-таки не полноценный C++, а очень куцый "огрызок". Не те мощностя что-бы полноценную объектную модель тащить и что-то "перегружать.

Более того, даже в "полноценных" языках понятие "перегрузки" относится к методам/функциям класса, а digitalRead, digitalWrite это функции из "мира процедурной парадигмы". Если бы их можно было "перегружать", то поверте, это был бы ад.

Если хочет более высокоуровневый язык, то смотрите в сторону netduino и C#.

Если же вернуться к ардуине, то пути два:

  1. Сделать свой "бранч" библиотеки и нахачить их "как хочется" (но потом постоянно следить/обновлять когду будут свежие версии оригинальной библиотеки выходить)
  2. или
  3. Объявить свои digitalRead2, digitalWrite2 и пользовать их. Но не совсем понятно "зачем". "Отдельные библиотеки" для этого чипа вроде и так уже существуют.
  4. Есть конечно еще и фантастический вариант: так как весь проект OpenSource можете попытся сами реализовать, в компиляторе, поддержку перегрузки функций.

Я выберу, пожалуй, 3-й путь )

А что, уже есть такие шилды? Просто лично я пока не натыкался.

whoim
Offline
Зарегистрирован: 03.11.2011

 Вопрос в стиле деревни: чем можно заменить 74HC595, для организации цифровых выходов, желательно из отечественных? Возможно, сразу на 16 разрядов?

whoim
Offline
Зарегистрирован: 03.11.2011

 сам себе отвечу: http://easyelectronics.ru/sdvigovyj-registr.html

КM555ИР8

kikia99
Offline
Зарегистрирован: 22.03.2011

наверно это проще все реализовать по средством CDLP микросхем + собственная библиотека  только возникае вопросс а ЗАЧЕМ ? кому нужен дуино с 100 портов ? 

Скажу даж так в итоге можно получить много портов пазширить память и многое другое порты интерфейсы и как итог вы получите катлету дорогую при том что изобритете чип arm  в котором это все ужн есть стоит копейки и размером с ноготь 

whoim
Offline
Зарегистрирован: 03.11.2011

kikia99 пишет:

наверно это проще все реализовать по средством CDLP микросхем + собственная библиотека  только возникае вопросс а ЗАЧЕМ ? кому нужен дуино с 100 портов ? 

Скажу даж так в итоге можно получить много портов пазширить память и многое другое порты интерфейсы и как итог вы получите катлету дорогую при том что изобритете чип arm  в котором это все ужн есть стоит копейки и размером с ноготь 

 

мне нужен lcd-дисплей который займет 2,5 порта и два десятка входов-выходов

зачем мне арм? атмега и три-четыре микрухи

kikia99
Offline
Зарегистрирован: 22.03.2011

если не секрет что это за lcd ? ну хотябы за тем что он мошнее и дешевли вот например кортекс м3 http://www.starterkit.ru/html/index.php?name=shop&op=view&id=66  хороший камень память интерфейсы все в одном 

 

step962
Offline
Зарегистрирован: 23.05.2011

Стандартный TFT LCD with TouchScreen требует 16 линий для чтения-записи данных, 2 линии для разрешения чтения и записи соответственно, 3 линии для обеспечения SPI-протокола (по ним передаются команды, они заведуют синхронизацией, ну и еще кое что по мелочи), 3 линии для работы с микроконтроллером сенсорного экрана (тоже SPI). Некоторые линии удается использовать совместно, но не слишком много. Так что можно и три порта полностью задействовать. А можно с этим же дисплеем работать в 8-битовом режиме и обойтись двумя портами.

 

А по поводу LPC1788 и прочих STM32: круто, но не практично.

Пока фантики типа приведенных на описании по ссылке - да, впечатляет. А как дойдет до практики, так и тут необходим все та же обвеска, чтобы можно было сделать что-то большее, чем помигать одним-двумя светодиодами. А 32-битовость и 72-мегагерцовость для очень многих задач - это стрельба из пушки по воробьям.

И ради таких вот сомнительных (а для самодельщика часто просто ненужных) удовольствий уходить и хорошо документированной системы? Попробуйте найти Datasheet или Application Notes для этих монстров, попробуйте найти более-менее информативный форум, попробуйте найти средства разработки для чайников, подобные Arduino IDE...

Найдете - тогда можно подумать о переходе.

Да и то - к тому времени появится что-то еще более сносящее голову и очередной энтузиаст будет говорить "да ну эту CORTEX, вот XXX это да, это сила". И что, опять переходить на новую платформу?

whoim
Offline
Зарегистрирован: 03.11.2011

  А можно с этим же дисплеем работать в 8-битовом режиме и обойтись двумя портами

далеко не все умеют..

если не секрет что это за lcd

конкретно текущий - на ST7920, помоему. Следом пойдет как  step962 описал))

step962
Offline
Зарегистрирован: 23.05.2011

whoim пишет:

если не секрет что это за lcd

Дисплеи 240х320х262Кцвета с контроллерами HY32D, ILI9325. Последний контроллер кроме 16-битного режима еще 6-битный (шести!) поддерживает - с одновременным расширением RGB-палитры c 16 бит до 18 (но при этом графическая информация передается за 3 цикла).

kikia99
Offline
Зарегистрирован: 22.03.2011

наверно я вас расстрою  но  http://arduino.cc/blog/2011/09/17/arduino-launches-new-products-in-maker-faire/

а так то да я знаю многих самодельщиков кто до сих пор многие вещи делает на транзюках и еще как 

по поводу книг и инфы вы сильно ошибаетесь их МОРЕ  

kikia99
Offline
Зарегистрирован: 22.03.2011

  ST7920     Support 8-bit, 4-bit and serial bus MPU interface

думаю можно и одним портом парой таких упровлять 

whoim
Offline
Зарегистрирован: 03.11.2011

 думаю можно и одним портом парой таких упровлять

библиотеку под него одну только нашел, и она только 8бит умеет ((

kikia99
Offline
Зарегистрирован: 22.03.2011
whoim
Offline
Зарегистрирован: 03.11.2011

ухтыжка, буду читать, спасибо!

12sd
Offline
Зарегистрирован: 04.08.2011

 я тут поискал. лучше на i2c расширители портов посадить. дороже, но работает круче, и посадить можно overмного