{"id":207,"date":"2017-11-22T23:49:38","date_gmt":"2017-11-22T22:49:38","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=207"},"modified":"2023-03-04T17:11:29","modified_gmt":"2023-03-04T16:11:29","slug":"04-digin-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/04-digin-library-stm32f4\/","title":{"rendered":"04-DigIn-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\/03-digout-library-stm32f4\/\" title=\"03-DigOut-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 03-DigOut-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\/05-adc-single-conversation-stm32f4\/\" title=\"05-ADC-Single-Conversation (STM32F4)\">05-ADC-Single-Conversation (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>diese Library dient zum auslesen von Digital Eingangsspins der CPU<\/p>\n<p>die Pins die benutzt werden sollen, m\u00fcssen im H-File deklariert und im C-File den entsprechenden Port-Pins zugeordnet werden.<\/p>\n<p>f\u00fcr jeden Pin kann auch der Eingangswiderstand definiert werden<br \/>\n(keiner, Pull-Up, Pull-Down)<\/p>\n<p>Ab der Version 1.2 kann im H-File eingestellt werden ob auch die entprellten Funktionen per Timer benutzt werden sollen. Dann k\u00f6nnen die Funktionen \u201cOnHiLevel\u201d , \u201cOnHiEdge\u201d und \u201cOnLoEdge\u201d benutzt werden.<\/p>\n<p>Diese Funktionen liefern ein \u201ctrue\u201d wenn das Ereignis eingetreten ist.<\/p>\n<p>im Beispiel wurden 4 Pins als Digital-In definiert<\/p>\n<pre lang=\"c\" line=\"1\">PD3,PD6,PD11,PE4<\/pre>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : GPIO, (TIM, MISC)\r\nBenutzte Librarys : keine<\/pre>\n<p><strong>Enumerationen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef enum \r\n{\r\n  DIN_PD3 = 0,    \/\/ PD3-Pin\r\n  DIN_PD6 = 1,    \/\/ PD6-Pin\r\n  DIN_PD11 = 2,   \/\/ PD11-Pin\r\n  DIN_PE4 = 3     \/\/ PE4-Pin\r\n}DIN_NAME_t;<\/pre>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void UB_DigIn_Init(void);                    \/\/ zum init der Digital-In-Pins\r\nBitAction UB_DigIn_Read(DIN_NAME_t dig_pin); \/\/ um einen Pin auszulesen (nicht entprellt)\r\nbool UB_DigIn_OnHiLevel(DIN_NAME_t dig_pin); \/\/ true, wenn ein Hi-Pegel anliegt (entprellt)\r\nbool UB_DigIn_OnHiEdge(DIN_NAME_t dig_pin);  \/\/ true, bei einer Hi-Flanke (entprellt)\r\nbool UB_DigIn_OnLoEdge(DIN_NAME_t dig_pin);  \/\/ true, bei einer Lo-Flanke (entprellt)<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 16.02.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 DigIn-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_dig_in.h\"\r\n#include \"stm32_ub_dig_out.h\"\r\n\r\nint main(void)\r\n{\r\n  BitAction wert;\r\n\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  UB_DigIn_Init();  \/\/ init aller DigIn-Pins\r\n  UB_DigOut_Init(); \/\/ init aller DigOut-Pins\r\n\r\n  while(1)\r\n  {\r\n    \/\/ Pegel an PD3 lesen und an PB2 ausgeben\r\n    wert=UB_DigIn_Read(DIN_PD3);\r\n    UB_DigOut_Pin(DOUT_PB2,wert);\r\n    \/\/ Pegel an PD6 lesen und an PB7 ausgeben\r\n    wert=UB_DigIn_Read(DIN_PD6);\r\n    UB_DigOut_Pin(DOUT_PB7,wert);\r\n    \/\/ Pegel an PD11 lesen und an PC6 ausgeben\r\n    wert=UB_DigIn_Read(DIN_PD11);\r\n    UB_DigOut_Pin(DOUT_PC6,wert);\r\n    \/\/ Pegel an PE4 lesen und an PC13 ausgeben\r\n    wert=UB_DigIn_Read(DIN_PE4);\r\n    UB_DigOut_Pin(DOUT_PC13,wert);\r\n  }\r\n}\r\n<\/pre>\n<p><strong>Beschreibung :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Funktion :\r\n-die GPIO-Pins PB2, PB7, PC6, PC13 werden als Ausgang definiert (in der LIB)\r\n-die GPIO-Pins PD3, PD6, PD11, PE4 werden als Eingang definiert (in der LIB)\r\n-die Pegel an den Eing\u00e4ngen werden eingelesen und an\r\n den Ausg\u00e4ngen wieder ausgegeben\r\n\r\nLibrarys die f\u00fcr das Beispiel benutzt werden :\r\n-stm32_ub_dig_in\r\n-stm32_ub_dig_out\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/10\/ub_stm32f4_digin_v102.zip\">ub_stm32f4_digin_v102<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/10\/Demo_04_DigIn.zip\">Demo_04_DigIn<\/a><\/p>\n<h3 id=\"comments-title\">15 Antworten auf <em>04-DigIn-Library (STM32F4)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-862\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-862\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">6. Oktober 2013 um 11:58<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo Uwe,<br \/>\nk\u00f6nntest du die Funktion nicht noch um eine Entprellung erweitern? Am besten mit einstellbarer Zeit.<\/p>\n<p>Gr\u00fc\u00dfe<\/p>\n<p>J\u00f6rg<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-863\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-863\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">6. Oktober 2013 um 12:01<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>ja, kann ich machen. Dann geht halt ein Timer daf\u00fcr drauf.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-864\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-864\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">6. Oktober 2013 um 15:43<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Bei 14 St\u00fcck kann man das glaube ich verkraften <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_wink.gif\" alt=\";)\" \/><br \/>\nM\u00f6glichst nicht 3 und 4, die benutze ich gerade schon in meiner Anwendung <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_wink.gif\" alt=\";)\" \/><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-865\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-865\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">7. Oktober 2013 um 18:21<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>die Version 1.2 benutzt jetzt Timer-7 zum einlesen der Pins. Im H-File kann das Intervall eingestellt werden (im Moment 50ms)<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-867\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-867\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">8. Oktober 2013 um 22:44<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Cool, danke!<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-1811\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-1811\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/955c3b0b6aeefcf0e1066abb258c3dbb?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Timo<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">27. Mai 2014 um 12:05<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Moin Moin,<\/p>\n<p>ist es m\u00f6glich, einen PIN f\u00fcr DigIn sowie DigOut zu nutzen?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1820\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-1820\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">27. Mai 2014 um 20:24<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ja, wenn der Pin als Open-Collector initialisiert wird :<\/p>\n<pre class=\"brush: plain; title: ; notranslate\">  \/\/ Config als OpenDrain-Ausgang\r\n  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;\r\n  GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;\r\n  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;\r\n  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;\r\n<\/pre>\n<p>so kann er von der CPU oder von extern auf Lo gezogen werden<br \/>\n(der Pull-Up sorgt f\u00fcr das Hi Signal)<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2461\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-2461\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/fb0d317dc2edd993655e5155d7b228bc?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Tito Arevalo<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">14. November 2014 um 05:35<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hi, I\u2019m starting with STM32F407 and I don\u2019t understand why you configure the timer to set digital in\u2019s..?? please help me<\/p>\n<p>Greetings from ECUADOR<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2466\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2466\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">15. November 2014 um 12:58<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>a \u201cnormal\u201d GPIO input dont need a timer. the function \u201cUB_DigIn_Read\u201d reads the input without a timer. but to implement a debounce functionality a timer is the easiest way. the three functions \u201cUB_DigIn_OnHiLevel\u201d, \u201cUB_DigIn_OnHiEdge\u201d, \u201cUB_DigIn_OnLoEdge\u201d needs a timer. but you can deactivate these functions with the define \u201cDIN_USE_TIMER 0\u2033 if you dont need a debounced input.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2467\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-2467\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/a1409b1fe6254bc7fbdcfa48b73a1ee9?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg B.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">15. November 2014 um 18:39<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo Uwe,<br \/>\njetzt w\u00fcrde ich gerne mal die Entprellte Version benutzen und habe da ein Verst\u00e4ndnis Problem. Du Schreibst als Bemerkung:<\/p>\n<p>\/\/ Digital-In OnLoEdge Auswertung (entprellt)<br \/>\n\/\/ ret_wert, ist nur einmal true nach Lo-Flanke am GPIO-Pin<\/p>\n<p>oder<\/p>\n<p>\/\/ Digital-In OnHiEdge Auswertung (entprellt)<br \/>\n\/\/ ret_wert, ist nur einmal true nach Hi-Flanke am GPIO-Pin<\/p>\n<p>Eigentlich ist eine Entprellung ja so zu sehen, dass nur wenn ein Impuls \u00fcber eine gewisse Zeit anliegt er gewertet werden soll. Nicht jeder Impuls. Ist das so???<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2468\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2468\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">16. November 2014 um 11:08<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>nein, eine L\u00e4ngenmessung vom Impuls habe ich nicht realisiert und ist in meinen Augen f\u00fcr einen Anschluss von einem Taster oder Schalter auch nicht notwendig. Falls du \u201cSpikes\u201d auf der Leitung hast, sind das St\u00f6rsignale die man per Hardware in den Griff bekommen m\u00fcsste. Was man event. machen k\u00f6nnte ist mehr Messpunkte zu speichern und zu vergleichen aber das w\u00fcrde ich erst realisieren wenn es mit der bestehenden Lib ein Problem gibt.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2469\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-2469\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/a1409b1fe6254bc7fbdcfa48b73a1ee9?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg B.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">16. November 2014 um 13:30<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ich habe dar\u00fcber auch mal nachgedacht. Da ich gegen Ground ziehe sind Spikes auch kein Problem denke ich.<\/p>\n<p>Problematisch w\u00e4re es wohl eher bei Open Drain Geschichten.<\/p>\n<p>Eine L\u00e4ngenmessung w\u00e4re auch beim Z\u00e4hlen mit Lichtschranken sinnvoll aber das w\u00fcrde ich dann sowieso anders angehen.<\/p>\n<p>Danke f\u00fcr deine Antwort<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2471\" class=\"comment even depth-2\">\n<div id=\"comment-2471\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/a1409b1fe6254bc7fbdcfa48b73a1ee9?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg B.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">16. November 2014 um 20:53<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Das sprites kein Problem sind muss ich wohl revidieren.<br \/>\nIch habe 2 Endlagenschalter mit ca 2m Kabel dran die trotz externer Pullups von 1,8 k scheinbar auf null gezogen werden. 330 Ohm hatte ich versucht, schafft die CPU aber nicht runter zu ziehen. Mit 2 Kurzen Kabeln ohne ext. Pullups funktioniert es einwandfrei.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2474\" class=\"comment odd alt depth-3\">\n<div id=\"comment-2474\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/a1409b1fe6254bc7fbdcfa48b73a1ee9?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg B.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">17. November 2014 um 09:55<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ein paar Kondensatoren tuen doch Wunder <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_biggrin.gif\" alt=\":D\" \/> L\u00e4uft jetzt\u2026<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-2478\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-3\">\n<div id=\"comment-2478\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">17. November 2014 um 19:29<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Die CPU muss bei Eing\u00e4ngen doch gar nichts \u201cziehen\u201d oder \u201ctreiben\u201d. Ein externer PullUp 4k7 am CPU Eingangspin und ein Schalter der gegen GND schaltet. Das funktioniert immer, egal wie lange die Leitung ist.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>diese Library dient zum auslesen von Digital Eingangsspins der CPU die Pins die benutzt werden sollen, m\u00fcssen im H-File deklariert und im C-File den entsprechenden Port-Pins zugeordnet werden. f\u00fcr jeden Pin kann auch der Eingangswiderstand definiert werden (keiner, Pull-Up, Pull-Down) &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/04-digin-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":4,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[138,9,7],"class_list":["post-207","page","type-page","status-publish","hentry","category-stm32f4","tag-digin","tag-library","tag-stm32f4"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/207","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=207"}],"version-history":[{"count":4,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/207\/revisions"}],"predecessor-version":[{"id":3652,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/207\/revisions\/3652"}],"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=207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}