{"id":255,"date":"2017-11-23T00:16:14","date_gmt":"2017-11-22T23:16:14","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=255"},"modified":"2017-12-30T19:24:36","modified_gmt":"2017-12-30T18:24:36","slug":"28-ext_interrupt-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/28-ext_interrupt-library-stm32f4\/","title":{"rendered":"28-Ext_Interrupt-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\/27-dcmi_ov9655-library-stm32f4\/\" title=\"27-DCMI_OV9655-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 27-DCMI_OV9655-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\/29-ps2_keyboard-library-stm32f4\/\" title=\"29-PS2_Keyboard-Library (STM32F4)\">29-PS2_Keyboard-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Zum benutzen der 16 externen Interrupt-Lines f\u00fcr jeden Port, gibt es die EXT_INTx-Librarys.<\/p>\n<p>F\u00fcr die Interrupts 0 bis 4 gibt es je eine eigene LIB (0,1,2,3,4).<br \/>\nF\u00fcr die Interrupts 5 bis 9 gibt es eine gemeinsame (5To9)<br \/>\nund f\u00fcr die Interrupts 10 bis 15 gibt es auch eine gemeinsame (10To15).<\/p>\n<p>Beim STM32F4 kann man auf EXT_INT0 die Port-Pins PA0,PB0,PC0,PD0 usw legen,<br \/>\nauf EXT_INT1 kann man PA1,PB1,PC1,PD1 legen das geht so weiter bis EXT_INT15.<br \/>\nMan darf aber nicht mehrere Pins auf die gleiche Interrupt-Line legen. (z.B. PB2 und PC2 geht nicht gleichzeitig)<\/p>\n<p>Im C-File kann man festlegen welchen Port-Pin man benutzen will und auf welche Flanke man triggern will.\u00a0Es gibt eine Funktion zum initialisieren und f\u00fcr jeden Interrupt je zwei User Funktionen \u201cP_EXT_INTx_LoFlanke()\u201d und \u201cP_EXT_INTx_HiFlanke\u201d\u00a0in denen man seinen eigenen Code reinschreiben muss, was bei einem Interrupt passieren soll.<\/p>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : GPIO, EXTI, SYSCFG, MISC\r\nBenutzte Librarys : keine<\/pre>\n<p><strong>Funktionen (f\u00fcr EXT-INT0):<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void UB_Ext_INT0_Init(void); \/\/ zum initialisieren<\/pre>\n<p><strong>Beispiel (Main) :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 01.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 EXT-Interrupt-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_led.h\"\r\n#include \"stm32_ub_ext_int0.h\"\r\n\r\nint main(void)\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 vom Ext-Interrupt-0\r\n  UB_Ext_INT0_Init();\r\n\r\n  while(1)\r\n  {\r\n    \/\/ Wenn der User-Button gedr\u00fcckt wird (Hi-Flanke an PA0),\r\n    \/\/ wird per ext-Int0 die gr\u00fcne LED eingeschaltet\r\n  }\r\n}\r\n<\/pre>\n<p><strong>Beispiel (Interrupt) :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">#include \"stm32_ub_led.h\"\r\n\r\n\/\/--------------------------------------------------------------\r\n\/\/ diese Funktion wird aufgerufen,\r\n\/\/ bei einer Hi-Flanke am EXT-INT0\r\n\/\/ wenn [EXTI_Trigger_Rising oder EXTI_Trigger_Rising_Falling]\r\n\/\/--------------------------------------------------------------\r\nvoid P_EXT_INT0_HiFlanke(void)\r\n{\r\n  \/\/ hier eigenen Code eintragen\r\n  UB_Led_On(LED_GREEN);\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_ext_int_v100.zip\">ub_stm32f4_ext_int_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_28_EXTI.zip\">Demo_28_EXTI<\/a><\/p>\n<h3 id=\"comments-title\">17 Antworten auf <em>28-Ext_Interrupt-Library (STM32F4)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-1002\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-1002\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/9efe54c82abfe1a6af4629e7e76852be?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\">Manuel<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">9. November 2013 um 20:11<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Wie bzw.wozu kann ich die Interrupts benutzen?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1005\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1005\">\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\">10. November 2013 um 10:46<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>z.B. um auf einen externen Button zu reagiern. Dann muss dieser nicht st\u00e4ndig von der CPU gepollt werden ob er gedr\u00fcckt ist, sondern man nutzt den EXTI z.B. auf Hi-Flanke und wenn man den Button dann dr\u00fcckt wird die ISR aufgerufen,egal was die CPU gerade macht.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1007\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-1007\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/a9f07a307dc42e8002cabf978c13d46e?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\">Manuel<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">10. November 2013 um 11:12<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Also im Prinzip unterbreche ich damit den laufenden Prozess und nach der Funktion f\u00fcr den Button wird genau dort weitergemacht.<br \/>\nTrifft das auch auf interne Buttons zu? Weil die meisten Programme verwenden einfach nur Funktionen ohne Interrupts \u2026 w\u00fcrde ja bei kleinen Funktionen wie dem Button der CPU nicht viel ausmachen oder?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1008\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1008\">\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\">10. November 2013 um 12:53<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>was ist den ein \u201cinterner\u201d Button ?? Buttons sind immer extern. Und es kommt halt auf dein Programm an. Wenn du z.B. sehr schnell auf ein externes Ereignis reagieren musst ist es einfacher einmal einen Interrupt zu programmieren als \u00fcberall im restlichen Programm den Status von dem Pin abzufragen und damit u.U. ein zu langes Delay zwischen Ereignis und Reaktion zu haben. Schau dir mal die PS2-Library an\u2026die Daten der Tastatur kommen ja zu einem beliebigen Zeitpunkt und m\u00fcssen sofort eingelesen werden, das ist eine tyische Anwendung f\u00fcr externe Interrupts.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1009\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-1009\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/9efe54c82abfe1a6af4629e7e76852be?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\">Manuel<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">10. November 2013 um 13:20<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ich meinte damit die beiden integrierten Buttons.<\/p>\n<p>Stimmt, ich m\u00fcsste dann solange warten, bis die Schleife erneut durchlaufen wird.<br \/>\nAber Interrupts muss ich doch auch irgendwo im Code einbauen, dann muss ich doch trotzdem wArten, bis der vorherige Code abgearbeitet wird.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1010\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1010\">\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\">10. November 2013 um 17:42<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>nein, man muss nicht warten, das ist ja gerade der Sinn von Interrupts. Das programm wird unterbrochen egal wo es gerade ist. Und nach der ISR wird an der alten Stelle weitergemacht.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1011\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-1011\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/a9f07a307dc42e8002cabf978c13d46e?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\">Manuel<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">10. November 2013 um 18:25<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>UB_Ext_INT0_Init(); muss ich aber vor dem eigentliuchen Code in der while-Schleife eintragen oder? Es ist interessant zu sehen, dass obwohl ich mich in einer while-Schleife befinde, ich den Code trotzdem unterbrechend kann, sobald der Interrupt ausgel\u00f6st wurde <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_biggrin.gif\" alt=\":D\" \/><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1012\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1012\">\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\">10. November 2013 um 18:37<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>auserhalb der while(1) \u2026 wie im Beispiel zu sehen ist, die Initialisierung darf nur einmal durchlaufen werden.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1014\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-1014\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/a9f07a307dc42e8002cabf978c13d46e?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\">Manuel<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">10. November 2013 um 19:53<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Das ist genial. Also initialisiere die gew\u00fcnschte Funktion oder auch mehrere Funktionen und \u00fcberlasse es sozusagen dem Prozessor selbst zu reagieren bzw. die passende ISR zu w\u00e4hlen?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-1403\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-1403\">\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 B.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">18. Februar 2014 um 00:01<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo Uwe,<br \/>\nich w\u00fcrde gerne eine Phasenanschnittsteuerung wie z.B. hier <a href=\"http:\/\/www.fritzler-avr.de\/HP\/tipps\/dimm.php\" rel=\"nofollow\">http:\/\/www.fritzler-avr.de\/HP\/tipps\/dimm.php<\/a> machen. K\u00f6nntest du das portieren?<\/p>\n<p>Gr\u00fc\u00dfe<\/p>\n<p>J\u00f6rg<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-1937\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-1937\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/ee38ab111e3af2dc96b2535e02439e6a?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\">gripper<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">10. Juli 2014 um 21:00<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Kann man Interrupts auch erst ab einer bestimmten Stelle im Code beachten und sonst ignorieren. Also gibt es eine Funktion zum aktivieren und deaktivieren der ISR?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1939\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1939\">\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\">12. Juli 2014 um 12:35<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>ist google defekt ?<br \/>\n<code><br \/>\n__disable_irq();<br \/>\n__enable_irq();<br \/>\n<\/code><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1941\" class=\"comment even depth-3\">\n<div id=\"comment-1941\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/ee38ab111e3af2dc96b2535e02439e6a?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\">gripper<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">12. Juli 2014 um 12:55<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Jo war grad down <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_biggrin.gif\" alt=\":D\" \/><br \/>\nNe hast recht. Trotzdem danke!<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2046\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-2046\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/fa5e387bccc9f423b8eba0c7f04958b6?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\">Simon<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">18. August 2014 um 23:40<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<br \/>\nich versuche gerade einen Interrupt zu generiert, wenn das Signal am Port AO \u00e4ndert. also Rising\u2013&gt; Falling oder umgekehrt.<br \/>\nich habe in EXTI_InitStructure mit folgendes EXTI_Trigger =EXTI_Trigger_Rising_Falling.<br \/>\nprobiert aber passiert nichts !!.<br \/>\nhat jemanden vielleicht eine Idee?<br \/>\nGr\u00fc\u00dfe<br \/>\nSimon<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2048\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2048\">\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\">19. August 2014 um 10:03<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Dein Fehler liegt in Zeile 42.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2050\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-2050\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/fa5e387bccc9f423b8eba0c7f04958b6?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\">Simon<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">19. August 2014 um 11:40<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>abgesehen von diesem Lib<br \/>\nich meinte wie kann man allgemein einen ISR aktivieren, wenn das Signal im Port \u00e4ndert (entweder von Low \u2013&gt; Hig oder von Hig\u2013&gt; Low).<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2051\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2051\">\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\">19. August 2014 um 12:44<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>du hast es doch schon geschrieben :<br \/>\n\u201cEXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising_Falling\u201d<br \/>\ndas ist halt nur eine Zeile von ca. 20 die du brauchst<br \/>\n(vergleich halt deinen Code mit meinem vom EXT_INT0)<br \/>\nda wird irgendwo in den restlichen 19 Zeilen ein Fehler sein<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Zum benutzen der 16 externen Interrupt-Lines f\u00fcr jeden Port, gibt es die EXT_INTx-Librarys. F\u00fcr die Interrupts 0 bis 4 gibt es je eine eigene LIB (0,1,2,3,4). F\u00fcr die Interrupts 5 bis 9 gibt es eine gemeinsame (5To9) und f\u00fcr die &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/28-ext_interrupt-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":28,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[164,9,7],"class_list":["post-255","page","type-page","status-publish","hentry","category-stm32f4","tag-interupt","tag-library","tag-stm32f4"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/255","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=255"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/255\/revisions"}],"predecessor-version":[{"id":1566,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/255\/revisions\/1566"}],"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=255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}