Кнопка выключения
-
Мне кажется, что обработчик прерываний нужен только для уменьшения нагрузки на процессор - это так ?
Тогда с тем - же успехом можно как - то использовать команду nice .
P.s. "вешаем на кнопку poweroff" - КАК ? -
Пожалуйста, kukabu, сделайте инструкцию.
-
Ну тогда не знаю. Нужно подключить кнопку и написать программу или скрипт. Ничего конкретнее подсказать не могу
-
инструкции нет, читайте статьи "GPIO для чайников", пишите сами
nice не снимет нагрузки с проца, в случае поллинга, ваш демон будет просыпаться в любом случае чтоб проверить состояние gpio, в случае прерываний, демон проснётся только когда поступит это самое прерывание, для подробностей гуглим polling vs interrupt
"вешаем на кнопку poweroff" - КАК ? типа вот так system("poweroff"); остальной код есть в статьях
-
Отлично! Куда проще сказать пишите сами...
Я даже не знаю, как это вообще программно может выглядеть... -
Ну позвольте, все же это система. Винду ведь вы на-горячую из розетки не выдергивате? Надо поменять идеологию. Это не мс-дос. Завершайте работу корректно. Или смиритесь с ошибками.
Что-то вроде "корректное завершение работы при исчезновении питания" действительно придется писать самому, да еще аккумулятор потребуется. Но за то это будет готовое продаваемое решение.
-
Я - же и предлагаю вначале нажать на кнопку, подождать некоторое время, а потом ,когда заморгает светодиод, озночающий корректное завершение работы, выключить питание.
-
Меня просто напрягает политика kukabu ...
-
Ну, скорее всего, это будет отдельный блок, к которому подключается питание. Он будет обрабатывать падение питания, при этом поддерживая питание пирожка конденсатором или аккумулятором. Пирожок будет получать команду на завершение работы и делать sudo halt. После этого уже не важно, выдернем мы сей блок из пирожка или оставим все как есть, пока аккум/кондер не разрядится. Понятно, что такое устройство нужно прописать в системе.
Некий аналог smartUPS на нынешних виндах. По крайней мере, я так это вижу. Отмечу, если блок получится компактным и легким в установке, с удовольствием куплю или повторю поделку сам. Ведь оно может даже отправить сообщение типа "На Raspberry Pi #12 пропало напряжение" и потом не придется тупить, почему пирожок перестал пинговаться.
-
http://www.masterkit.ru/info/magshow.php?num=693
А вот готовое решение. 590 рублей))) -
dimonoid,
- готового решения я не видел, видел бы кинул линк
- я довольно полно указал возможности решения вашей проблемы, полному чайнику на пару часов работы + опыт
- что вы от меня хотите? чтоб я сел и сделал за вас? извините, такого не будет.
Anton, как то излишне сложно, да и дорого
-
Ладно, спасибо хотя-бы за идею.
-
Интересная идея, надо подумать. Мне бы до платформы пригодилась. К примеру АКБ садится он сам едет по пропитанной команде на док станцию, как то так. Или информирует меня как то.
-
Код для кнопки выключения. Кнопка подключается к портам Р1_5 и Р1_6.
#include
#define PIN_IN RPI_V2_GPIO_P1_05
int main()
{
if (!bcm2835_init())
return 1;
bcm2835_gpio_fsel(PIN_IN, BCM2835_GPIO_FSEL_INPT);
while(bcm2835_gpio_lev(PIN_IN))
{
}
system("poweroff");
return (bcm2835_close ());
}Компиляция
gcc -o имя_проги имя_проги.c -lrt -lbcm2835Запуск програмки
sudo ./имя_проги -
Только проц на 100% грузит)