{"id":219,"date":"2017-11-22T23:57:45","date_gmt":"2017-11-22T22:57:45","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=219"},"modified":"2023-03-04T17:18:12","modified_gmt":"2023-03-04T16:18:12","slug":"10-systick-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/10-systick-library-stm32f4\/","title":{"rendered":"10-Systick-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\/09-touch_ads7843-library-stm32f4\/\" title=\"09-Touch_ADS7843-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 09-Touch_ADS7843-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\/11-rng-library-stm32f4\/\" title=\"11-RNG-Library (STM32F4)\">11-RNG-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>-diese Library bindet den System-Counter ein. Der CPU-Systick wird auf 1us (bzw. 1ms) eingestellt und dann per Interrupt bearbeitet.<\/p>\n<p>-in den Defines kann zwischen us und ms Aufl\u00f6sung umgestellt werden<br \/>\n<em id=\"__mceDel\">(falls f\u00fcr die Pausen und Timer ein ms-Raster reicht)<\/em><\/p>\n<p>-mit der Library k\u00f6nnen verschiedene Pausenfunktionen realisiert werden<br \/>\n(im us, ms, sek Raster)<\/p>\n<p>-und zwei Software Timer k\u00f6nnen gestartet und zyklisch abgefragt werden.<br \/>\n(theoretisch k\u00f6nnen noch beliebig viele zus\u00e4tzliche SW-Timer hinzugef\u00fcgt werden)<\/p>\n<p>-mit den Software-Countern kann eine Zeitspanne gemessen werden. Der Counter wird an einem Punkt bei 0 gestartet und kann dann irgendwann abgefragt werden, wieviel Zeit (in us,ms,sec) vergangen ist.<\/p>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : keine\r\nBenutzte Librarys : keine<\/pre>\n<p><strong>Enumerationen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef enum {\r\n  TIMER_STOP =0,  \/\/ Timer stoppen und r\u00fccksetzen\r\n  TIMER_START_us, \/\/ Timer starten im us-Mode\r\n  TIMER_START_ms, \/\/ Timer starten im ms-Mode\r\n  TIMER_START_s,  \/\/ Timer starten im s-Mode\r\n  TIMER_CHECK     \/\/ Test ob Timer abgelaufen\r\n}TIMER_STATUS_t;<\/pre>\n<p><strong>.<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef enum {\r\n  TIMER_HOLD =0,  \/\/ Timer ist abgelaufen\r\n  TIMER_RUN       \/\/ Timer l\u00e4uft noch\r\n}TIMER_CHECK_t;<\/pre>\n<p><strong>.<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef enum {\r\n  COUNTER_STOP =0,  \/\/ Counter stoppen\r\n  COUNTER_START_us, \/\/ Counter starten im us-Mode\r\n  COUNTER_START_ms, \/\/ Counter starten im ms-Mode\r\n  COUNTER_START_s,  \/\/ Counter starten im s-Mode\r\n  COUNTER_CHECK     \/\/ Test wieviel Zeit vergangen\r\n}COUNTER_STATUS_t;<\/pre>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void UB_Systick_Init(void);                                            \/\/ zum init vom Systick\r\nvoid UB_Systick_Pause_us(__IO uint32_t pause);                         \/\/ f\u00fcr eine Pause von x usek\r\nvoid UB_Systick_Pause_ms(__IO uint32_t pause);                         \/\/ f\u00fcr eine Pause von x msek\r\nvoid UB_Systick_Pause_s(__IO uint32_t pause);                          \/\/ f\u00fcr eine Pause von x sek\r\nTIMER_CHECK_t UB_Systick_Timer1(TIMER_STATUS_t status, uint32_t wert); \/\/ zum starten und auslesen von Systick-Timer1\r\nTIMER_CHECK_t UB_Systick_Timer2(TIMER_STATUS_t status, uint32_t wert); \/\/ zum starten und auslesen von Systick-Timer2\r\nuint32_t UB_Systick_Counter1(COUNTER_STATUS_t status);                 \/\/ zum starten und auslesen von Systick-Counter1\r\nuint32_t UB_Systick_Counter2(COUNTER_STATUS_t status);                 \/\/ zum starten und auslesen von Systick-Counter1<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 22.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 Systick-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_systick.h\"\r\n#include \"stm32_ub_led.h\"\r\n\r\nint main(void)\r\n{\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  UB_Systick_Init(); \/\/ init vom System-Counter\r\n\r\n  UB_Led_Init(); \/\/ init der LEDs\r\n\r\n  while(1)\r\n  {\r\n    \/\/ 200ms Pause (per Systick)\r\n    UB_Systick_Pause_ms(200);\r\n    \/\/ LED toggeln\r\n    UB_Led_Toggle(LED_GREEN);\r\n\r\n    \/\/ Test ob Systick-Timer1 abgelaufen ist\r\n    if(UB_Systick_Timer1(TIMER_CHECK,0)==TIMER_HOLD) {\r\n      \/\/ LED toggeln\r\n      UB_Led_Toggle(LED_RED);\r\n      \/\/ Timer wieder starten (mit 800 ms)\r\n      UB_Systick_Timer1(TIMER_START_ms,800);\r\n    }\r\n  }\r\n}\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\/03\/ub_stm32f4_systick_v104.zip\">ub_stm32f4_systick_v104<\/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\/03\/Demo_10_Systick.zip\">Demo_10_Systick<\/a><\/p>\n<h3 id=\"comments-title\">11 Antworten auf <em>10-Systick-Library (STM32F4)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-1050\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-1050\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/8687948a1b128b08751b8c12bf24b0a5?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\">Tom<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">19. November 2013 um 13:35<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ich teste gerade deine Systick Library.<br \/>\nFolgendes Problem habe ich festgestellt. Kommentiere ich bei mir SystemInit() aus, sind die Signalverl\u00e4ufe am Oszi wie erwartet, d.h. die Pausenzeiten werden perfekt eingehalten. Mache ich vorab das SystemInit() sind alle Pausenzeiten um den Faktor 10 zu kurz (daraus resultierende Frequenzen zu hoch). Irgend eine Idee an was das liegen kann?<br \/>\n\u201ccmsis_boot\/stm32f4xx.h\u201d<br \/>\n\u201ccmsis_boot\/system_stm32f4xx.c\u201d \u2013&gt; sind eventuell diese Files eine Fehlerquelle?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1055\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1055\">\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\">20. November 2013 um 22:49<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>was ist den f\u00fcr ein Systemclock eingestellt ? In den beiden Files muss die Angabe vom angeschlossenen externen Quarz stimmen. Wo hast du den die Files her ? Vergleich sie mal mit denen aus meinem Projekt\u2026die sind an das Discovery-Board angepasst.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1310\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-1310\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/0f8c2ef16243f8bfbbf5742b3de275d3?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\">Thomas55<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">28. Januar 2014 um 00:39<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Danke f\u00fcr diese Arbeit. Das hat mir sehr geholfen.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-2108\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-2108\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/add3eb0b646574246c407257aac569f2?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\">Jackob<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">2. September 2014 um 20:57<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Guten Abend,<br \/>\nErstmals vielen Dank f\u00fcr die tolle Librarys .<br \/>\nIch versuche seit 3 Stunden ohne Erfolg das untere Programm im Lauf zu bringen. Mit dem Library 10 hat eine Kollision entstanden sowie mit dem Code unteren l\u00e4sst sich die externe Interrupt ganz gut funktionieren aber die LEDs lassen sich durcheinander togglen und manchmal gar nicht. das passiert nur wenn ich systick mit dem externe Interrupt in einem Code integriere.<\/p>\n<p>ich w\u00e4re sehr Dankbar wenn jemaden mir hilft den Fehler zu erkennen.<\/p>\n<pre lang=\"c\" line=\"1\">#include \"stm32_ub_uart.h\"\r\n#include \"stm32_ub_string.h\"\r\n#include \r\n#include \r\n#include \r\n#include \r\n#include \r\n#include \r\n\r\n\r\n\/\/===========================================================\r\nvoid init_externe_Intr(){\r\n\r\n  GPIO_InitTypeDef GPIO_InitStructure;\r\n  EXTI_InitTypeDef EXTI_InitStructure;\r\n  NVIC_InitTypeDef NVIC_InitStructure;\r\n\r\n  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD |  RCC_AHB1Periph_GPIOC , ENABLE);\r\n\r\n  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;\r\n  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;\r\n  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;\r\n  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;\r\n  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;\r\n  GPIO_Init(GPIOD, &amp;GPIO_InitStructure);\r\n\r\n  \/\/ Enable SYSCFG clock\r\n  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);\r\n\r\n  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;\r\n  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;\r\n  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;\r\n  GPIO_Init(GPIOC, &amp;GPIO_InitStructure);\r\n\r\n  SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource0);\r\n\r\n  EXTI_InitStructure.EXTI_Line = EXTI_Line0;\r\n  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;\r\n  EXTI_InitStructure.EXTI_Trigger =  EXTI_Trigger_Rising_Falling;\r\n  EXTI_InitStructure.EXTI_LineCmd = ENABLE;\r\n  EXTI_Init(&amp;EXTI_InitStructure);\r\n\r\n\r\n  NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;\r\n  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;\r\n  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;\r\n  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;\r\n  NVIC_Init(&amp;NVIC_InitStructure);\r\n}\r\n\r\nBitAction wert;\r\n\r\n\/\/=======================================================================\r\nint main(void)\r\n{\r\nSysTick_Config(SystemCoreClock\/100);\r\ninit_externe_Intr();\r\nSystemInit(); \r\nUB_Uart_Init();\r\n\r\n\r\n while(1)\r\n  {\r\n\r\n\r\n if (TIM_GetCounter(TIM6) == 25)\r\n GPIO_ToggleBits(GPIOD,GPIO_Pin_15);\r\n if (TIM_GetCounter(TIM6) == 50)\r\n GPIO_ToggleBits(GPIOD,GPIO_Pin_14);\r\n\r\n if (TIM_GetCounter(TIM6) == 100)\r\n GPIO_ToggleBits(GPIOD,GPIO_Pin_13);\r\n if (TIM_GetCounter(TIM6) == 200)\r\n GPIO_ToggleBits(GPIOD,GPIO_Pin_12);\r\n  }\r\n}\r\n\/\/===================================================================================================\r\nvoid SysTick_Handler(void)\r\n{\r\n\/\/leer\r\n\r\n}\r\n\/\/===================================================================================================\r\nvoid EXTI0_IRQHandler(void){\r\n\r\n\r\nwert= GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0);\r\nsprintf(STRING_BUF,\"%d\",wert);\r\nUB_Uart_SendString(COM3, STRING_BUF, LFCR);\r\n \r\n}\r\n<\/pre>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-2116\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-2116\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/af5be9fa3f95b3ec9c424ed130b7f2d3?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\">Cortex-Einsteiger<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">3. September 2014 um 18:38<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Du benutzt Timer 6 um die Leds zu toggeln, dabei wird Timer 6 nirgendwo eingerichtet.<br \/>\nZus\u00e4tzlich schreibst du von der Sys-Tick Library (10) aber die Lib wird nicht benutzt sondern deine eigene Implementierung.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-3175\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-3175\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b5276f1933e222f34c7c646fbe0030a9?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\">sakis<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">26. April 2015 um 08:53<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>your libraries are best found.thanks a lot<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-4143\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-4143\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/03bd31cbca5fe8c62f5c506fa067db0a?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\">Charlie<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">15. September 2015 um 14:17<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<br \/>\ndanke f\u00fcr die Libs.<br \/>\nDie sind sehr Hilfreich. Ich habe aber ein kleines Verst\u00e4ndnisproblem, welches du denke ich leicht beantworten kannst.<br \/>\nWenn ich das hier aufrufe, dann funktioniert soweit alles.<\/p>\n<p>UB_Systick_Counter1(COUNTER_START_us)<\/p>\n<p>diese Funktion geht hier rein:<\/p>\n<p>else if(status==COUNTER_START_s) {<br \/>\n\/\/ Counter1 im s-Mode starten<br \/>\nSystick_C1.faktor=1000*1000;<br \/>\nSystick_C1.wert=0;<br \/>\n}<\/p>\n<p>und der startet auch. Aber wie? Das sind alles deine Variablen die du deklariert hast. Ich finde den Bezug von dieser Funktion zum STM32F4 nicht. Wo ist die Schnittstelle?<\/p>\n<p>Danke dir im Voraus<br \/>\nCharlie<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-4144\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-4144\">\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. September 2015 um 18:29<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>was meinst du mit \u201cschnittstelle\u201d ?<br \/>\nDie variablen sind \u201cglobal\u201d und werden in der Systick-ISR<br \/>\n(die jede ms aufgerufen wird) incrementiert.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-4145\" class=\"comment even depth-3\">\n<div id=\"comment-4145\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/03bd31cbca5fe8c62f5c506fa067db0a?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\">Charlie<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">16. September 2015 um 10:38<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<br \/>\nk\u00f6nntenst du mir villeicht sagen, wo genua, an welcher Stelle die variable Systick_C1.wert incrementiert wird.?<br \/>\nIch glaube, ich habe die Interruptroutine in stm23f4 nicht so ganz verstanden.?<br \/>\ndanke dir<br \/>\nGru\u00df<br \/>\nCharlie<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-4146\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-4\">\n<div id=\"comment-4146\">\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. September 2015 um 12:13<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>nochmal langsam :<br \/>\ndie ISR vom Systick hat den Namen \u201cSystick_Handler\u201d<br \/>\nund wird jede Millisekunde aufgerufen :<\/p>\n<pre class=\"brush: plain; title: ; notranslate\">\/\/--------------------------------------------------------------\r\n\/\/ Systic-Interrupt\r\n\/\/--------------------------------------------------------------\r\nvoid SysTick_Handler(void)\r\n{\r\n  \/\/ Tick f\u00fcr Counter1\r\n  if(Systick_C1.faktor != 0x00) {\r\n    Systick_C1.wert++;\r\n  }\r\n}\r\n<\/pre>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-4147\" class=\"comment even depth-5\">\n<div id=\"comment-4147\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/03bd31cbca5fe8c62f5c506fa067db0a?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\">Charlie<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">16. September 2015 um 13:16<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<br \/>\nouch.. !<br \/>\nBeim debugen kam der routine aber nie da rein:)<\/p>\n<p>ok, ich bei es einfach \u00fcbersehen.<br \/>\nBesten Dank, du hast mir den Tag gerettet.<\/p>\n<p>viele gr\u00fc\u00dfe<br \/>\nCharlie<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>-diese Library bindet den System-Counter ein. Der CPU-Systick wird auf 1us (bzw. 1ms) eingestellt und dann per Interrupt bearbeitet. -in den Defines kann zwischen us und ms Aufl\u00f6sung umgestellt werden (falls f\u00fcr die Pausen und Timer ein ms-Raster reicht) -mit &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/10-systick-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":10,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[9,7,145],"class_list":["post-219","page","type-page","status-publish","hentry","category-stm32f4","tag-library","tag-stm32f4","tag-systemcounter"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/219","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=219"}],"version-history":[{"count":4,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/219\/revisions"}],"predecessor-version":[{"id":3658,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/219\/revisions\/3658"}],"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=219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}