{"id":440,"date":"2017-11-24T23:29:49","date_gmt":"2017-11-24T22:29:49","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=440"},"modified":"2017-12-30T19:37:10","modified_gmt":"2017-12-30T18:37:10","slug":"55-timer-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=440","title":{"rendered":"55-Timer-Library (STM32F4)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=438\" title=\"54-CS43L22_MP3_USB-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 54-CS43L22_MP3_USB-Library (STM32F4)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=442\" title=\"56-USB_HID_HOST-Library (STM32F4)\">56-USB_HID_HOST-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Mit diesen Librarys k\u00f6nnen die Timer vom STM32F4 im \u201cCount_Up-Mode\u201d benutzt werden.<\/p>\n<p>Es gibt f\u00fcr die Timer \u201cTIM2, TIM3, TIM4, TIM5\u2033 je eine Library.<\/p>\n<p>Beim initialisieren muss der Prescaler und der Periodenwert \u00fcbergeben werden. Daraus leitet sich dann die FRQ vom Timer-Interrupt ab.<br \/>\nFRQ = 84MHz \/ (Prescaler+1) \/ (Periode+1)<\/p>\n<p><strong>Oder<\/strong> (ab Version 1.1) kann die Init-Funktion mit \u00dcbergabe von einem Frq-Wert<br \/>\n(in Hz) aufgerufen werden. (Hinweis : durch Rundungsfehler entspricht der Istwert u.U. nicht 100% dem Sollwert\u2026bitte nachrechnen, falls das f\u00fcr das Programm wichtig ist)<\/p>\n<p>Danach muss der Timer noch mit einer Funktion gestartet werden.<\/p>\n<p>Die ISR_CallBack-Funktion wird dann zyklisch aufgerufen und kann nach eigenen w\u00fcnschen ausprogrammiert werden.<\/p>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : TIM, MISC\r\nBenutzte Librarys : keine<\/pre>\n<p><strong>Funktionen (<strong>f\u00fcr Timer mit TIM2<\/strong>) :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void UB_TIMER2_Init(uint16_t prescaler, uint16_t periode);  \/\/ zum init vom Timer (per Vorteilerwerte)\r\nvoid UB_TIMER2_Init_FRQ(uint32_t frq_hz);                   \/\/ zum init vom Timer (per Frq)\r\nvoid UB_TIMER2_Start(void);                                 \/\/ zum starten vom Timer\r\nvoid UB_TIMER2_Stop(void);                                  \/\/ zum anhalten vom Timer\r\nvoid UB_TIMER2_ISR_CallBack(void);                          \/\/ Diese Funktion muss extern benutzt werden !!<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 20.08.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 Timer 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_tim2.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 Timer2\r\n  \/\/ mit f = 1 Hz\r\n  UB_TIMER2_Init(8399,9999);\r\n\r\n  \/\/ Timer2 starten\r\n  UB_TIMER2_Start();\r\n\r\n  while(1)\r\n  {\r\n\r\n  }\r\n}\r\n\r\n\/\/--------------------------------------------------------------\r\n\/\/ ISR von Timer2\r\n\/\/--------------------------------------------------------------\r\nvoid UB_TIMER2_ISR_CallBack(void)\r\n{\r\n  UB_Led_Toggle(LED_GREEN);\t\/\/ led blinken lassen\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\/2014\/02\/ub_stm32f4_timer_v101.zip\">ub_stm32f4_timer_v101<\/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\/2014\/02\/Demo_55_Timer.zip\">Demo_55_Timer<\/a><\/p>\n<h3 id=\"comments-title\">11 Antworten auf <em>55-Timer-Library (STM32F4)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-1313\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-1313\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/09f8b07c5192e3c3246bda6643995263?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\">Jan<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">30. Januar 2014 um 09:58<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Moin moin,<\/p>\n<p>da ich zu faul bin, prescaler und periode selbst zu berechnen, habe ich mal eine Funktion hinzugef\u00fcgt, die das f\u00fcr mich erledigt:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\">void UB_TIMER2_Init_WithFrequency( int desiredFreqInHz )\r\n{\r\n    \/\/ Hole Taktfrequenz\r\n    RCC_ClocksTypeDef RCC_Clocks;\r\n    RCC_GetClocksFreq(&amp;RCC_Clocks);\r\n    int inputClkFreq = RCC_Clocks.PCLK1_Frequency;\r\n\r\n    \/\/ Berechne prescaler und periode\r\n    int frequencyDivNecessary = (float) inputClkFreq \/ desiredFreqInHz;\r\n    frequencyDivNecessary &gt;&gt; 16;\/\/ Schiebe 16 Bit nach links, da 16 Bit breite periode moeglich\r\n    int timerMaxCountValue = ( inputClkFreq \/ (frequencyDivNecessary + 1) ) \/ desiredFreqInHz;\r\n\r\n\/\/ Setze Timer auf\r\nUB_TIMER2_Init(frequencyDivNecessary, timerMaxCountValue);\r\n}\r\n<\/pre>\n<p>Vielleicht ist das ja eine sinnvolle Erg\u00e4nzung zu deinen Libraries.<\/p>\n<p>Dazu noch ein Hinweis: Timer2 soll eigentlich an der 42 MHz Clock h\u00e4ngen (das sagt jedenfalls die Funktion IS_RCC_APB1_PERIPH), er scheint aber an der 84er zu h\u00e4ngen, jedenfalls kriegte ich bei 1000er Teilung einen Takt von 84 KHz am Oszi raus. Der obige Code l\u00e4uft bei mir so jedenfalls 1a.<\/p>\n<p>Liebe Gr\u00fc\u00dfe, Jan<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1314\" class=\"comment odd alt depth-2\">\n<div id=\"comment-1314\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/09f8b07c5192e3c3246bda6643995263?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\">Jan<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">30. Januar 2014 um 10:01<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Zwei Erg\u00e4nzungen noch: Der Funktionsparameter ist eigentlich ein Int. Da hat sich der Fehlerteufel eingeschlichen.<\/p>\n<p>Und: Wenn man alle Timer Libs von dir gleichzeitig einbindet, gibt es Probleme, weil Funktionsnamen gleich sind. Du k\u00f6nntest ja ggfs. die Funktionsnamen mit einem Timerspezifischen Suffix verstehen. Dann l\u00e4ufts <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":)\" \/><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1355\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-3\">\n<div id=\"comment-1355\">\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. Februar 2014 um 20:36<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>In der Version 1.1 ist jetzt die neue Init-Funktion enthalten. Und die Funktionsnamen m\u00fcssten schon alle unterschiedlich sein.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1316\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1316\">\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\">30. Januar 2014 um 20:22<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>ok, wenn das funktioniert werd ich es f\u00fcr die Library \u00fcbernehmen.<br \/>\nP.S. der Eingangs-Clock vom Timer2 ist 42MHz aber alle Timer laufen intern mit dem doppelten Eingangs Wert \u2026hier also 84MHz. Timer-1 l\u00e4uft z.B. mit 168 MHz (obwohl ABP2 = 84MHz ist)<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1836\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-1836\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/955edb448e4f7a8d68a516c5fd091604?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\">MC.Einsteiger<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">5. Juni 2014 um 13:43<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo Zusammen,<br \/>\nErstmal vielen Danke Uwe f\u00fcr die Lib.<\/p>\n<p>Ich habe folgende Problem und zwar das folgende Programm zeigt mir viele Fehler,die ich bis jetzt nicht nachvollziehen und l\u00f6sen konnten..!!<br \/>\nkann jemand vielleicht helfen?<\/p>\n<p>Liebe Gr\u00fc\u00dfe Rick<br \/>\n<code><br \/>\n#include<br \/>\n#include<br \/>\n#include \"stm32f4xx.h\"<br \/>\n#include \"stm32_ub_led.h\"<\/code><\/p>\n<p>void init()<br \/>\n{<\/p>\n<p>SysTick_Config(SystemCoreClock\/100);<\/p>\n<p>\/\/ GPIOD Takt einschalten<br \/>\nRCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);<\/p>\n<p>\/\/ Konfiguriere PD15<br \/>\nGPIO_InitTypeDef GPIO_InitStructure;<br \/>\nGPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;<br \/>\nGPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;<br \/>\nGPIO_InitStructure.GPIO_OType = GPIO_OType_PP;<br \/>\nGPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;<br \/>\nGPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;<br \/>\nGPIO_Init(GPIOD, &amp;GPIO_InitStructure);<\/p>\n<p>\/\/ Takt f\u00fcr Timer 7 einschalten<br \/>\nRCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7, ENABLE);<\/p>\n<p>\/\/ Timer7 konfigurieren<br \/>\nTIM_TimeBaseInitTypeDef TIM_TimeBase_InitStructure;<br \/>\nTIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1;<br \/>\nTIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up;<br \/>\nTIM_TimeBase_InitStructure.TIM_Period = 4200;<br \/>\nTIM_TimeBase_InitStructure.TIM_Prescaler = 1000;<br \/>\nTIM_TimeBaseInit(TIM7, &amp;TIM_TimeBase_InitStructure);<br \/>\nTIM_ITConfig(TIM7, TIM_IT_Update, ENABLE);<\/p>\n<p>\/\/ Timer7 einschalten<br \/>\nTIM_Cmd(TIM7, ENABLE);<\/p>\n<p>\/\/ Interruptcontroller konfigurieren<br \/>\nNVIC_InitTypeDef NVIC_InitStructure;<br \/>\nNVIC_InitStructure.NVIC_IRQChannel = TIM7_IRQn;<br \/>\nNVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;<br \/>\nNVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;<br \/>\nNVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;<br \/>\nNVIC_Init(&amp;NVIC_InitStructure);<\/p>\n<p>}<\/p>\n<p>int main(void)<br \/>\n{<br \/>\nSystemInit();<br \/>\ninit();<br \/>\nwhile(1)<br \/>\n{<br \/>\n\/\/leer<br \/>\n}<br \/>\n}<\/p>\n<p>void SysTick_Handler(void)<br \/>\n{<\/p>\n<p>}<\/p>\n<p>void TIM7_IRQHandler()<br \/>\n{<br \/>\nUB_Led_Toggle(LED_RED);<br \/>\nTIM_ClearITPendingBit(TIM7, TIM_IT_Update);<br \/>\n}<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1839\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1839\">\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\">5. Juni 2014 um 19:34<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>sind alle Header files eingebunden ?<\/p>\n<pre class=\"brush: plain; title: ; notranslate\">#include \"stm32f4xx_gpio.h\"\r\n#include \"stm32f4xx_rcc.h\"\r\n#include \"stm32f4xx_tim.h\"\r\n#include \"misc.h\"\r\n<\/pre>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1851\" class=\"comment even depth-3\">\n<div id=\"comment-1851\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/955edb448e4f7a8d68a516c5fd091604?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\">MC.Einsteiger<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">9. Juni 2014 um 12:02<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>so bl\u00f6d war ich. Ich habe #include \u201cmisc.h\u201d vergessen.<br \/>\nEs funktioniert vielen Dank.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2033\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-2033\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/625702eca5e97b3d3fd6d03d67670111?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\">Tine<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">15. August 2014 um 16:26<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hall\u00f6chen,<br \/>\nich habe eine Frage, ist es m\u00f6glich mit einem Timer mehrer Interruptflags auszul\u00f6sen?<br \/>\nWas ich meine ist: ich setze die Periode auf 100, da wird ein Interrupt ausgel\u00f6st. Aber ich m\u00f6chte, dass auch mit dem selben Timer bei 50 ein Interrupt ausgel\u00f6sst wird. Kann ich das vielleicht mit einem Compare register realisieren?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2042\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2042\">\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. August 2014 um 11:46<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>ja, das ist m\u00f6glich (bis zu vier st\u00fcck mit einem Timer)<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2093\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-2093\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/4de9509b3774254ebbd01af76b716b1b?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\">Alex<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">26. August 2014 um 13:17<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<\/p>\n<p>wo finde ich die Libary Version 1.1?<\/p>\n<p>Kann nur die V1.0 downloaden?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2095\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2095\">\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\">26. August 2014 um 17:37<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>sicher ? die Version 1.0 liegt gar nicht mehr auf dem Server <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":-)\" \/><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Mit diesen Librarys k\u00f6nnen die Timer vom STM32F4 im \u201cCount_Up-Mode\u201d benutzt werden. Es gibt f\u00fcr die Timer \u201cTIM2, TIM3, TIM4, TIM5\u2033 je eine Library. Beim initialisieren muss der Prescaler und der Periodenwert \u00fcbergeben werden. Daraus leitet sich dann die FRQ &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=440\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":55,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[9,7,55],"class_list":["post-440","page","type-page","status-publish","hentry","category-stm32f4","tag-library","tag-stm32f4","tag-timer"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/440","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=440"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/440\/revisions"}],"predecessor-version":[{"id":1594,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/440\/revisions\/1594"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/144"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}