{"id":1389,"date":"2017-12-16T18:00:42","date_gmt":"2017-12-16T17:00:42","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=1389"},"modified":"2017-12-31T00:03:35","modified_gmt":"2017-12-30T23:03:35","slug":"02-button-library-stm32f746","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=1389","title":{"rendered":"02-Button-Library (STM32F746)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=1387\" title=\"01-LED-Library (STM32F746)\"><span class=\"meta-nav\">\u2190<\/span> 01-LED-Library (STM32F746)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=1391\" title=\"03-SDRAM-Library (STM32F746)\">03-SDRAM-Library (STM32F746) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p><strong>Beschreibung :<\/strong><\/p>\n<p>Auf dem Discovery Board gibt es einen (blauen) Button der vom User benutzt werden kann.\u00a0Mit dieser Library kann der Status vom Button abgefragt werden.<\/p>\n<p><strong>Module :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">stm32_ub_button.h, stm32_ub_button.c\r\n<\/pre>\n<p><strong>Includes :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">#include \"stm32_ub_system.h\"\r\n#include \"stdbool.h\";\r\n<\/pre>\n<p><strong>Enumerationen und Defines:<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ Liste aller Buttons\r\n\/\/ (keine Nummer doppelt und von 0 beginnend)\r\n\/\/--------------------------------------------------------------\r\ntypedef enum \r\n{\r\n  BTN_USER = 0    \/\/ BTN auf dem STM32F746-Discovery\r\n}BUTTON_NAME_t;\r\n\r\n\/\/--------------------------------------------------------------\r\n\/\/ Status eines Buttons\r\n\/\/--------------------------------------------------------------\r\ntypedef enum {\r\n  BTN_RELEASED = 0,  \/\/ Button losgelassen\r\n  BTN_PRESSED        \/\/ Button gedrueckt\r\n}BUTTON_STATUS_t;\r\n\r\n\/\/--------------------------------------------------------------\r\n\/\/ Struktur eines Buttons\r\n\/\/--------------------------------------------------------------\r\ntypedef struct {\r\n  BUTTON_NAME_t BUTTON_NAME;  \/\/ Name\r\n  GPIO_TypeDef* BUTTON_PORT;  \/\/ Port\r\n  const uint16_t BUTTON_PIN;  \/\/ Pin\r\n  const uint32_t BUTTON_R;    \/\/ Widerstand\r\n  uint8_t BUTTON_AKT;         \/\/ Istwert\r\n  uint32_t BUTTON_TIC;        \/\/ Timerwert\r\n}BUTTON_t;\r\n\r\n\/\/--------------------------------------------------------------\r\n#define   BUTTON_INTERVALL    50   \/\/ 50ms zum entprellen\r\n<\/pre>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void UB_Button_Init(void);                               \/\/ zum init der Buttons\r\nBUTTON_STATUS_t UB_Button_Read(BUTTON_NAME_t btn_name);  \/\/ um einen Button auszulesen (nicht entprellt)\r\nbool UB_Button_OnPressed(BUTTON_NAME_t btn_name);        \/\/ true, wenn der Button bet\u00e4tigt ist (entprellt)\r\nbool UB_Button_OnClick(BUTTON_NAME_t btn_name);          \/\/ true, beim dr\u00fccken vom Button (entprellt)\r\nbool UB_Button_OnRelease(BUTTON_NAME_t btn_name);        \/\/ true, beim loslassen vom Button (entprellt)\r\n<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 12.07.2015\r\n\/\/ Version  : 1.0\r\n\/\/ Autor    : UB\r\n\/\/ EMail    : mc-4u(@)t-online.de\r\n\/\/ Web      : www.mikrocontroller-4u.de\r\n\/\/ CPU      : STM32F746\r\n\/\/ Board    : STM32F746-Discovery-Board\r\n\/\/ IDE      : OpenSTM32\r\n\/\/ GCC      : 4.9 2015q2\r\n\/\/ Module   : CubeHAL\r\n\/\/ Funktion : Hauptprogramm\r\n\/\/--------------------------------------------------------------\r\n\r\n\r\n#include \"stm32_ub_system.h\"\r\n#include \"stm32_ub_led.h\"\r\n#include \"stm32_ub_button.h\"\r\n\r\n\r\nint main(void)\r\n{\r\n  \/\/ init vom System\r\n  UB_System_Init();\r\n\r\n  \/\/ init der LED\r\n  UB_Led_Init();\r\n  \/\/ init vom Button\r\n  UB_Button_Init();\r\n\r\n  while(1) {\r\n    HAL_Delay(100);\r\n    \/\/ Test ob Button gedr\u00fcckt ist\r\n    if(UB_Button_Read(BTN_USER)==BTN_PRESSED) {\r\n      UB_Led_On(LED_GREEN); \/\/ gruene LED einschalten\r\n    }\r\n    else {\r\n      UB_Led_Off(LED_GREEN); \/\/ gruene LED ausschalten\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p>02 = Button :\u00a0<a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/07\/f746_button_v100.zip\">f746_button_v100<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Beschreibung : Auf dem Discovery Board gibt es einen (blauen) Button der vom User benutzt werden kann.\u00a0Mit dieser Library kann der Status vom Button abgefragt werden. Module : stm32_ub_button.h, stm32_ub_button.c Includes : #include &#8222;stm32_ub_system.h&#8220; #include &#8222;stdbool.h&#8220;; Enumerationen und Defines: \/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=1389\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":182,"menu_order":2,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[130],"tags":[91,9,105],"class_list":["post-1389","page","type-page","status-publish","hentry","category-stm32f746","tag-button","tag-library","tag-stm32f746"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/1389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1389"}],"version-history":[{"count":7,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/1389\/revisions"}],"predecessor-version":[{"id":1543,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/1389\/revisions\/1543"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/182"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}