{"id":493,"date":"2017-11-24T23:57:46","date_gmt":"2017-11-24T22:57:46","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=493"},"modified":"2017-12-31T20:18:19","modified_gmt":"2017-12-31T19:18:19","slug":"79-scopescreen-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/79-scopescreen-library-stm32f4\/","title":{"rendered":"79-ScopeScreen-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\/78-ws2812-library-stm32f4\/\" title=\"78-WS2812-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 78-WS2812-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\/80-lin_master-library-stm32f4\/\" title=\"80-LIN_Master-Library (STM32F4)\">80-LIN_Master-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Hier eine Library mit der man ein Analog-Oszi (mit Bildr\u00f6hre) als Anzeigescreen benutzen kann. (mit Digital-Oszis funktioniert das nicht)<\/p>\n<p>Im Internet gibt es viele solcher Projekte die unter dem Stichwort \u201cScope-Clock\u201d laufen aber die meisten davon arbeiten zum zeichnen mit Vektor-Zeichens\u00e4tzen.<\/p>\n<p>Diese Version arbeitet wie ein \u201cnormales\u201d LCD-Dislplay mit z.B. 200 x 200 Pixel Aufl\u00f6sung (max sind 256 x 256 Pixel m\u00f6glich)<\/p>\n<p>Es gibt Zeichenbefehle zum setzen, l\u00f6schen von einem Pixel oder zum zeichnen von Linien, Kreisen, Texten usw.<\/p>\n<p>Die Ausgabe erfolgt per DAC1 und DAC2. Das Oszi muss auf X\/Y-Betrieb eingestellt werden. (X=DAC1 , Y=DAC2) Ein \u201cBlanking-Signal\u201d gibt es nicht.<\/p>\n<p><strong>Zur Software :<\/strong><\/p>\n<p>Je mehr Pixel gezeichnet werden m\u00fcssen, desto langsamer wird die Bildwiederholfrequenz. Ich habe aus dem Grund die max. Anzahl an Pixel auf 3000 Begrenzt, die werden dann noch mit ca 70Hz dargestellt.<\/p>\n<p>Nach jeder \u00c4nderung vom Displayinhalt muss einmal die Funktion<br \/>\n\u201cUB_ScopeScreen_RedrawScreen\u201d aufgerufen werden. Diese errechnet das neue Bild und die Ausgabe erfolgt dann per Timer-Interrupt im Hintergrund.<\/p>\n<p><strong>Bild :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2014\/04\/scope_screen_02.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3772\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2014\/04\/scope_screen_02-300x179.jpg\" alt=\"scope_screen_02\" width=\"300\" height=\"179\" \/><\/a><\/p>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : TIM, MISC\r\nBenutzte Librarys : STM32_UB_DAC<\/pre>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void UB_ScopeScreen_Init(void);                                                      \/\/ zum init vom ScopeScreen\r\nvoid UB_ScopeScreen_Clear(void);                                                     \/\/ zum l\u00f6schen vom Screen\r\nvoid UB_ScopeScreen_SetPixel(uint16_t xpos, uint16_t ypos);                          \/\/ ein Pixel an X,Y setzen\r\nvoid UB_ScopeScreen_ClearPixel(uint16_t xpos, uint16_t ypos);                        \/\/ ein Pixel an X, Y l\u00f6schen\r\nvoid UB_ScopeScreen_DrawLine(int16_t x1, int16_t y1, int16_t x2, int16_t y2);        \/\/ eine Linie zeichnen\r\nvoid UB_ScopeScreen_DrawCircle(int16_t x0, int16_t y0, int16_t radius);              \/\/ einen Kreis zeichnen\r\nvoid UB_ScopeScreen_DrawChar(uint16_t x, uint16_t y, uint8_t ascii, UB_Font *font);  \/\/ einen Buchstaben zeichnen\r\nvoid UB_ScopeScreen_DrawString(uint16_t x, uint16_t y,char *ptr, UB_Font *font);     \/\/ einen String zeichnen\r\nErrorStatus UB_ScopeScreen_RedrawScreen(void);                                       \/\/ den ScopeScreen neu zeichnen\r\nvoid UB_ScopeScreen_Testpattern(void);                                               \/\/ ein Testbild anzeigen<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 09.04.2014\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.4\r\n\/\/ GCC      : 4.7 2012q4\r\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE\r\n\/\/ Funktion : Demo vom Scope-Screen\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_scope_screen.h\"\r\n\r\nint main(void)\r\n{\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  \/\/ init vom Scope-Screen\r\n  UB_ScopeScreen_Init();\r\n\r\n  \/\/ zum test ein Fadenkreuz zeichnen\r\n  UB_ScopeScreen_DrawLine(0,SCOPE_SCREEN_MAXY\/2,SCOPE_SCREEN_MAXX,SCOPE_SCREEN_MAXY\/2);\r\n  UB_ScopeScreen_DrawLine(SCOPE_SCREEN_MAXX\/2,0,SCOPE_SCREEN_MAXX\/2,SCOPE_SCREEN_MAXY);\r\n\r\n  \/\/ zum test einen Kreis zeichnen\r\n  UB_ScopeScreen_DrawCircle(SCOPE_SCREEN_MAXX\/2,SCOPE_SCREEN_MAXY\/2,35);\r\n\r\n  \/\/ Screen neu zeichnen\r\n  UB_ScopeScreen_RedrawScreen();\r\n\r\n  while(1)\r\n  {\r\n    \/\/ nichts zu tun\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2014\/04\/ub_stm32f4_scopescreen_v100.zip\">ub_stm32f4_scopescreen_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\/2014\/04\/Demo_79_ScopeScreen.zip\">Demo_79_ScopeScreen<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hier eine Library mit der man ein Analog-Oszi (mit Bildr\u00f6hre) als Anzeigescreen benutzen kann. (mit Digital-Oszis funktioniert das nicht) Im Internet gibt es viele solcher Projekte die unter dem Stichwort \u201cScope-Clock\u201d laufen aber die meisten davon arbeiten zum zeichnen mit &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/79-scopescreen-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":79,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[236,9,288,7],"class_list":["post-493","page","type-page","status-publish","hentry","category-stm32f4","tag-analog-oszi","tag-library","tag-oscilloscope","tag-stm32f4"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/493","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=493"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/493\/revisions"}],"predecessor-version":[{"id":1618,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/493\/revisions\/1618"}],"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=493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}