{"id":257,"date":"2017-11-23T00:17:32","date_gmt":"2017-11-22T23:17:32","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=257"},"modified":"2017-12-30T19:24:44","modified_gmt":"2017-12-30T18:24:44","slug":"29-ps2_keyboard-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/29-ps2_keyboard-library-stm32f4\/","title":{"rendered":"29-PS2_Keyboard-Library (STM32F4)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/28-ext_interrupt-library-stm32f4\/\" title=\"28-Ext_Interrupt-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 28-Ext_Interrupt-Library (STM32F4)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/30-ps2_mouse-library-stm32f4\/\" title=\"30-PS2_Mouse-Library (STM32F4)\">30-PS2_Mouse-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Mit dieser Library kann eine normale PS2-Tastatur an die STM32F4-CPU angeschlossen werden. Im Moment habe ich nur die Empfangsrichtung implementiert (die LEDs k\u00f6nnen also nicht gesteuert werden)<\/p>\n<p>Zum Betrieb wird eine externe Interrupt-Leitung und ein normaler GPIO-Pin ben\u00f6tigt. Ich habe PB7 und PA8 am Discovery-Board benutzt.<\/p>\n<p>Die Tastatur muss nach dem Init gepollt werden und liefert den Ascii-Code der gedr\u00fcckten Taste zur\u00fcck. Alle Tasten die benutzt werden sollen, m\u00fcssen im C-File in einer Tabelle eingetragen werden. (Im Moment ist als Umschalttaste nur SHIFT implementiert)<br \/>\n<em>Hinweis : Die Tastatur braucht nach PowerOn ca 500ms bevor sie bereit ist.<\/em><\/p>\n<p>Die Tastatur l\u00e4uft eigentlich mit +5V und br\u00e4uchte vermutlich Pegelwandler auf 3,3V<br \/>\n(ich habe sie einfach an +3,3V angeschlossen das funktioniert bei mir auch <img decoding=\"async\" class=\"wp-smiley\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":-)\" \/><\/p>\n<p>Wegen der Interrupt-Leitung wird auch die Library \u201cSTM32_UB_EXT_INT5TO9\u2033 ben\u00f6tigt.<\/p>\n<p><strong>PS2-Steckerbelegung :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/04\/ps2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1214\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/04\/ps2-203x300.jpg\" alt=\"ps2\" width=\"203\" height=\"300\" \/><\/a><\/p>\n<p><strong>Benutzte Pins :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Clock an PB7 (per externem Interrupt-7)\r\nData an PA8<\/pre>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : GPIO\r\nBenutzte Librarys : STM32_UB_EXT_INT5TO9<\/pre>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void UB_PS2_Key_Init(void);        \/\/ zum init der Tastatur\r\nuint8_t UB_PS2_Key_GetAscii(void); \/\/ zum auslesen des Tastatur-Puffers<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 02.04.2013\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      : STM32F4\r\n\/\/ IDE      : CooCox CoIDE 1.7.0\r\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE\r\n\/\/ Funktion : Demo der PS2-Keyboard-Library\r\n\/\/ Hinweis  : Diese zwei Files muessen auf 8MHz stehen\r\n\/\/              \"cmsis_boot\/stm32f4xx.h\"\r\n\/\/              \"cmsis_boot\/system_stm32f4xx.c\"\r\n\/\/--------------------------------------------------------------\r\n\r\n#include \"main.h\"\r\n#include \"stm32_ub_ps2_key.h\"\r\n#include \"stm32_ub_led.h\"\r\n\r\nint main(void)\r\n{\r\n  uint8_t ascii_wert;\r\n\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  \/\/ init der LEDs\r\n  UB_Led_Init();\r\n\r\n  \/\/ init der PS2-Tastatur\r\n  UB_PS2_Key_Init();\r\n\r\n  while(1)\r\n  {\r\n    \/\/ PS2-Tastatur abfragen\r\n    ascii_wert=UB_PS2_Key_GetAscii();\r\n    \/\/ Gr\u00fcne LED mit der Taste 'a' toggeln\r\n    if(ascii_wert=='a') UB_Led_Toggle(LED_GREEN);\r\n\r\n    \/\/ Rote LED mit der Taste 'A' toggeln\r\n    if(ascii_wert=='A') UB_Led_Toggle(LED_RED);\r\n\r\n    \/\/ Blaue LED mit der Taste 'F1' toggeln\r\n    if(ascii_wert==0x81) UB_Led_Toggle(LED_BLUE);\r\n\r\n    \/\/ Orange LED mit jeder Taste toggeln\r\n    if(ascii_wert!=0) UB_Led_Toggle(LED_ORANGE);\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/04\/ub_stm32f4_ps2_key_v100.zip\">ub_stm32f4_ps2_key_v100<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/04\/Demo_29_PS2_KEY.zip\">Demo_29_PS2_KEY<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit dieser Library kann eine normale PS2-Tastatur an die STM32F4-CPU angeschlossen werden. Im Moment habe ich nur die Empfangsrichtung implementiert (die LEDs k\u00f6nnen also nicht gesteuert werden) Zum Betrieb wird eine externe Interrupt-Leitung und ein normaler GPIO-Pin ben\u00f6tigt. Ich habe &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/29-ps2_keyboard-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":29,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[9,65,7],"class_list":["post-257","page","type-page","status-publish","hentry","category-stm32f4","tag-library","tag-ps2-tastatur","tag-stm32f4"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/comments?post=257"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/257\/revisions"}],"predecessor-version":[{"id":1567,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/257\/revisions\/1567"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/144"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}