{"id":217,"date":"2017-11-22T23:56:49","date_gmt":"2017-11-22T22:56:49","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=217"},"modified":"2023-03-04T17:17:13","modified_gmt":"2023-03-04T16:17:13","slug":"09-touch_ads7843-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=217","title":{"rendered":"09-Touch_ADS7843-Library (STM32F4)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=215\" title=\"08-LCD_Font-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 08-LCD_Font-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=219\" title=\"10-Systick-Library (STM32F4)\">10-Systick-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>-diese Library dient zum auswerten eines 4Wire-Touch mit einem ADS7843-Chip.<br \/>\n(es kann auch ein Zilltek UH7843 oder ein XPTEK XPT2046 sein, die sind kompatibel)<\/p>\n<p>-der Controller kann eigentlich \u00fcber einen SPI-BUS angesteuert werden, aber auf meiner Hardware liegt er nicht an den SPI-Pins der CPU. Ich musste das Protokoll also mit normalen GPIOs machen\u2026was nicht gerade \u201csch\u00f6n\u201d ist.<\/p>\n<p>-der Touch an sich den ich habe, ist nicht\u00a0besonders\u00a0gut. Wenn er nur leicht bet\u00e4tigt wird, liefert er sehr ungenaue Ergebnisse.<\/p>\n<p>-um den Touch zu Kalibrieren, gibt es eine Funktion, mit der 3 Punkte nacheinander auf das Display gezeichnet werden und dann so genau wie m\u00f6glich bet\u00e4tigt werden m\u00fcssen. (Die Formeln dazu habe ich aus einer ATMEL Spezifikation)<\/p>\n<p>-die Kalibration muss eigentlich nur einmal gemacht werden und danach k\u00f6nnen die Kalibrationsdaten z.B. per Debugger ausgelesen und direkt in das C-File geschrieben werden.<\/p>\n<p>-ich habe den Timer-5 dazu benutzt um den Touch zyklisch (alle 50ms) auszulesen und die Daten vom Touch in die Struktur \u201cTouch_Data\u201d zu kopieren. Diese Struktur kann dann einfach vom Hauptprogramm aus abgefragt werden.<br \/>\n(im H-File kann auch einfach ein anderer Timer daf\u00fcr eingestellt werden)<\/p>\n<p>-es gibt auch noch 4 Funktionen um Touch Ereignisse abzufragen :<br \/>\n\u201cOnPressed\u201d =&gt; ist solange true wie der Touch bet\u00e4titgt ist<br \/>\n\u201cOnClick\u201d =&gt; ist einmal true, wenn der Touch gedr\u00fcckt wurde<br \/>\n\u201cOnRelease\u201d =&gt; ist einmal true, wenn der Touch lasgelassen wurde<br \/>\n\u201cOnDoubleClick\u201d =&gt; ist einmal true, bei einem \u201cDoppelklick\u201d<\/p>\n<p><strong>Beispielbild :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/03\/touch.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-661\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/03\/touch-300x179.jpg\" alt=\"touch\" width=\"300\" height=\"179\" \/><\/a><\/p>\n<p><strong>Benutzte Pins :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">PA15 -&gt; ADS7843_ChipSelect\r\nPB1  -&gt; ADS7843_DIN\r\nPB4  -&gt; ADS7843_Clk\r\nPB5  -&gt; ADS7843_DOUT\r\nPB15 -&gt; ADS7843_PEN\r\nPC2  -&gt; ADS7843_BUSY (wird im Code nicht benutzt)<\/pre>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : GPIO, TIM, MISC\r\nBenutzte Librarys : STM32_UB_LCD_ST7783<\/pre>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">ErrorStatus UB_Touch_Init(void);      \/\/ zum Init des Touch\r\nErrorStatus UB_Toch_Calibrate(void);  \/\/ zum Kalibrieren vom Touch\r\nbool UB_Touch_OnPressed(void);        \/\/ Auswertung \"OnPressed\" \r\nbool UB_Touch_OnClick(void);          \/\/ Auswertung \"OnClick\"\r\nbool UB_Touch_OnRelease(void);        \/\/ Auswertung \"OnReleased\"\r\nbool UB_Touch_OnDoubleClick(void);    \/\/ Auswertung \"OnDoubleClick\"<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 15.08.2013\r\n\/\/ Version  : 1.1\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 Touch-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_lcd_st7783.h\"\r\n#include \"stm32_ub_touch_ads7843.h\"\r\n\r\nint main(void)\r\n{\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  UB_LCD_Init();    \/\/ init vom LCD\r\n  UB_Touch_Init();  \/\/ init vom Touch\r\n\r\n  \/\/ Bildschirm l\u00f6schen\r\n  UB_LCD_FillScreen(RGB_COL_BLACK);\r\n\r\n  while(1)\r\n  {\r\n    \/\/ Touch abfragen\r\n    if(Touch_Data.status==TOUCH_PRESSED) {\r\n      \/\/ wenn Touch gedr\u00fcckt ist,\r\n      \/\/ an der Touch-Koordinate ein Pixel zeichnen\r\n      UB_LCD_SetCursor2Draw(Touch_Data.pos.xp,Touch_Data.pos.yp);\r\n      LCD_RAM=RGB_COL_RED;\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\/08\/ub_stm32f4_touch_ads7843_v107.zip\">ub_stm32f4_touch_ads7843_v107<\/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\/08\/Demo_09_Touch.zip\">Demo_09_Touch<\/a><\/p>\n<h3 id=\"comments-title\">31 Antworten auf <em>09-Touch_ADS7843-Library (STM32F4)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-619\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-619\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/faa63c1910a2bee3f266429b23fbe005?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\">David W.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">7. Juli 2013 um 14:37<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<br \/>\nIch habe die Pins des STM32F4-Discovery Boards, wie von dir angegeben, angschlossen. Ich verwende das ADS7843 compatible Touchscreen (<a href=\"http:\/\/www.ebay.com\/itm\/2-4-TFT-LCD-Module-Display-Touch-Panel-PCB-adapter-\/190477028273?pt=LH_DefaultDomain_0&amp;hash=item2c5950cbb1\" rel=\"nofollow\">http:\/\/www.ebay.com\/itm\/2-4-TFT-LCD-Module-Display-Touch-Panel-PCB-adapter-\/190477028273?pt=LH_DefaultDomain_0&amp;hash=item2c5950cbb1<\/a>). Die Pins sind auf der Platine dieses Touches etwas anders beschriftet als wie du sie oben angegeben hast. Hier meine Beschaltung:<br \/>\nPA15 -&gt; T_CS<br \/>\nPB1 -&gt; T_D<br \/>\nPB4 -&gt; T_Clk<br \/>\nPB5 -&gt; T_DIN<br \/>\nPB15 -&gt; T_IRQ (im Datenblatt steht: PENIRQ)<br \/>\nPC2 -&gt; einen Pin namens Busy haben ich nicht gefunden, aber laut deinen angeben ben\u00f6tige ich den sowieso nicht f\u00fcr dein Demo Programm oder?<\/p>\n<p>Weiters habe ich den Touch mit 5V Spannung versorgt, der auf der Platine vorhandene Spannungsregler sollte daraus 3V machen, wenn ich das richtig erkannt habe. Oder habe ich da etwas falsch verstanden und sollte ich nur 3V Spannungsversorgung w\u00e4hlen?<\/p>\n<p>Mein Problem ist, dass sich am Touch nichts tut, es wurde noch nie irgendwas angezeigt und ich kann (mit \u201cStift von meinem alten Handy\u201d) den Touch auch nicht dazu bringen etwas zu schreiben. Ich bitte um eine Antwort.<\/p>\n<p>lg David<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-623\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-623\">\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. Juli 2013 um 17:29<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ich habe das RAR-File von deinem Link runtergeladen und da sind alle Pins genauso beschriftet wie bei mir:<br \/>\nPA15 -&gt; D_CS -&gt; Pin 30 (vom 40pol Header)<br \/>\nPB1 -&gt; D_OUT -&gt; Pin 33 (vom 40pol Header)<br \/>\nPB4 -&gt; D_CLK -&gt; Pin 29 (vom 40pol Header)<br \/>\nPB5 -&gt; D_DIN -&gt; Pin 31 (vom 40pol Header)<br \/>\nPB15 -&gt; D_PENIRQ -&gt; Pin 34 (vom 40pol Header)<br \/>\nPC2 -&gt; D_BUSY -&gt; Pin 32 (vom 40pol Header) -&gt; brauchst du nicht<br \/>\nGND -&gt; Pin 1 (vom 40pol Header)<br \/>\n5V -&gt; Pin 2 (vom 40pol Header)<\/p>\n<p>m\u00fcsste also funktionieren, kannst du denn \u201cirgendwas\u201d auf dem Display anzeigen ? der Touch ist ja nur zur Eingabe da\u2026mit der Ausgabe hat der nichts zu tun.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-624\" class=\"comment even depth-3\">\n<div id=\"comment-624\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/faa63c1910a2bee3f266429b23fbe005?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\">David W.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">7. Juli 2013 um 17:44<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>nein, ich kann leider \u00fcberhaupt nichts am display anzeigen\u2026<br \/>\nich wei\u00df einfach nicht, ob es funktioniert\u2026<br \/>\nDanke f\u00fcr die Hilfe<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-630\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-4\">\n<div id=\"comment-630\">\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\">8. Juli 2013 um 17:58<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>in dem RAR-File ist auch ein Demo-Quellcode dabei, zuerst muss mal das Display funktionieren, bevor du an den Touch rangehst. Der Display-Controller ist ein \u201cS6D1121\u2033 daf\u00fcr hab ich leider keine Library. Aber wie gesagt als Basis w\u00fcrde ich die Demo Software nehmen.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-704\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-704\">\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\">23. Juli 2013 um 17:27<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>sooo, nun l\u00e4uft auch auch der Touch Sensor. Diese Lib ist kompatibel zu meinem XPT2046 Controller, lediglich die CS Polarit\u00e4t muss ge\u00e4ndert werden. Man muss allerdings aufpassen, dass man die Datenleitungen richtig anschlie\u00dft, z.B. ist \u201cADS7843_DOUT\u201d der Daten-Boardausgang zum Display und nicht wie ich zuerst verstanden habe der Datenausgang vom ADS7843. Ist aber auch im Code durch einen Kommentar erkl\u00e4rt.<br \/>\nDann noch Kalibrieren und die richtigen Daten f\u00fcr mein Display ausgelesen, fertig.<br \/>\nWieder einmal eine tolle Arbeit, danke und mach weiter so.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-705\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-705\">\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\">23. Juli 2013 um 19:00<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>stimmt das ist ein Fehler in meiner Bezeichnung, muss ich \u00e4ndern. Und wenn der XPT2046 kompatibel ist, schreib ich das auch gleich dazu. Danke zur\u00fcck.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-708\" class=\"comment even depth-3\">\n<div id=\"comment-708\">\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\">28. Juli 2013 um 11:43<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>sorry, ich muss meine Aussage korrigieren, an der CS Polatit\u00e4t muss nichts ge\u00e4ndert werden, da waren noch Codereste von meiner Fehlersuche vorhanden, funktioniert also direkt ohne Anpassung<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-744\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-744\">\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\">4. September 2013 um 11:18<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo Uwe,<br \/>\nhat es einen bestimmten Grund, warum du keine Hardware SPI benutzt?<\/p>\n<p>Joerg<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-749\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-749\">\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. September 2013 um 17:28<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ja, weil bei meiner Hardware der Touch nicht an den SPI-Pins der CPU angeschlossen ist. Aber wenn du eine SPI-Version willst und du das nicht selbst hinbekommt, schreib mir einfach.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-753\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-753\">\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\">7. September 2013 um 19:56<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hatte ich mir schon gedacht wo ich deine Boards mir angesehen hatte.<br \/>\nIm Moment habe ich keinen Bedarf, ich muss dringend meinen H\u00fchnerhaus Server fertig machen. Automatische T\u00fcren und Licht Steuerung, da die H\u00fchner nicht lesen k\u00f6nnen braucht es nicht unbedingt ein Display. Wobei es sicher lustig w\u00e4re \u00fcber das Touch etwas mit den H\u00fchnern zu trainieren. Das wird dann vielleicht ein Projekt f\u00fcr n\u00e4chstes Jahr <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_wink.gif\" alt=\";)\" \/><\/p>\n<p>J\u00f6rg<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-1213\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-1213\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/9d4ed6097f57c3643179716b11539502?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\">Sven<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">26. Dezember 2013 um 14:09<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<\/p>\n<p>hat super geklappt, wenn man auch A-F aus der Kalibrierung mit \u00fcbernimmt. Und ich wunder mich, warum er nur verkehrtherum zeichnet <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_biggrin.gif\" alt=\":D\" \/><\/p>\n<p>Auch hier hat das ab\u00e4ndern der Header auf SSD1289 gereicht. Komisch das die Fonts nicht wollen :\/<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-2083\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-2083\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/69284118e8609e5f71a80cbf7a6e8902?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\">Markus<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">25. August 2014 um 12:44<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<br \/>\nWie kann man dieses Projekt in eine SPI Version umschreiben?<\/p>\n<p>Gru\u00df<br \/>\nMarkus<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2084\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2084\">\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\">25. August 2014 um 17:35<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>die SPI-Library einbinden und an der Stelle wo jetzt die Software-SPI steht die Hardware SPI aufrufen.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2085\" class=\"comment odd alt depth-3\">\n<div id=\"comment-2085\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/69284118e8609e5f71a80cbf7a6e8902?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\">Markus<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">25. August 2014 um 20:15<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ok Library (SPI1) ist eingebunden, includiert usw\u2026<br \/>\nAber die Software SPI finde ich nicht !<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2088\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-4\">\n<div id=\"comment-2088\">\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 10:06<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>in die Funktion \u201cUB_Touch_Init\u201d muss der Eintrag<br \/>\n<code><br \/>\nUB_SPI1_Init(SPI_MODE_0);<br \/>\n<\/code><\/p>\n<p>und die Funktion \u201cP_Touch_Frame\u201d kannst du mit dem hier ersetzen :<\/p>\n<pre>uint16_t P_Touch_Frame(uint32_t frame) {  \r\n  uint16_t data_in=0x00;\r\n  uint8_t in_hi,in_lo;\r\n  uint8_t out1,out2,out3;\r\n\r\n  \/\/ kleine Pause\r\n  P_Touch_Delay(UB_TOUCH_MESS_DELAY);\r\n\r\n  \/\/ Chip-Select Lo\r\n  P_Touch_CS(Bit_RESET);\r\n  P_Touch_Delay(UB_TOUCH_CLK_DELAY);\r\n\r\n  \/\/ Frame in 3 Bytes zerlegen\r\n  out1=((frame&amp;0xFF0000)&gt;&gt;16);\r\n  out2=((frame&amp;0x00FF00)&gt;&gt;8);\r\n  out3=(frame&amp;0x0000FF);\r\n\r\n  \/\/ 3 SPI-Bytes senden\/empfangen\r\n  UB_SPI1_SendByte(out1);\r\n  in_hi=UB_SPI1_SendByte(out2);\r\n  in_lo=UB_SPI1_SendByte(out3);\r\n    \r\n  \/\/ empfanges Kommando als 12bit zusammensetzen\r\n  data_in=((in_hi&lt; &lt;8)|in_lo); data_in=(data_in&gt;&gt;4);\r\n\r\n  \/\/ Chip-Select Hi\r\n  P_Touch_Delay(UB_TOUCH_CLK_DELAY);\r\n  P_Touch_CS(Bit_SET);\r\n  P_Touch_Delay(UB_TOUCH_CLK_DELAY);\r\n\r\n  return(data_in);\r\n}\r\n<\/pre>\n<p>ich habs nicht getestet, sollte aber funktionieren.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2092\" class=\"comment odd alt depth-5\">\n<div id=\"comment-2092\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/69284118e8609e5f71a80cbf7a6e8902?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\">Markus<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">26. August 2014 um 12:00<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Wenn ich das: UB_SPI1_Init(SPI_MODE_0); in die die UB_Touch_Init() einf\u00fcge gibt es immer einen Fehler. Deshalb hab ich es in die Main nach der UB_Touch_Init() gepackt.<br \/>\nP_Touch_Frame habe ich ersetzt!<br \/>\nDas Programm bleibt aber bei der Initialisierung vom Touch h\u00e4ngen\u2026<br \/>\nPinbelegung:<br \/>\nSCK an PA5 wie in der SPI1 Library festgelegt<br \/>\nMOSI an PB5 wie in der SPI1 Library festgelegt<br \/>\nMISO an PB4 wie in der SPI1 Library festgelegt<br \/>\nCS an PA15<br \/>\nPEN an PB15 hei\u00dft bei meinem Display IRQ (Touch screen interrupt) Ist das das gleiche?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2094\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2094\">\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:36<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>die Include Anweisung :<\/p>\n<pre>#include \"stm32_ub_spi1.h\"\r\n<\/pre>\n<p>muss nat\u00fcrlich im Touch-File stehen. Am besten im ads7843.h<br \/>\nda liegen auch die anderen includes.<br \/>\nPB15 muss am ADS7843 an Pin 11 gehen. (PENIRQ)<br \/>\nund Fehler musst du selber suchen per Debugger z.B. \u201cwo\u201d er h\u00e4ngen bleibt.<br \/>\nund l\u00f6sch mal alles was mit PB1, PB4, PB5 zu tun hat. Damit die nicht<br \/>\ndoppelt initialisiert werden.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2103\" class=\"comment odd alt depth-3\">\n<div id=\"comment-2103\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/69284118e8609e5f71a80cbf7a6e8902?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\">Markus<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">31. August 2014 um 10:59<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hab eine weile rumprobiert und gemerkt, dass bei dieser Funktion SPI_I2S_GetFlagStatus() (in der Datei stm32f4xx_spi.c)der R\u00fcckgabewert immer RETURN ist, deshalb l\u00e4uft das Prog nicht weiter! Kann sein dass die Verbindungen zwischen STMDiscovery und ADS7843 zu lang (ca 20cm) sind?<br \/>\nhabe inzwischen alle unn\u00f6tigen Initialisierungen gel\u00f6scht!<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2119\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-4\">\n<div id=\"comment-2119\">\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\">4. September 2014 um 19:13<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>sorry kann dir da nicht weiterhelfen.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2143\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-2143\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/17314f2089dc967bb3b5c9a20144294a?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\">15. September 2014 um 20:51<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<br \/>\nwieder mal super lib., hat gleich funktioniert!<br \/>\nNur wie kann ich den touch invertieren?<br \/>\nLG<br \/>\nSimon<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2145\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2145\">\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. September 2014 um 08:05<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Die Kalibrations-Funktion m\u00fcsste die Einbaulage vom Touch ausgleichen. Starte die mal und probier ob das geht. Die Parameter musst du danach per Debugger auslesen, und die Startwerte damit ersetzen.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2309\" class=\"comment odd alt depth-3\">\n<div id=\"comment-2309\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/17314f2089dc967bb3b5c9a20144294a?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\">11. Oktober 2014 um 12:13<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Die neuen Werte habe ich ausgelesen und eingetragen, hat aber das Problem nicht beseitigt. Immer noch alles spiegelverkehrt!<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2314\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-4\">\n<div id=\"comment-2314\">\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. Oktober 2014 um 10:01<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>ok, dann mach das hier : in der Funktion \u201cP_Touch_CalcPos\u201d werden die Koordinaten berechnet. Spiegel da einfach am ende der Funktion die R\u00fcckgabewerte von X und Y :<\/p>\n<p>Touch_Kal.temp.xp=(LCD_MAXX-1)-XD;<br \/>\nTouch_Kal.temp.yp=(LCD_MAXY-1)-YD;<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2317\" class=\"comment odd alt depth-5\">\n<div id=\"comment-2317\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/17314f2089dc967bb3b5c9a20144294a?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\">12. Oktober 2014 um 14:23<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>L\u00f6st das Problem leider auch nicht. Hier einmal ein Bild zu Veranschaulichung des Problems. Der schwarze Pfeil zeigt die Richtung meines Fingers an, und der rote den Verlauf der gezeichneten Linie: <a href=\"..\/..\/puu.sh\/c9mL6\/ss%2b(2014-10-12%2bat%2b02.16.01).png\" rel=\"nofollow\">http:\/\/puu.sh\/c9mL6\/d6849195f1.png<\/a><br \/>\nDurch deinen \u00c4nderungsvorschlag sieht es dann so aus: <a href=\"..\/..\/puu.sh\/c9n5T\/ss%2b(2014-10-12%2bat%2b02.22.54).png\" rel=\"nofollow\">http:\/\/puu.sh\/c9n5T\/2bda1d77fd.png<\/a><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-2318\" class=\"comment even depth-5\">\n<div id=\"comment-2318\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/17314f2089dc967bb3b5c9a20144294a?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\">12. Oktober 2014 um 14:30<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Denken hilft manchmal <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":)\" \/><br \/>\nSo klapp es:<br \/>\nTouch_Kal.temp.xp=(LCD_MAXX-1)-XD;<br \/>\nTouch_Kal.temp.yp=YD;<br \/>\nDanke<\/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<li id=\"li-comment-2779\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-2779\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/ef204196a9f269ebd643e09be2822067?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\">D\u00fcsendieb<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">5. Januar 2015 um 12:12<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo Uwe,<br \/>\nich habe ein 3,2\u201c TFT von Sainsmart mit Touch und SD Card im Einsatz.<br \/>\nDas TFT und der Touch funktionieren prima. Danke f\u00fcr die super Libary und die Beispiele.<br \/>\nWenn man f\u00fcr die SD Card die 89-FATFS_SPI-Library benutzt, wird dort ebenfalls der PIN 15 wie in der Touch Libary benutzt.<br \/>\nDa du f\u00fcr den Touch nur einen Software SPI benutzt, sollte man doch in der Touch_libary den GPIO_Pin_15 per Suchen und Ersetzten auf einen anderen Pin legen k\u00f6nnen oder nicht?<br \/>\nDanke Axel<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2780\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2780\">\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. Januar 2015 um 13:09<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ja, das PEN-Signal (PB15) kannst du auf jeden beliebigen anderen freien Pin legen.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2887\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-2887\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/a161b78402b06677c036373be057a75b?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\">kay<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">12. Februar 2015 um 21:42<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<br \/>\nWollte nun auch die Libray benutzen f\u00fcr mein 7inch Display dort ist auch ein ADS7843 verbaut.<\/p>\n<p>meine Frage jetzt muss ich diese Konstannten alle auf null setzen ,<br \/>\nSicherlich oder?.<\/p>\n<p>Touch_Kal.wert.A=-0.077;<br \/>\nTouch_Kal.wert.B=0.002;<br \/>\nTouch_Kal.wert.C=248.238;<br \/>\nTouch_Kal.wert.D=-0.002;<br \/>\nTouch_Kal.wert.E=-0.101;<br \/>\nTouch_Kal.wert.F=355.533;<br \/>\nTouch_Kal.wert.xp1=1685;<br \/>\nTouch_Kal.wert.yp1=625;<br \/>\nTouch_Kal.wert.xp2=2971;<br \/>\nTouch_Kal.wert.yp2=1853;<br \/>\nTouch_Kal.wert.xp3=521;<br \/>\nTouch_Kal.wert.yp3=3166;<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2890\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2890\">\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\">13. Februar 2015 um 19:09<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>nein, nicht auf Null, sondern auf die Kalibrations-Werte.<br \/>\nDu musst die Funktion \u201cUB_Toch_Calibrate\u201d aufrufen<br \/>\nund nacheinander 3 Punkte auf dem Touch dr\u00fccken.<br \/>\nAm Ende muss du per Debugger die Werte aus der Struktur \u201cTouch_Kal\u201d<br \/>\nauslesen und als neue defaultwerte eintragen.<br \/>\nBeim n\u00e4chsten Start sollte dann der Touch kalibriert sein.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-4449\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-4449\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/8ee1edc4df18d1afd12eb0c4c8a55091?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\">Christian Julius<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">13. Dezember 2015 um 20:32<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<\/p>\n<p>um meine Wetteruhr zu perfektionieren wollte ich noch etwas \u201cTouch\u201d hinzuf\u00fcgen. Das Ding spielt auf einem 407er, SPI sind noch genug frei aber deine Pins sind schon verbraucht f\u00fcr meine Peripherie. Heisst das, dass Du SPI- Bibanging gemacht hast und beliebige Pins daf\u00fcr herangezogen werden k\u00f6nnen? Ich also nur den Code f\u00fcr meine freien Pins umschreiben m\u00fcsste?<\/p>\n<p>Gruss,<br \/>\nChristian<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-4453\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-4453\">\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. Dezember 2015 um 10:50<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>ja, das ist eine software SPI. Die GPIO defines stehen leider nicht im H-File<br \/>\nsondern direkt im C-Code. Damit wird das ab\u00e4ndern etwas aufw\u00e4ndiger<br \/>\naber ich denke du bekommst das hin. Du kannst den Code nach dem Wort \u201cGPIO\u201d durchsuchen, dann solltest du alle stellen finden.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>-diese Library dient zum auswerten eines 4Wire-Touch mit einem ADS7843-Chip. (es kann auch ein Zilltek UH7843 oder ein XPTEK XPT2046 sein, die sind kompatibel) -der Controller kann eigentlich \u00fcber einen SPI-BUS angesteuert werden, aber auf meiner Hardware liegt er nicht &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=217\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":9,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[144,9,7,143],"class_list":["post-217","page","type-page","status-publish","hentry","category-stm32f4","tag-ads7843","tag-library","tag-stm32f4","tag-touch"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/217","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=217"}],"version-history":[{"count":4,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/217\/revisions"}],"predecessor-version":[{"id":3657,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/217\/revisions\/3657"}],"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=217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}