Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Отладочные платы » SK-NUC976
SK-NUC976 сконфигурировать GPIO как кнопки
sasamy
Добавлено 27.06.2017 15:56 Сообщение: 11
sasamy
4.71

Пункты: 90463
Регистрация: 14.08.2009
Цитата

получить нажатие не прибегая к чтению из /dev... или /sys... ?


если всё правильно прописано и пин переключен на GPIO ничего читать специально не нужно - это обычное устройство ввода как любая клавиатура
Спуститься к концу Подняться к началу
Персональная информация
skru
Добавлено 28.06.2017 11:42 Редактировалось 28.06.2017 11:46 Сообщение: 12
skru
0

Пункты: 1134
Регистрация: 28.12.2011
Цитата
если подключен экран и код кнопки больше 0x20, то должен выводится на экран в обычную консоль нет..
и
Цитата
если всё правильно прописано и пин переключен на GPIO ничего читать специально не нужно - это обычное устройство ввода как любая клавиатура

А вот тут мне совсем не понятно, никакого экрана нет, есть плата и две GPIO-кнопки, одна дает символ "1", другая "2". Счетчик прерываний по обеим кнопкам работает, в /dev/input/event1 идет какой-то вывод. Банальная программа с циклом getchar печатает только то что я клацаю на клавиатуре, а где же мои GPIO-кнопки, с них я то же хочу получить назначенные символы?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 28.06.2017 12:34 Редактировалось 28.06.2017 12:37 Сообщение: 13
sasamy
4.71

Пункты: 90463
Регистрация: 14.08.2009
Покажите что прописали в

arch/arm/mach-nuc970/dev.c

насколько помню у меня работало раньше и в консоли и везде - не важно есть экран или нет. Покажите еще что у вас в /etc/inittab - может у вас getty перехватывает ввод с кнопок, хотя если с клавиатуры ввод работает то на вряд ли.
Спуститься к концу Подняться к началу
Персональная информация
skru
Добавлено 28.06.2017 13:14 Редактировалось 28.06.2017 13:20 Сообщение: 14
skru
0

Пункты: 1134
Регистрация: 28.12.2011
К текущему моменту я уже 8 кнопок накидал.

# dmesg | grep input
input: NUC970 TouchScreen(ADC) as /devices/platform/nuc970-adc/input/input0
input: gpio-keys as /devices/platform/gpio-keys/input/input1

# cat /dev/input/event1
‡иХAІ9 ‡иХAІ9‡иХA;T
‡иХA;T
‰иХAІИ ‰иХAІИ‰иХArр
‰иХArр
^C

# cat /proc/interrupts
CPU0
13: 0 - nuc970-lcd
15: 0 - nuc970rtc
16: 14793 - nuc970-timer0
18: 0 - nuc970adc
19: 32 - nuc970-emac0
21: 0 - nuc970-emac0
23: 0 - ehci_hcd:usb1
24: 0 - ohci_hcd:usb2
27: 17 - mmc0
29: 73 - nuc970-udc
34: 0 - nuc970-ge2d
36: 368 - ttyS0
51: 6 - nuc970-spi0
448: 8 GPIO-IRQ key_8
449: 0 GPIO-IRQ key_2
458: 0 GPIO-IRQ key_5
459: 0 GPIO-IRQ key_4
460: 0 GPIO-IRQ key_3
461: 0 GPIO-IRQ key_1
462: 0 GPIO-IRQ key_6
548: 0 GPIO-IRQ key_7
Err: 0

# cat /etc/inittab
# /etc/inittab
#
# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
#
# Note: BusyBox init doesn't support runlevels. The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use
# sysvinit.
#
# Format for each entry: <id>:<runlevels>:<action>:<process>
#
# id == tty to run on, or empty for /dev/console
# runlevels == ignored
# action == one of sysinit, respawn, askfirst, wait, and once
# process == program to run

# Startup the system
::sysinit:/bin/mount -t proc proc /proc
::sysinit:/bin/mount -o remount,rw /
::sysinit:/bin/mkdir -p /dev/pts
::sysinit:/bin/mkdir -p /dev/shm
::sysinit:/bin/mount -a
::sysinit:/bin/hostname -F /etc/hostname
# now run any rc scripts
::sysinit:/etc/init.d/rcS

# Put a getty on the serial port
console::respawn:/sbin/getty -L console 0 linux # GENERIC_SERIAL
ttyGS0::respawn:/sbin/getty -L ttyGS0 115200 linux # usb
# tty1::respawn:/sbin/getty 38400 tty1 linux # fb

# Stuff to do for the 3-finger salute
#::ctrlaltdel:/sbin/reboot

# Stuff to do before rebooting
::shutdown:/etc/init.d/rcK
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r

ссылка на dev.c (строка 1380)
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 28.06.2017 23:27 Сообщение: 15
Jury093
4.5

Пункты: 54278
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Цитата
если подключен экран и код кнопки больше 0x20, то должен выводится на экран в обычную консоль нет..
и
Цитата
если всё правильно прописано и пин переключен на GPIO ничего читать специально не нужно - это обычное устройство ввода как любая клавиатура

А вот тут мне совсем не понятно, никакого экрана нет, есть плата и две GPIO-кнопки

что ж тут непонятного? еще раз, нет экрана - нет вывода..
если телепатировать, то вы хотите кнопки вывести в консоль - простого способа нет. точка.
зачем вам это надо - не знаю.. проще всего написать примитивного демона, который читает из /dev/input/eventX и транслирует в требуемый /dev/ttyX или поискать готовую программу/пакет с нужным функционалом

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
skru
Добавлено 29.06.2017 11:10 Редактировалось 29.06.2017 11:12 Сообщение: 16
skru
0

Пункты: 1134
Регистрация: 28.12.2011
т.е. система не перенаправляет события gpio-keys в стандартный поток ввода stdin, и куда же она их девает?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 29.06.2017 12:10 Сообщение: 17
sasamy
4.71

Пункты: 90463
Регистрация: 14.08.2009
Цитата

если телепатировать, то вы хотите кнопки вывести в консоль - простого способа нет


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

-> Device Drivers
-> Graphics support
<*> Support for frame buffer devices --->
<*> Virtual Frame Buffer support (ONLY FOR TESTING!)

cейчас уже не помню был ли у меня какой-то экран включен в ядре когда тестил у себя кнопки gpio
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 29.06.2017 12:16 Сообщение: 18
Jury093
4.5

Пункты: 54278
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
если дело в отсутствии устройства вывода для консоли то проще всего включить в ядре виртуальный фреймбуфер

хм.. не знал.. при случае попробую потестить..
спасибо

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 29.06.2017 12:16 Сообщение: 19
Jury093
4.5

Пункты: 54278
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
если дело в отсутствии устройства вывода для консоли то проще всего включить в ядре виртуальный фреймбуфер

хм.. не знал.. при случае попробую потестить..
спасибо

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-NUC976