Bekannterweise fehlen in der STEmWin Library absichtlich die Treiber für zB. ein SSD1963 (womit man leben kann) und es existieren nur Fragmente. Was aber ist mit der Touch-Unterstützung? Ich habe an der Stelle noch keine Infos gefunden. Ohne Touch-Unterstützung sind die Widgets auf einem 407 mit 480x272 witzlos. Oder hab' ich nur noch nicht tief genug geschürft? Auf dem 429 Discovery laufen die Demos - aber das muß nicht zwingend für mich heißen, daß dies auch in der kostenlosen Version von emwin der Fall ist...
timertick_t schrieb: > Was aber ist mit der Touch-Unterstützung? Ich habe an der Stelle noch > keine Infos gefunden. Hm, hattest Du nicht unlängst nach einem Tip für emWIN mit dem STM32F429 gefragt? Da hast Du doch einen Link auf die Seite von Uwe B erhalten. Auf dieser Seite ist ALLES erklärt - auch die Sache mit Deinem Touch. Es gibt sofort lauffähige Demos mit dem STMPE811 und eine gute Projektvorlage für das DISCO Board + STemWIN. Touch-Treiber: http://mikrocontroller.bplaced.net/wordpress/?page_id=2736 Projektvorlage STemWIN: http://mikrocontroller.bplaced.net/wordpress/?page_id=3158 Ich rate Dir dringend, die Doku zur emWIN mal zu lesen - die ist recht gut.
>Auf dieser Seite ist ALLES erklärt
Für einen SSD1963 + XPT2046 ist NICHTS erklärt sondern nur der
Standard-Kram für das 429er Board. Wobei die Treiber für die Controller
nicht das Problem ist, das bekommt man über kurz oder lang hin. Als
problematisch sehe ich das nahtlose Einflechten in Emwin an, das ist mir
im Moment noch zu fremd.
Das Hallo-Welt hab ich getestet und auf dem 429 hat's ja auch
funktioniert, auch eine Grafik-Demo, ein YT-Schreiber ging sofort -
wobei das Umschalten von Portrait auf Landscape die Compile-Zeit durch
den Code für das ext. RAM von 3 Sekunden auf 1 Minute erhöht...
Aber das 429er Board kannste mit dem nackigen 407 nicht vergleichen.
Emwin verwendet die LIN Anbindung für den 429, da ist schon alles drin -
beim 407 "ohne Alles" mit drr leeren LCDConf_FlexColor_Template sieht
die Sache aber ganz anders aus. Ich hab den ganzen Sonntag damit
verbracht Examples zu sondieren.
Das Web ist voller Emwin Demos, aber eigentlich sind das nur geladene
Bitmaps; Demos die Widgets benutzen hab ich so gut wie keine gesehen.
Gut möglich, dass das nen Grund hat...
Werd' mal weiter graben.
Was die Toucheinbindung angeht kann ich vielleicht helfen. Hatte ich die Tage erst für das F7 Discovery Board gemacht - auch zum ersten Mal :) emWIN nutzt eine Datenstruktur namens (Typ) GUI_PID_STATE für die Touchparameter x,y, Zustand (gedrückt/ nicht gedrückt). Diese wird vom WM_Manager ausgewertet. Diese musst du zuerst erzeugen:
1 | |
2 | GUI_PID_STATE Touch_param; |
Diese Struktur musst du dann mit deinen Werten vom Touchtreiber füllen, so etwa:
1 | Touch_param.x = meine_Touchposition_X; |
2 | Touch_param.y = meine_Touchposition_Y; |
Dann die eigentliche Übergabe an emWIN:
1 | GUI_MOUSE_StoreState(&Touch_param); |
Das wars ;) Im groben... In der aktuellen emWIN Doku auf Seite 963 ist das genauer erklärt. > wobei das Umschalten von Portrait auf Landscape die Compile-Zeit durch > den Code für das ext. RAM von 3 Sekunden auf 1 Minute erhöht... Programmierst Du mit Coocox? Dort ist das ein bekannter Fehler. Du musst im Linkerscriptfile "ub_linkerscript_stm32f429i_disco.ld" die Sektion:
1 | .HeapMemSection : |
durch
1 | .HeapMemSection(NOLOAD) : |
ersetzen. Das findest Du ganz unten im File.(Projektordner Root). Dann geht es schneller. Hierzu findest Du auf Uwe B. Seite etwas genauere Infos irgendwo in seinem Forum. > Das Web ist voller Emwin Demos, aber eigentlich sind das nur geladene > Bitmaps; Demos die Widgets benutzen hab ich so gut wie keine gesehen. > Gut möglich, dass das nen Grund hat... Auf der Segger Seite findet man im Download Bereich viele Beispiele. https://www.segger.com/emwin-samples.html Man kann mit emWIN schon einiges machen.
>Touch_param.x = meine_Touchposition_X; >Touch_param.y = meine_Touchposition_Y; Ich meine ich hab das heute Mittag bei deinem Namensvetter so ähnlich gesehen. Du hast die neusete Doku, mein Document: UM03001 Software version: V5.26 ist fast ein Jahr alt. Das hier hab ich in der Doku gefunden: 25.6 Basic buffer access API GUI_MTOUCH_Enable() Enables use of MT buffer. GUI_MTOUCH_GetEvent() Polls an event from the MT buffer. GUI_MTOUCH_GetTouchInput() Returns detailed information about a dedicated touchpoint. GUI_MTOUCH_IsEmpty() Evaluates if the MT buffer is empty. GUI_MTOUCH_SetOrientation() Can be used to set the touch screen orientation. GUI_MTOUCH_StoreEvent() Puts an event into the MT buffer. Ich werd' mich morgen mal dransetzen und versuchen das ganze Konstrukt zu knacken. Die Widgets sind schön gemacht kein Vergleich zu dem was der Schweizer abgeliefert hat - uGRFX(?). Kann sein, daß ich noch mal Hilfe brauche aber im Mom. sieht's erstmal gut aus. Anyway, Danke für deine Hilfe.
timertick_t schrieb: > Du hast die neusete Doku, mein Document: UM03001 > Software version: V5.26 ist fast ein Jahr alt. Naja, das Prinzip ist ja bei allen Version gleich geblieben... By the Way - Warum nimmst du nicht die neuere Version v5.28? Hier drin als Teil der Firmware zu finden: http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1897/PF261909 Vergiss erstmal GUI_MTOUCH_Enable() und Co, das bezieht sich auf Displays mit kapazitivem Touchpanel -> MT = Multi Touch Nachtrag: Ach verdammt: bei meinem Beispiel hab ich versehentlich ein Mausbeispiel genommen - sollte aber auch gehen - ist nur seltsam :) Das hier: GUI_TOUCH_StoreState() ist besser. siehe Doku ab Seite 960.
Ich hänge im Moment noch an der Hardware fest. Dummes Problem mit dem XPT2048, der streut und rauscht wie dolle. Als ob die Folie nicht in Ordnung wäre. Wenn ich sie nur leicht betätige und die Pixelposition bestimme, springen die Werte häufig nach oben rechts um ca 8..20mm (bei nem 480x272 4.3"). Da hilft auch Mittelwertbildung o.ä. nichts wenn von zehn Werten neun falsch liegen. Muß erst noch rausfinden was auf der dritte Achse mit dem "Pressure Measurement" rauszuholen ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.