www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Display mit Touchscreen bei Pollin?

Autor: Ralf (Gast)
Datum: 26.03.2009 16:14

Hi,
befindet sich auf dem Display von Pollin (Best.Nr. 120 346,
"Grafik-Display DataVision DG-16080-11") ein Touchscreen? Auf dem Bild
sieht man nämlich 4 Anschlüsse, die im Datenblatt jedoch nicht
beschrieben sind.
Oder ist das ein Anschluss für eine EL-Beleuchtung?
7€ für Display+Touchscreen wäre schon schön^^

Mit freundlichen Grüßen, Ralf
Autor: Klaus2 (Gast)
Datum: 26.03.2009 16:17

evtl isses nen serviervorschlag???

Klaus.
Autor: ... ... (docean) Benutzerseite
Datum: 26.03.2009 16:18

Da im Datenblatt was von Backlight steht, aber bei den PINs keins
aufgeführt wirds wohl dafür sein...

Aber was kann st du bei 7€ schon verlieren...

Weiß jmd den Controller der draufsteckt?
Autor: Ralf (Gast)
Datum: 26.03.2009 16:19

hoffentlich nicht..in der Beschreibung ist ja auch nichts erwähnt. Naja
falls ich demnächst mal bestelle und das Teil dann noch da ist werde ich
wohl eins mitordern.
Ralf
Autor: Klaus2 (Gast)
Datum: 26.03.2009 16:22

nenene, für mich sieht das extrem nach touch aus! leiterbahnführung,
"oben drauf", ...

bin mal gespannt!

Klaus.
Autor: Bauteiltöter (Gast)
Datum: 26.03.2009 16:29

Guckt mal hier:
http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=43741

Da hat einer das gLCD... das ist wirklich ein touch!

Bauteiltöter
Autor: Klaus2 (Gast)
Datum: 26.03.2009 16:31

...was hab ich gewonnen??? <:)

Dann wird das wohl bald ausverkauft sein :)

Klaus.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 26.03.2009 16:31

... ... wrote:
> Da im Datenblatt was von Backlight steht, aber bei den PINs keins
> aufgeführt wirds wohl dafür sein...

Das Display gabs schonmal, es hat ein grünes LED Backlight, uns
ansonsten einen recht guten Kontrast und Blickwinkel.

> Weiß jmd den Controller der draufsteckt?

Schau mal in die Artikelbeschreibung...

Klaus2 wrote:
> ...was hab ich gewonnen??? <:)

Nix, denn der Touchscreen da drauf ist kaputt. Daher wird es als ohne
verkauft. Die leitfähige Klebeverbindung zwischen Anschlussfolie und LCD
ist nicht richtig, daher hat sie keine Verbindung. Wenn man Glück hat,
erwischt man eines mit einem funktionierenden Touchpad (etwa 1 von 10).
Autor: lboppi (Gast)
Datum: 01.04.2009 20:40

Hallo zusammen,

also ich habe mein Display gerade ausgepackt und so wie es aussieht,
funktioniert der Touchscreen bei mir. Kenn' mich jetzt nicht wahnsinnig
mit der Funktionalität eines Tochscrenns aus, aber wenn ich den
Widerstand zwischen den Leitungen messe und aufs Display drücke, ändert
sich der Widerstand je nach der gedrückten Position (auf X und Y Achse).
Ohne Betätigung habe ich einen Widerstand nahe unendlich.

lboppi
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 01.04.2009 20:57

Mess mal an den Anschlüssen:
Zwischen jeweils 2 Anschlüssen müssen es etwa 300 bzw. 900 Ohm (oder
irgendwas ganz grob in der Richtung) sein wenn nichts gedrückt ist.
Untereinander müssen es unendlich sein, was du ja schon gemessen hast.
Autor: Tiny 80 (linux_80)
Datum: 01.04.2009 21:13

Man kann dem Touch aber auf die Sprünge helfen (Lötkolben), hat bei
meinen zwei LCDs auch geholfen. Ob das Grundsätzlich bei allen der Fall
ist, kann man so nat. nicht sagen.
Autor: Hendrik (Gast)
Datum: 01.04.2009 21:24

Von Atmel gibt es auch eine Application Note zum Thema Touchscreen.
Vielleicht hilft sie dir beim Verständnis etwas weiter.

http://atmel.com/dyn/resources/prod_documents/doc8091.pdf


Viele Grüße, Hendrik
Autor: lboppi (Gast)
Datum: 02.04.2009 21:45

Danke Hendrik für das Datenblatt. Weiss' jemand, ob man so ohne weiters
ein normales Kabel an das "Flachbandkabel" löten kann ?

@Benedikt: Genau in diesem Bereich liegen meine Widerstandswerte

lboppi
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 02.04.2009 21:52

lboppi wrote:
> Weiss' jemand, ob man so ohne weiters
> ein normales Kabel an das "Flachbandkabel" löten kann ?

Wenn du diesen Folienstecker meinst: Ja, das geht. Habe ich auch
gemacht.
Autor: Michi (Gast)
Datum: 02.04.2009 22:24

@Benedikt K
> Wenn man Glück hat,
> erwischt man eines mit einem funktionierenden Touchpad (etwa 1 von 10).

Ich bin mal für eine kleine Statistik :-D

Meiner funktioniert in X und Y-Richtung ohne vorheriges Löten oä
Über Linearität kann ich nichts sagen, da ich mir nur die Widerstände
auf dem Multimeter angesehen hab.

Nur eine kleine Sache: Für seichtes Berühren mit dem Finger ist meiner
nicht geeignet. Entweder Fingernagel oder fest mit dem Daumen drücken.
(Oder  Plastik-Touchscreenstift, den ich nicht besitze)
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 02.04.2009 22:43

Michi wrote:

> Nur eine kleine Sache: Für seichtes Berühren mit dem Finger ist meiner
> nicht geeignet. Entweder Fingernagel oder fest mit dem Daumen drücken.
> (Oder  Plastik-Touchscreenstift, den ich nicht besitze)

Ist bei mir auch so.
Von der Linearität her sind die ausgezeichnet:
Ich kann reproduzierbar +/-1 Pixel genau treffen.
Autor: Meik Dittmann (meik)
Datum: 06.04.2009 03:18

Das Display kam vorgestern auch zu mir. Bei meinem sind zwar beide
Koordinaten verfügbar, jedoch sind die gegenseitig etwas vonenander
abhängig, sprich nicht linear. Das wird wohl der Defekt daran sein. Ist
da aus Erfahrungswerten noch irgendwas zu machen ausser mit Mathematik?

Meik
Autor: Jan (Gast)
Datum: 06.04.2009 13:20

Könnte jemand mal ein hochauflösendes Foto machen von der kritischen
Kontaktstelle (sofern sie denn nun doch existiert) ???
Autor: Tiny 80 (linux_80)
Datum: 06.04.2009 13:29

Der schlechte Übergang ist einfach der Kontakt zwischen Folienleiter und
Touchfolie.
Ich weiss nicht ob da ein Foto mehr Informationen bringt.

Das hab ich damals gemacht:
http://roboter.net-con.net/images/touch/GLCD-Touch2.jpg
Autor: Nietzsche (Gast)
Datum: 06.05.2009 15:38

Die gibts tatsächlich immernoch... Hab gleich mal 3 mitbestellt
(...warum nur meine Pollin Bestellungen immer gleich so teuer werden ;)

Bin schon sehr gespannt, wie das klappt... Mich wundert, dass die
immenroch welche von den Teilen haben...
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 06.05.2009 15:42

Die kritischen Stellen sind die 4 braunen Rechtecke rechts wo das
Folienkabel drangeht auf obigem Foto.
Theoretisch ist eine Reparatur des leitfähigen Klebers möglich:
Man muss die Stellen erhitzen, zusammenpressen, abkühlen lassen. Wichtig
dabei ist, dass der Druck solange erhalten bleibt bis der Kleber wieder
kalt ist.
Autor: Olli (Gast)
Datum: 07.05.2009 16:07

Hallo,

hat jemadn ein Code Beispiel(AVRGCC) zum Ansteuern des GLCD? Ich finde
nur das für die KS0108. Das hat aber zwei CS Anschlüsse.
Danke im voraus!
Gruss
Olli
Autor: olli (Gast)
Datum: 10.05.2009 12:17

Hallo,

ich habe nun ein C- Programm für dieses Display gefunden. Funktioniert
auch soweit. Nun habe ich eine weitere Frage. Wie kann man eine Grafik
so konvertieren, das man nur die einzelnen Pixel koordinaten hat, um sie
auf diesem Display darzustellen. Der Autor dieses Programms hat einen
Pinguin
so dargestellt:
http://www.frozeneskimo.com/samsunglcd/avr-lc7981-.... Wie
könnte man eine andere Grafik darstellen?
Gruss
Olli
Autor: spess53 (Gast)
Datum: 10.05.2009 12:30

Hi

>Der Autor dieses Programms hat einen Pinguin so dargestellt:....

Das muss jemand aus der Sado-Maso-Szene sein. Ich habe mir, allerdings
für Assembler, ein Programm geschrieben, das Bitmaps in .db-Anweisungen
umwandelt. Jedes Bild hat ein Label und wird in das Programm ein
gebunden. Das Bild wird dann vom Flash einfach (Byteweise) auf das
Display kopiert.
In C müsste man aus dem Bild ein Array machen, das zum Display kopiert
wird.

MfG spess
Autor: olli (Gast)
Datum: 10.05.2009 13:02

so habe ich mir das auch gedacht. Das die Pixel koordinaten im Array
stehen, und ich sie da auslese. Nur erst mal die Koordinaten bekommen.
Ich dachte da gibt es Hilfsprogramme? Sonst wäre es wirklich ein Fall
für Sado Maso..
Autor: Thorsten E. (nietzsche)
Datum: 11.05.2009 11:02

Hm, leider sehen die Dinger jetzt ein bischen anders aus... Hab meine
grad ausgepackt... Wenn ich mit dem Multimeter messe, habe ich zwischen
300 und 500 Ohm Widerstand zwischen je 2 Anschlüssen... Allerdings
ändert sich daran rein garnichts, wenn ich auf dem Display rumdrücke...
Weder mit Finger/Nagel, noch mit Touchstift...

Muss das Display mit Spannung versorgt werden, damit ich da was messen
kann?
Autor: Netzwanze (Gast)
Datum: 11.05.2009 11:15

Der Widerstand ändert sich zwischen den jeweils 2 Anschlüssen auch
nicht.
Du hast aber auch zwei Kombinationen, bei denen der Widerstand unendlich
ist. Der wird kleiner, wenn Du das Display berührst/drückst.
Autor: Thorsten E. (nietzsche)
Datum: 11.05.2009 11:25

Olé, perfekt, dann funktionieren alle 3 Touchs.. Der Tag ist gerettet :)

Linearität muss ich noch mal genau testen :)
Autor: Fabian S. (jacky2k)
Datum: 18.05.2009 19:02

Moin moin,
gibts inzwischen ne C Lib fürn Atmega(8)?
Meins ist heute auch gekommen, zumindest die X-Achse funktioniert wohl,
Y habe ich noch nicht getestet.
Mich wundert es auch, dass momentan noch 785 verfügbar sind...
Autor: Meik Dittmann (meik)
Datum: 18.05.2009 19:46

Ich habe jetzt 2 von denen. Das Zweite kam leider mit kohlebeschichteten
Kontakten; ist also nix mit anlöten. Vernünftig ans Laufen bringe ich
die Touchscreens aber nicht, da die X Koordinate von der Y Koordinate
abhängig ist und umgekehrt. Hat jemand eine Idee, wie man das am Besten
rausrechnet?

Gruß Meik
Autor: Fabian S. (jacky2k)
Datum: 18.05.2009 19:47

Mhh numerisch oder so ne Karte erstellen?
also 10x10 Messungen machen und dann nähern.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 18.05.2009 19:48

Meik Dittmann schrieb:
> Vernünftig ans Laufen bringe ich
> die Touchscreens aber nicht, da die X Koordinate von der Y Koordinate
> abhängig ist und umgekehrt. Hat jemand eine Idee, wie man das am Besten
> rausrechnet?

Falsch angeschlossen, bzw. falsch angesteuert?
Eigentlich darf das nämlich nicht sein, außer der Widerstand der Fläche
ist stark ungleichmäßig.
Autor: Meik Dittmann (meik)
Datum: 18.05.2009 19:55

Angeschlossen wie oben im Thread verlinkt. Es machen auch Beide die
spirenzchen. Daher hatte ich den Verdacht auch schon mal in die
Windungen bekommen. Ich werde dem noch mal nachgehen. Mit dem Controller
ausgewertet hatte ich die Koordinaten noch nicht, nur über zwei 100 OHM
an 5V angeschlossen und die Spannung gemessen. Bei X blieb die konstant,
wenn ich von links unten genau diagonal nach rechts oben mit dem Finger
drübergefahren bin.

Meik
Autor: Christian J. (elektroniker1968)
Datum: 18.05.2009 20:01

Hier steht wie es geht:

http://www.mcselec.com/index.php?option=com_conten...

The touchscreen that’s used here is a 4 wire resistive touchscreen. It’s
not more then 2 big resistors, one with the connection leads to the top
and the other with the leads to the side. By pressing on the screen your
making contact between the top and bottom layer. To determine the
cordinates you read first the x value and then the y value. To say it
simple;

Touchscreen x read, Set PF0 high and PF2 low and read PF1 or PF3.
Touchscreen y read, Set PF1 high and PF3 low and read PF0 or PF2.

Die sind auch nicht abhängig voneinander, wenn man die richtig
ansteuert. X+ an Plus, X- an Minus und über Y+ oder Y- auslesen. Die
andere Seite umgekehrt.
Autor: Meik Dittmann (meik)
Datum: 18.05.2009 20:13

Habs gerade noch mal angeschlossen und die 5 V an die 500 bzw. 300 OHM
gelegt(Pin 1+2 bzw. 3+4). Funktioniert! Das hatte ich bei der anderen
Beschreibung nur irgendwie anders verstanden. Da waren die 5 V an Pin
1+3 bzw. 2+4.
Jetzt läufts! Danke noch mal für den Denkanstoß.

Meik
Autor: Meik Dittmann (meik)
Datum: 18.05.2009 20:22

Hallo Christian.
Ich sehe, du hast den entsprechenden Textabschnitt noch einkorrigiert.
Das meinte ich mit den Pin's. Dann ist die Reihenfolge von oben
scheinbar PF0, PF2, PF1 und unten dann PF3

Verwirrend.
Autor: TDN (Gast)
Datum: 18.05.2009 20:36

Hi

>Der Autor dieses Programms hat einen Pinguin so dargestellt:....

>Das muss jemand aus der Sado-Maso-Szene sein.

Sieht für mich wie ne Vektorgrafik aus - Kann je nach Grafik ziemlich
speichersparend sein...
Autor: Fabian S. (jacky2k)
Datum: 18.05.2009 21:26

So, ich versuche grade das Teil wenigstens mal zum leuchten zu bekommen
und scheitere.
Kann man nicht einfach an LED+ und LED- Spannung anlegen und die
Hintergrundbeleuchtung geht an?
Bei mir tut sich garnichts. Habe die Spannung von 0 bis 5V hochgedreht.
Habe daraufhin alles andere auch noch angeschlossen:
Vss: GND
Vdd: 5V
V0:  5V
CS:  Low
RES: Low
Rest: NC

Und natürlich die LED Pins.
Warum geht das Display nicht an? Irgendwas falsch? Muss ich erst den
Controller initialisieren damit es muckt?
Autor: Thomas Forster (Gast)
Datum: 18.05.2009 21:59

@Fabian,

hast du eines mit LED oder EL-Folie?

Bei der EL-Folie ist eine ca. 0,5mm dicke Folie zwischne Display und
Platine zu sehen.

Dafür brauchst du einen Konverter. Ich habe den "EL-Inverter 08" von
Reichelt und es leuchtet wunderbar...
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 18.05.2009 21:59

Fabian S. schrieb:

> Kann man nicht einfach an LED+ und LED- Spannung anlegen und die
> Hintergrundbeleuchtung geht an?

Es gibt bei Pollin verschiedene Versionen. Eine davon hat eine EL Folie.

> Warum geht das Display nicht an? Irgendwas falsch? Muss ich erst den
> Controller initialisieren damit es muckt?

Ja.
Autor: Fabian S. (jacky2k)
Datum: 18.05.2009 22:04

Ahhh dann bin ich ja schon mal schlauer, da ist eine Folie.
Nun die Frage: Wie viel Saft braucht das Teil?
Habe hier einen 630V oder so von sonner PC Leuchtröhre, geht das damit
oder würde ich damit was braten???
Das Prob ist, dass die beiden Pins für LED+ und LED- nur 2,54mm
nebeneinander liegen, 600V würde da glaube ich gerne mal überspringen...
Ahh ich sehe grade unter dem Flachkabel sind noch 2 Pins die scheinbar
direkt zu dieser Folie führen, die sind auch weiter auseinander, dann
muss das wohl da ran?
Autor: Thomas Forster (Gast)
Datum: 18.05.2009 22:05
Angehängte Dateien:

Falls es jemand zum Start nützt: Ich habe am Wochenende mal schnell eine
Ansteuerung zusammengeschrieben. Das ganze ist in Assembler für einen
Atmega8 mit internen 1MHz. Der Code ist nur schlampig runtergeschrieben,
aber es ist ja auch nur als "Starter" gedacht...

Die Abfrage des Touch ist noch nicht drinnen, soll aber noch kommen.

Thomas
Autor: Thomas Forster (Gast)
Datum: 18.05.2009 22:09

@Fabian

Du brauchst einen EL-Konverter! Die Schaltungen für Kathodenröhren
funktionieren nicht!

Mein Konverter liefert 120V AC.
Autor: Fabian S. (jacky2k)
Datum: 18.05.2009 22:19

Nur mal so als Nebenfrage: Wofür steht EL?
Autor: Thomas Forster (Gast)
Datum: 18.05.2009 22:24
Angehängte Dateien:

So, nun zu meinem Problem:

Ich habe nur einen sehr schwachen Kontrast. Wenn ich weiter "aufdrehe",
kommen schon die Hintergrundpixel raus.
Die ist aber nur im normalen Betrieb so. Als meine Ansteuerung mal in
der Initialisierung hängengeblieben ist, hatte ich ein wunderbar
schwarzes Bild.

Kennt vielleicht jemand das Problem?

Thomas
Autor: gast (Gast)
Datum: 18.05.2009 22:55

und wenn du deinen text einmalig beschreibst ?? zb vor der main-loop ??
Autor: Christian J. (elektroniker1968)
Datum: 18.05.2009 23:39

Ich bräuchte noch die Init Sequenz für Textmode, fall die jemand
hat.....

Falls Du keinen EL Inverter hast: Bei ATU gibts beleuchtete Türleisten
für Autos, da kann man den ausschlachten. Ist 12V bei mir aber egal, ich
benutze DC/DC Wandler.
Autor: Meik Dittmann (meik)
Datum: 19.05.2009 07:44

Thomas Forster schrieb:
> So, nun zu meinem Problem:
>
> Ich habe nur einen sehr schwachen Kontrast. Wenn ich weiter "aufdrehe",
> kommen schon die Hintergrundpixel raus.
> Die ist aber nur im normalen Betrieb so. Als meine Ansteuerung mal in
> der Initialisierung hängengeblieben ist, hatte ich ein wunderbar
> schwarzes Bild.
>
> Kennt vielleicht jemand das Problem?
>
> Thomas

Welche Spannung hängt am Display? Es sollten recht genau 5,0 V sein,
nicht darunter, sonst schafft der interne Spannungswandler die nötige
Kontrastspannung nicht.
Autor: Thomas Forster (Gast)
Datum: 19.05.2009 10:00

Spannung ist gemessen bei 5,05 V.

@gast:
Die Überschrift wird nur einmal am Ende der Reset-Routine geschrieben.
Lediglich der Zähler in der Mitte wird 1 mal pro Sekunde geschrieben.


@Christian:
Meine INIT ist für Textmode. Bascom und C gibts im Netz.


Werde mich heute abend noch mal dransetzen.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 19.05.2009 10:01

Hast du vielleicht eine zu hohe Auflösung eingestellt? Also mehr Zeilen
als das Display hat?
Autor: Thomas Forster (Gast)
Datum: 19.05.2009 12:41
Angehängte Dateien:

Hallo Benedikt,

ich habe jetzt die gleicehn Einstellungen wie du verwendet und jetzt
passt der Konrast. Danke!

Anbei nochmal mein abgeänderter Code.

Gruß
Thomas
Autor: Fabian S. (jacky2k)
Datum: 19.05.2009 17:05

OK, jetzt bin ich vollkommen verwirrt.

Christian schreibt: Ist 12V bei mir aber egal, ich benutze DC/DC
Wandler.
Thomas schreibt: Mein Konverter liefert 120V AC.
???  AC ODER DC? Beides geht wohl nicht :D
Oder meinte Christian nur, dass er einen DC/DC Wandler von 5 auf 12V
hat, um damit den 120V AC Inverter zu betreiben?
BTW: Wo issen der Unterschied zwischen Inverter und Konverter? Ist ein
Inverter nicht ein Konverter?
Autor: Christian J. (elektroniker1968)
Datum: 19.05.2009 20:38

Hallo,

das ier verstehe ich nicht:

ldi temp1, 2    ;Adresse 2: Anzahl horiz. Zeichen -1
    ldi temp2, 26
    rcall lcd_init_command

(brrr.... Assembler)

Du musst doch die Zeichenzahl so wählen, dass sie in 160 Pixel
reinpasst. 160 / 27 ist aber ungerade. Meiner Ansicht nach geht da nur
eine Zeichenfeldgrösse und das ist 8x8 für 20 Zeichen. Zur Auswahl
stehen 6,7,8, je grösser umso weiter stehen die zeichen auseinander. Der
Kontroller weiss doch sonst gar nicht wo er die Zeichen setzen soll. Die
werden doch fortlaufen geschrieben, ist er hinten fertig gehts eine
Zeile tiefer wieder weiter.

Läuft das denn ????

Nein, ich habe einen kleinen DC/DC Wandler, der aus 5V 5....40V machen
kann. Der EL Inverter hat 12V Eingang und ca 120 VAC Ausgang. Auf die
Frequenz kommt es sagte der Mod hier.
Autor: Thomas Forster (Gast)
Datum: 19.05.2009 21:43
Angehängte Dateien:

> ldi temp1, 2    ;Adresse 2: Anzahl horiz. Zeichen -1
>    ldi temp2, 26
>    rcall lcd_init_command
> Läuft das denn ????

Es sah so wie auf meinem Foto aus: Enge Schrift und mieser Kontrast.

Inzwischen habe ich den Wert nach Benedikts Vorgaben korrigiert. Der
neue Sourcecode ist 2 Posts darüber.
So sieht es jetzt aus.

Thomas
Autor: Christian J. (Gast)
Datum: 19.05.2009 21:59

Hi,

habe meines erstmal an Strom und Kontrast gelegt. Ist es normal, dass da
Streifen übers ganze Bild gehen, die auch beim reset nicht weggehen?
Display OFF läuft jedenfalls.

Nervig ist das Pfeifen des Inverters, so ein hoher Ton.
Autor: Fabian S. (jacky2k)
Datum: 19.05.2009 22:00

Und wer verrät mir jetzt noch die Frequenz die der Inverter haben muss?
:D
Autor: Christian J. (Gast)
Datum: 19.05.2009 22:03

Schlimm ist auch, dass die Streifen auf der einen Bildhälfte blauer sind
als die auf der anderen Seite, als wäre das LCD Fluid ungleich verteilt.
Dabei ist das doch nur ein s/w Display.

Der Hit ist diese EL Folie ja nicht...... funzel
Autor: Christian J. (Gast)
Datum: 19.05.2009 22:05

100- 1000 Hz
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 19.05.2009 22:07

Christian J. schrieb:
> Schlimm ist auch, dass die Streifen auf der einen Bildhälfte blauer sind
> als die auf der anderen Seite, als wäre das LCD Fluid ungleich verteilt.
> Dabei ist das doch nur ein s/w Display.

Mach mal ein Foto. Das klingt definitiv nicht normal.

> Der Hit ist diese EL Folie ja nicht...... *funzel*

Ja, die Farben sind meist nicht gerade schön, dunkel sind die auch noch
und die Lebensdauer ist auch nicht so ganz das optimale. Dafür sind die
halt schön dünn.

Fabian S. schrieb:
> Und wer verrät mir jetzt noch die Frequenz die der Inverter haben muss?
> :D

Ein paar 100Hz. Die meisten EL Inverter haben 500-1000Hz. Zur Not (also
zum Testen) gehen auch 50Hz, also z.B. ein kleiner 24V Trafo rückwärts
an einen 12V Trafo um so 110V zu erhalten.
Autor: Christian J. (elektroniker1968)
Datum: 19.05.2009 22:18
Angehängte Dateien:

Hi,

scheint aber normal zu sein, wenn ich mit dem Finger über die Kontakte
gehe ändert es sich. Teilweise ganz lustig, da scrollt es von oben nach
unten durch. Meine EL ist einfach nur hellgrau.

Reset = H
Display OFF = H

Ich hatte das Display bei Pollin ja reklamiert, weil ich dachte die EL
sei defekt. Jetzt kriege ich kostenlos ein Neues :-)
Autor: Meik Dittmann (meik)
Datum: 20.05.2009 14:52

Die Streifen sind nicht normal. Das habe ich bei meinen zweiten auch.
Zwar nicht so ausgeprägt aber immerhin. Reklamation läuft.
Mal sehn, ob ich mir aus zwei defekten 1 ganzes bauen kann. An mein
erstes sind mir versehentlich 12V draufgerutscht.....

Meik
Autor: Christian J. (elektroniker1968)
Datum: 21.05.2009 15:46

Hallo,

bist Du da sicher? Die Daten Pins sind bei mir noch nicht angeschlossen.
Das Display ist leider fest eingelötet, wollte ich ungern rausreissen.
Oder liegt es vielleicht nur an der fehlenden Initialisierung, dass das
Müll im internen Ram steht? Das geht nämlich auch wieder weg, wenn man
mit dem Finger über die Pins geht.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 21.05.2009 16:10
Angehängte Dateien:

Es scheint mehr als 2 verschiedene Versionen davon zu geben, ich habe
zumindest jetzt schon 3 verschiedene:
- Links: grünes LED Backlight aber zu 90% defekte Touchscreens, lange
Stiftleisten (gabs letztes Jahr bei Pollin)
- Mitte: EL, keine Stiftleisten, Touchpad bei mir ok, Folienkabel lötbar
- Rechts: EL, kurze Stiftleisten, war schonmal eingelötet, Touchpad ok,
aber Folienkabel graphitiert -> nicht einlötbar. Das Displays ist defekt
(etliche Zeilen sind halb defekt).

@Meik
Hat dein defektes auch die kurze, bereits verzinnte Stiftleiste?
Falls ja dann kann man das wohl als Kriterium für ein Ausschussteil
verwenden und sollte dieses genauer prüfen.

Unangesteuert zeigt das Display bei richtig eingestellter Spannung
nichts an. Nur wenn man diese extrem hochdreht kommt irgendein Mist
raus.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 21.05.2009 16:19
Angehängte Dateien:

So sieht das defekte aus. Wenn man drauf drückt, gehen manche Zeilen an,
andere aus. Also das übliche Problem mit der Kontaktierung der Leitfolie
zwischen Platine und LCD.
Autor: Meik Dittmann (meik)
Datum: 21.05.2009 16:53

Benedikt K. schrieb:
> @Meik
> Hat dein defektes auch die kurze, bereits verzinnte Stiftleiste?
> Falls ja dann kann man das wohl als Kriterium für ein Ausschussteil
> verwenden und sollte dieses genauer prüfen.....

Jupp.
Ist da noch was zu machen mit Heissluft oder Lötkolben?
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 21.05.2009 16:57

Theoretisch ja, praktisch wirds schwierig.
Reklamieren und ein neues schicken lassen, das dürfte die einfachste
Lösung sein.

Wenn das Display so liegt wie auf meinem Foto, dann schau mal von links
auf die Seite. Da ist ein breites Folienkabel das sowohl auf der Platine
als auch auf dem Display angeklebt ist.
Da kommt man nur schwer ran ohne noch mehr kaputt zu machen.
Autor: Meik Dittmann (meik)
Datum: 21.05.2009 17:00

Gesehen hatte ich das schon. Ich werden es einfach mal wagen und den
Lötkolben bei moderater Temperatur drüberstreichen. Die Reklamation
läuft ja bereits. Über das Ergebnis lasse ich mich dann hier noch mal
aus.
Autor: Christian J. (elektroniker1968)
Datum: 21.05.2009 18:14

Also...... jetzt stehe ich vor der Entscheidung das Ding zu verdrahten
oder es sein zu lassen und auszubauen. Beim Draufdrücken tut sich
nichts, verändert sich nicht. Zwei zeilen bleiben aber immer weiss.

Pollin..... ein echter Schrotthandel.
Autor: Meik Dittmann (meik)
Datum: 21.05.2009 18:57

Ich versuch's gleich mal mit dem Lötkolben. Gegen 20:00 Uhr weiß ich
mehr.
Autor: Meik Dittmann (meik)
Datum: 21.05.2009 19:27
Angehängte Dateien:

...vorher...
Autor: Meik Dittmann (meik)
Datum: 21.05.2009 19:28
Angehängte Dateien:

...nachher...


Geht also. Flache Lötspitze, sauber, 180°
Autor: Christian J. (elektroniker68)
Datum: 22.05.2009 08:58

Kannst Du mal sagen, was Du da gelötet hast? Bei mir sind auch Streifen,
die nicht weggehen.

Habe grad nochmal mit Pollin telefoniert, die bestätigten mir, dass da
recht viel reklamiert wurde und wollen das prüfen. Es gehe leider nicht
10 Stück zu bestellen und dann 9 zurückzusenden :-)

Ich habe denne allerdings auch mal auf die Füsse getreten, dass die ihre
Waren zu kontrollieren haben, es kann nicht sein, dass die aus
Elektroschrott, der aussortiert wurde noch Geld machen.
Autor: Meik Dittmann (meik)
Datum: 22.05.2009 09:36
Angehängte Dateien:

Hallo Christian.
Der Folienleiter an der Seite muss erhitzt werden. Am Besten von oben
nach unten alle erhitzen. Wenn man nämlich einmal anfängt, lösen sich
die benachbarten, gerade noch so anhängenden Kontakte, durch die
Wärmeausdehnung der Platine auch noch ab.

Christian J. schrieb:
> ... es kann nicht sein, dass die aus
> Elektroschrott, der aussortiert wurde noch Geld machen.

Das ist glaube ich die Geschäftsgrundlage von Pollin. Zeugs, was keiner
haben will, für wenig Geld anbieten.
Autor: Christian J. (elektroniker1968)
Datum: 22.05.2009 17:17
Angehängte Dateien:

Hallo,

heute kam mein Ersatzdisplay an nach der Reklamation: Ein nagelneues
Display, Original verschweisst vom Hersteller. Allerings habe ich denen
auch Druck gemacht, dass ich 10 bestellen werde und 9 zurücksende.

Es geht doch :-)
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 22.05.2009 17:20

Das ist das Display wie ich auch eins habe. Bei dem kann man wunderbar
auf dem Folienkabel löten.
Autor: Christian J. (elektroniker1968)
Datum: 22.05.2009 17:31

Dafür habe ich einen alten ISA Slot zerschnitten, mit einer Platine auf
das Folienkabel geklebt und reingeklemmt klappt das wunderbar.
Autor: Torsten Kalbe (nobby)
Datum: 30.05.2009 18:59

Hallo,

ich glaube ist stehe beim Display etwas auf dem "Schlauch", vielleicht
kann mir hier jemand helfen.
Ich verstehe bei dem Datenblatt nicht ganz, wo da welche Spannung ran
soll. Was für eine Spannung kommt an Pin 2, 3 und 17.
Wo stelle ich den Kontrast ein ?

Gibt es hier auch einen C-Code für die Ansteuerung für das Display ?

Danke
Torsten
Autor: Hannes Lux (Gast)
Datum: 31.05.2009 00:21

Nungut, da sich kein Profi meldet werde ich mal mein unverifiziertes
Halbwissen verkünden: ;-)

> Was für eine Spannung kommt an Pin 2, 3 und 17.

Pin 2 müsste Vcc (+5V) sein
Pin 3 sollte Kontrastspannung (-) sein

Pin 17 ist laut Datenblatt "Negative Voltage Output(-10V)", ist also der
Ausgang des internen Spannungswandlers zum Erzeugen der
Kontrastspannung.

> Wo stelle ich den Kontrast ein ?

Mit einem Poti zwischen Pin 17 und GND, Schleifer an Pin 3.

> Gibt es hier auch einen C-Code für die Ansteuerung für das Display ?

Hier habe ich was gefunden:
http://www.frozeneskimo.com/samsunglcd/avr-lc7981-v1/
Ich habe es allerdings nicht getestet, ich habe auch gar keinen
C-Compiler installiert. Ich erhoffe mir damit nur Tipps für eigene
ASM-Routinen, hatte aber bisher noch keine Zeit dazu.

...
Autor: Torsten Kalbe (nobby)
Datum: 31.05.2009 00:35

Oh weia, ja, besten Dank.

Das hat ganz schön gekracht, als mir eben das Brett vom Kopf abgefallen
ist :-)

Output = Ausgang, sicher, deswegen habe ich auf einem Bild auch ein
Kabel von Pin 17 zu Pin 3 gesehen....

In einen Roboterforum gibts auch nen Bild, wo dann die Koordinaten im
Display stehen, wenn ein Touch kam, aber den Code habe ich nicht
gesehen.

Vielleicht macht es Sinn, mal aktiv in der Richtung zu werden, inkl.
Anschlußplan für Display und Touch. Ich werde mal die nächsten Tage was
versuchen.
Denn auch der Anschluß vom Touchpad ist mir nicht klar. Da werden immer
alle 4 Anschlüsse an den Prz. gelegt, sollte es nicht reichen, wenn nur
2 angeschlossen werden ? Die anderen 2 dann an Masse und der PullUp vom
Eingang am Proz. aktiv.

Gruß
Torsten
Autor: Hannes Lux (Gast)
Datum: 31.05.2009 00:55

> Denn auch der Anschluß vom Touchpad ist mir nicht klar. Da werden immer
> alle 4 Anschlüsse an den Prz. gelegt, sollte es nicht reichen, wenn nur
> 2 angeschlossen werden ? Die anderen 2 dann an Masse und der PullUp vom
> Eingang am Proz. aktiv.

Hier wieder nur unverifiziertes Halbwissen:
Ich denke, es wird nix mit nur 2 Anschlüssen...
Der Touchscreen enthält ja (stark vereinfacht) zwei Potis, deren
Schleifer beim Tatschen zusammengeschaltet werden, aber nicht
herausgeführt sind.

Um nun die Waagerechte zu messen, wird die Waagerechte an Spannung und
GND gelegt, die Senkrechte potentialfrei gemacht und per ADC gemessen.

Um die Senkrechte zu messen, wird die Senkrechte an Spannung und GND
gelegt, die Waagerechte von Spannung und GND getrennt und per ADC
gemessen.

Um zwischen Unbetätigt und Betätigung am Rand unterscheiden zu können,
muss jedem Zweig noch ein Widerstand in Reihe geschaltet werden, damit
der "Rand" eben nicht am Widerstandsende liegt. Der interne PullUp kann
für definierten Wert beim Nichtbetätigen sorgen.

Die einfachste Lösung dürfte also sein, für jede Achse einen ADC-Pin und
einen Normalpin zu verwenden. Der ADC-Pin wird dann zwischen ADC-In mit
PullUp und Output mit H-Pegel umgeschaltet, der Normalport zwischen
Input ohne PullUp (also hochohmig) und Output mit L-Pegel.

Aber wie gesagt, alles hypothetisch, ich habe mit dem Ding noch nichts
gemacht (außer Widerstandswert des Touchscreens ausgemessen).

...
Autor: J. K. (rooot)
Datum: 31.05.2009 09:11

bezüglich Touch kann ich folgendes AppNote empfehlen:
http://www.atmel.com/dyn/resources/prod_documents/...

im Roboternetz haben sie auch zu dem Thema einiges
http://www.roboternetz.de/phpBB2/zeigebeitrag.php?...

wenn du den ganzen Thread anschaust findest du auch Schaltplan+Code

mfg
J.K.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 31.05.2009 09:40
Angehängte Dateien:

Für alle die das LCD mal schnell testen wollen (inkl Touchpad), hier ein
kleines Testprogramm für einen mega8. Fusebits auf 8MHz internen Takt
einstellen, sonst wird alles etwas langsam.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 31.05.2009 09:41
Angehängte Dateien:

Die Anschlussbelegung dazu. Die ganzen Cs an Spannung, ARef,
Resetbeschaltung usw. habe ich jetzt im Schaltplan weggelassen.
Mit dem Taster wird das Bild gelöscht.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 31.05.2009 09:42
Angehängte Dateien:

Und wenn dann alles läuft, dann kann man auf dem Display etwas malen...
Autor: Torsten Kalbe (nobby)
Datum: 31.05.2009 21:35

Klasse, mein Display funktioniert, mit Touch !!

Ist übrigens das Mittlere aus Benedikts Bild. War in schwarzer Tüte
verpackt und am 20pol unverlötet. Am Touch-Stecker waren leichte Spuren
zu sehen, vielleicht vom Test ? Ich habe da jetzt eine
Pfostenstiftleiste drangelötet.

Gruß
Autor: J. K. (rooot)
Datum: 01.06.2009 19:57

@Benedikt K.

könntest du keinen Code posten? Ich hab auch das Display, und es
funktionert nicht. Ich bin mir nicht sicher ob das Ding kaputt ist, oder
beim code was nicht passt.

Genau in der mitte des lcd verläuft ein schwarzer dünner streifen, sonst
tut sich nichts.

Das hex-file kann ich nicht werwenden, da ich einen Mega16 habe, und
einen anderen Port verwende.

MfG
J.K.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 01.06.2009 20:17
Angehängte Dateien:

Na gut. Er ist aber nicht wirklich kommentiert und ich behaupte nicht
dass er fehlerfrei ist.
Mit dem angezeigten Testbild sollte man gut erkennen können, ob das
Display ok ist.
Autor: J. K. (rooot)
Datum: 01.06.2009 20:20

So, hab jezt nichts geändert, aber plötzlich wirg gar nichts mehr
angezeigt.

Ich hätte da noch ne Frage bezüglich

Pin 15 Chip Enable Active "L"
Pin 16 Reset Active "L"

Das bedeutet das beide Activ los sind?!
demnach müstte pin 15 "LOW
und pin 16 "HIGH" im Betrieb sein oder?

hab ich das Richtig verstanden?
Laut datenblatt sollten beide den Level "L" haben, was für mich aber
wenig Sinn ergibt.

Datenblatt:
http://www.pollin.de/shop/downloads_suchergebnis.p...

Edit:
Danke, für den Code, war grad beim tippen, als du ihn gepostet hast.

MFG
J.K.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 01.06.2009 20:22

J. K. schrieb:

> Das bedeutet das beide Activ los sind?!
> demnach müstte pin 15 "LOW
> und pin 16 "HIGH" im Betrieb sein oder?

Ja.
Das Datenblatt gibt an, welche Pegel die entsprechende Funktion
auslösen.
Autor: J. K. (rooot)
Datum: 01.06.2009 20:29

bezüglich dem code:

was für einen compiler verwendest du?

was ist das für eine portpins.h datei?

EDIT: portbits.h mein ich
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 01.06.2009 20:34
Angehängte Dateien:

Ich verwende WinAVR, die portbits.h liegt bei mir im WinAVR Verzeichnis,
daher vergesse ich die immer hinzuzufügen.

Damit kann man Pins direkt ansprechen wie z.B. PORTD_2=1;
Das ist besonders interessant wenn man Pins über defines festlegt.
Autor: J. K. (rooot)
Datum: 01.06.2009 20:44

Cool, das Display funktioniert!

Danke für die Hilfe!

MFG
J.K.
Autor: Hannes Lux (Gast)
Datum: 02.06.2009 01:38
Angehängte Dateien:

@Benedikt:
Danke für das Testprogramm. Ich habe nun auch ein funktionierendes LCD,
aber auch 4, bei denen Zeilen fehlen. 8-(

Ich bewundere die Präzision der Auswertung des Touchscreens. Inzwischen
habe ich einen besseren Stift gefunden und die Schutzfolie vom Display
entfernt, da zeichnet es sich gleich viel besser.

...
Autor: Nietzsche_g (Gast)
Datum: 05.06.2009 16:26

Hm, irgendwie stehe ich heftig auf dem Schlauch mit diesem
Touchscreen... Da sind 4 Anschlüsse... Welcher ist denn nun x+, x-, y+,
y-?? Ich bekomm das nicht hin.....
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 05.06.2009 16:32

Wenn du das Display von vorne betrachtest, so dass die Stiftleiste
unten, der Touchpadanschluss also rechts ist, dann sind die beiden X
Anschlüsse unten (also näher an der Stiftleiste) und die beiden Y oben.
Autor: Hannes Lux (Gast)
Datum: 05.06.2009 16:36

> Welcher ist denn nun x+, x-, y+, y-??

Das sieht man doch an den Leiterzügen der Touchfolie (oben, unten,
rechts, links).

...
Autor: Nietzsche_g (Gast)
Datum: 05.06.2009 16:40

Bist du sicher? Also irgendwie ist das total merkwürdig... Bei eineigen
Anschlussbwlegungen kommt "Calibration Failed", und wenn ich mal ne
Belegung finde, die klappt, malt er ganz komisch... also momentan z.B.
malt er von links nach rechts, wenn ich von oben nach unten fahr...
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 05.06.2009 16:57

ADC0-3 haben die gleiche Reihenfolge wie die Pins am Display, oben am
Display, also entgegengesetzt der Stiftleiste angefangen.
Autor: Hannes Lux (Gast)
Datum: 05.06.2009 17:35
Angehängte Dateien:

Vielleicht hilft das Bild meiner Testplatine bei der Orientierung.

...
Autor: Thorsten E. (nietzsche)
Datum: 06.06.2009 11:41

Okay, ich habs hinbekommen...

Ich hatte auch eines der Displays mit bereits eingelötetet
Pfostenleiste... Auch bei meinem gingen einige Zeilen nicht... Nach
einer kleinen Starthilfe mit dem Lötkolben funktioniert es nun... Ich
habe 3 Stück gekauft, und alle 3 mussten bearbeitet werden...

Wie auch immer, letztendlich funktionieren sie, und für knappe 7
Schlappen pro Stück durchaus eine gute Investition...
Autor: Allu (Gast)
Datum: 06.06.2009 17:01
Angehängte Dateien:

Nach einer etwas abenteuerlichen Reparatur funktioniert mein Touch jetzt
auch!

Das Ohmmeter zeigte an dem Original-Folienkabel in beiden Richtungen
(Pins 1 und 3 , 2 und 4) etwas an, ließ sich aber nicht mit dem
Testprogramm kalibrieren. Mit der "Lötkolbenmethode" habe ich dann dem
Folienkabel den Rest gegeben. Darum der Versuch mit lackisoliertem
Kupferdraht.

Danke an Benedikt für die Testprogramme.
Autor: Allu (Gast)
Datum: 06.06.2009 17:04
Angehängte Dateien:

Kupferdrähte  --  Touch-Folie
Autor: Paul Baumann (paul_baumann)
Datum: 06.06.2009 17:06

Mein Konterfei hätte ich an Deiner Stelle aber nicht auf dem Display
anzeigen lassen. Es könnte Dich jemand erkennen, dann nutzt auch ein
Nickname nichts mehr. ;-))

MfG Paul
Autor: Allu (Gast)
Datum: 06.06.2009 17:16

Hallo Paul,
es gibt sicher Ähnlichkeiten, vor allem so um die Bauchgegend, bin ich
aber dann doch nicht. Das ist mein UFO-Männchen, das habe ich mal vor
Jahrzehnten erfunden -- ich glaube so um die Osterzeit.
Viele Grüße
Alex
Autor: A. N. (netbandit)
Datum: 06.06.2009 17:17

Nein, das ist doch ein Bug! Das erkannt man an den Fühlern ;)

Ja eine wirklich abenteuerliche Verkabelung, aber am Ende ist es
wichtig, dass es Funktioniert.
Autor: E.f. K. (sead23)
Datum: 06.06.2009 21:26
Angehängte Dateien:

@Bendedikt:
Vielen Dank auch.
Ich hab meins gestern zum laufen bekommen.
Habs zuerst von der STK versucht, das ging dann nicht, aber dann halt
extern.
Wie ist das eigentlich, RXD ist ja jetzt besetzt, kann ich das irgendwie
ändern, oder ist das wichtig. Ich würd da gern Daten anzeigen lassen,
die über die Schnittstelle kommen und dann bräucht ich wohl auch nen
Quarz, oder?

Im übrigen geht das mit den Kohleanschlüssen ziemlich gut mit so einem
Platinenstecker, und einem stück Platine als Unterlage. Hat auch bei mir
zufällig das gleiche Rastermaß. Glaub das war mal von nem alten Floppy
oder so.

Gruß, E
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 06.06.2009 22:29

E.f. K. schrieb:
> Wie ist das eigentlich, RXD ist ja jetzt besetzt, kann ich das irgendwie
> ändern, oder ist das wichtig. Ich würd da gern Daten anzeigen lassen,
> die über die Schnittstelle kommen und dann bräucht ich wohl auch nen
> Quarz, oder?

Ja, das ist dumm beim mega8: Sowohl der 8bit Port PortD als auch der
8bit Port PortB werden für den UART benötigt.
Allerdings ist der mega8 eindeutig der am weitest verbreite Controller,
den jeder hat, daher verwende ich den gerne für solch eine Testsoftware.
Egal, Back to topic:
Weiter oben gibts die Zip mit dem Sourcecode, da musst du die Ausgabe
auf den 8bit Port anpassen indem du z.B. bit 0 und 1 auf einen anderen
Port verschiebst.
Autor: Mkay (Gast)
Datum: 11.06.2009 21:17

Hallo,

ich habe mir auch zwei der Displays zugelegt und Benedikts Code
verwendet, um etwas auf dem Display darzustellen. Ich habe allerdings
ein Problem, was ich trotz längerer Suche via Google und Lesen von
Tutorials nicht lösen konnte. Wahrscheinlich total simple.

Ich will mit Benedikts lcd_writestringP() Funktion einfach nur einen
String ausgeben, der nicht bei Compilezeitpunkt feststeht, sondern den
ich nachher mit snprintf bzw. sprintf selber zusammenbaue.

Normalerweise ist das recht einfach zu lösen, aber leider weiß ich
nicht, wie ich das handhaben muss, wenn man mit pgmspace.h arbeitet.

char buffer[20];
snprintf(buffer, sizeof(buffer), "%d %d", x, y);
lcd_gotoxy(20,35);
lcd_writestringP(buffer);

zeigt mir garnichts an. Auch sämtliche Variationen, die ich so im
Internet finden konnte, haben mich nicht weitergebracht. Genauso wenig
das GCC Tutorial hier. Wäre klasse, wenn mir da jemand einen Tipp geben
könnte, denn so langsam nervt es doch gewaltig, an so einem Miniproblem
festzustellen. Danke :\
Autor: Dirk Braun (garag)
Datum: 11.06.2009 21:36

Hallo MKay,

die Funktion lcd_writestringP() liest den String aus dem Flash. Was du
brauchst ist eine neue Funktion, welche die einzelnen Zeichen aus dem
RAM mittels lcd_writechar() ausgibt. Könnte ungefähr so aus sehen:
void lcd_writestring(const char *string)
{
  char c;
  for(;;)
  {
    c = *string++;
    if (!c)
      break;
    lcd_writechar(c);
  }
}

Gruß
Garag
Autor: Mkay (Gast)
Datum: 11.06.2009 22:29

Ahhhh, dann habe ich die Funktionsweise etwas missverstanden. Ok, dann
macht das alles auch wieder mehr Sinn. Dankeschön :)
Autor: Stefan (Gast)
Datum: 20.06.2009 22:05

Hallo,
ich wollte mir das Display bei Pollin bestellen.
Allerdings habe ich keine Wechselspannung. Deshalb wollte ich fragen, ob
man das Display auch ohne EL(das ist doch die Hintergrundbeleuchtung,
oder?) betreiben kann?
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 20.06.2009 22:13

Stefan schrieb:
> Allerdings habe ich keine Wechselspannung. Deshalb wollte ich fragen, ob
> man das Display auch ohne EL(das ist doch die Hintergrundbeleuchtung,
> oder?) betreiben kann?

Ja und ja.
Autor: cyno (Gast)
Datum: 20.06.2009 23:02

Hiho,

ich habe mir auch das hier diskutierte Display zugelegt und habe
mittlerweile auch eine funktionierende Software mit Touch-Funktion,
basierend auf der Software aus dem folgenden Beitrag im
Roboter.net-Forum, zusammengestrickt.
http://www.roboternetz.de/phpBB2/viewtopic.php?p=4...

Nun musste ich allerdings feststellen, dass die Positionserfassung des
Touchpanels furchtbar unpräzise ist (in der Mitte des Displays ist es
einigermassen genau - je näher man allerdings dem Rand kommt, desto
schlechter wirds). Da hier im Thread mehrmals von einer hohen Präzision
bei dem Display die Rede war(z.B. hier:
Beitrag "Display mit Touchscreen bei Pollin?"), vermute ich das
die Software noch eine Art Kalibirierungsalgorithmus o.ä. benötigt. Kann
mir hier jemand weiterhelfen?
Arbeitet der hier gepostete Code eventl. mit so etwas in der Art?

Vielen Dank schonmal für jegliche Auskunft.

Gruß,
cyno
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 20.06.2009 23:10

cyno schrieb:
> Da hier im Thread mehrmals von einer hohen Präzision
> bei dem Display die Rede war(z.B. hier:
> Beitrag "Display mit Touchscreen bei Pollin?"), vermute ich das
> die Software noch eine Art Kalibirierungsalgorithmus o.ä. benötigt.

Ja.

> Arbeitet der hier gepostete Code eventl. mit so etwas in der Art?

Ja.
Es ist eine einfache 2 Punkte Messung + Geradengleichung, also Steigung
+ Offset ausrechen:
Du misst einen bekannten Punkt in 2 gegenüberliegenden Ecken.
Der eine Wert ist der Offset. Somit liegt der Nullpunkt fest. Der andere
Wert skaliert nun die Werte auf die gewünschten Maximalwerte. Fertig.
Autor: cyno (Gast)
Datum: 20.06.2009 23:39

Ah, ok. Danke für diese Anleitung. Ich hatte gerade eine ähnliche Idee
mit drei Punkten - das wäre aber wohl komplizierter geworden. :)
Autor: MichiB (Gast)
Datum: 03.07.2009 18:20

Hallo zusammen,

habe das Display erfolgreich mit meiner eigenen Software in Betrieb
genommen (LCD und Touch funktionieren).

Jetzt zu meiner eigentlichen Frage:
-  Ist es normal, dass man bei nicht berührten Display Koordianten
   von ca. 1/3 Xmax und 1/3 Ymax erhält?
-  Wenn ja, wie habt ihr dies per Software unterdrückt?

Danke!
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 03.07.2009 18:25

MichiB schrieb:

> Jetzt zu meiner eigentlichen Frage:
> -  Ist es normal, dass man bei nicht berührten Display Koordianten
>    von ca. 1/3 Xmax und 1/3 Ymax erhält?

Ja. Jeder Wert zwischen 0 und max wäre ok, denn die Eingänge sind ganz
einfach offen und deren Wert somit zufällig.

> -  Wenn ja, wie habt ihr dies per Software unterdrückt?

Messen ob zwischen beiden einen Verbindung besteht, also eine Folie an
GND legen, die andere über Pullup an einen Pin. Ist der Pin Low, wird
gedrückt, ist er high, dann nicht.
Autor: MichiB (Gast)
Datum: 03.07.2009 18:33

@Benedikt K.

Geniale Idee, danke!
Autor: juppi (Gast)
Datum: 17.07.2009 17:25

Hallo

Wird die Negative Spannung an Pin 17 (-10V)
erst nach der Initialisierung des Displays erzeugt?

Kann man ohne Init an Pin3 (Kontrast) eine Negative U bis 10V
zu Testzwecke anlegen um ein Pixelgewirr anzuzeigen?
Grober Funktionstest.

Wenn ich die Init über den Paraport des PCs mache,geht das oder
gibt es Timing Probleme?

Es geht eigentlich nur um einen schnellen FunktionsTest!

Gruß und Danke
Autor: Sascha Weber (sascha-w)
Datum: 18.07.2009 11:59

Hallo

> Wird die Negative Spannung an Pin 17 (-10V)
> erst nach der Initialisierung des Displays erzeugt?
die liegt immer an

> Kann man ohne Init an Pin3 (Kontrast) eine Negative U bis 10V
> zu Testzwecke anlegen
wenn du wills - aber nur wenn das Diplay auch sonst mit Strom versorgt
wird

> um ein Pixelgewirr anzuzeigen?
> Grober Funktionstest.
wirst wohl nix sehen, da es ein Bit im ModeControl-Reg gibt mit dem man
das Display an/ausschalten kann

> Wenn ich die Init über den Paraport des PCs mache,geht das oder
> gibt es Timing Probleme?
kann ich nix zu sagen

Sascha
Autor: juppi (Gast)
Datum: 18.07.2009 14:54

Hallo
Neg.U an Pin 17 nur -2,4 V.
Das Display wird dunkel.
Leider geht bei einem (von3) die Neg.U nicht.

Jetzt muß ich aus den Postings erst mal die Init Routine rausfummeln.
Ist ja leider AVR und C, beides mache ich nicht(noch nicht )

...oder hat einer eine Tab.
Datenbyte   Steuersignale
Datenbyte   Steuersignale
Datenbyte   Steuersignale
Datenbyte   Steuersignale
.....-----....------

Gruß und Danke
Autor: guest (Gast)
Datum: 23.07.2009 16:58

durch diesen thread habe ich mir anfang der woche auch eines der pollin
displays bestellt. leider verweigert es seinen dienst.

ich habe es nun mit benedikts testprogramm versucht und mit den hier
verlinkten libs aus dem roboternetz.

es funktioniert weder das eine, noch das andere. egal was ich mache, das
display zeigt wenn überhaupt nur ein paar vereinzelte streifen an immer
neuen stellen.

in benedikts code habe ich lediglich die ports angepasst da das ganze
bei mir auf einem mega32 laufen soll. die verkabelung habe ich nun schon
x-mal durchgepiepst. sie ist in jedemfall so, wie ich es im programm
definiert habe. ausserdem habe ich die F_CPU auf 16mhz angepasst. das
programm sollte doch eigentlich trotzdem laufen und wenigstens des
Testtext ausgeben? Die touchfolie habe ich schon garnicht angeschloßen
da sie für mich uninteressant ist.

ich habe das, auf den fotos hier im thread, ganz rechte display
geschickt bekommen. das mit der bereits verlöteten stiftleiste + graphit
folienleiter. muss ich davon ausgehen das es defekt ist? bekomme ich
dann nach der reklamation wieder das selbe ramsch display oder kann ich
hoffen das es vielleicht sogar das auf den fotos linke display wird was
wohl meistens seinen diest tut? oder kann noch ein anderer fehler schuld
an meinem problem sein?
Autor: Werner B. (werner-b)
Datum: 24.07.2009 07:12
Angehängte Dateien:

1. Wenn ich von Problemen mit ATmega32 höre denke ich als erstes immer
an "Port C und JTAG Fuse".
Ist das Disaplay am Port C ? - Ist dann JTAG deaktiviert?

2. Aus eigener (peinlicher) Erfahrung: Prüfe noch einmal genau deine
Verdrahtung (Ohmmeter und PINxy == LCDFunktion).

3. Ich hätte noch einen (stark) modifizierten Roboternetz Code der hier
auf einem ATmega32 läuft. Teste doch erst mal den.

Viel Erfolg
Werner
Autor: Markus R. (maggus)
Datum: 24.07.2009 11:45

Ich habe auch das ganz rechte Display geliefert bekommen und meins
funktionierte von Anfang an einwandfrei (sowohl das Display selbst als
auch der Touchscreen). Falls einzelne Zeilen bei der Anzeige fehlen,
kannst du versuchen den Folienleiter auf der linken Seite des Displays
mit dem Lötkolben (225°C und saubere, flache Lötspitze) "aufzubügeln"
(leichter Druck, gleichmäßiges bügeln aller Leiter). Ist die Temperatur
zu hoch, schmilzt der Folienleiter. So habe ich vor einiger Zeit ein
solches Display geschrottet, an der "Leiche" ;) konnte ich dann die
richtige Temperatur ausprobieren.

Zuerst solltes du natürlich die Ratschläge von Werner probieren, wenn
das mit dem Bügeln auch nichts hilft würde ich es zurückschicken,
anscheinend bekommt man dann ja ein original Verschweißtes.
Autor: Hannes Lux (Gast)
Datum: 24.07.2009 13:35

> wenn
> das mit dem Bügeln auch nichts hilft würde ich es zurückschicken,

Naja, nach dem Herumbasteln würde ich es nicht mehr zurückschicken. Das
könnte nach hinten losgehen, falls man die Spuren sieht.

Ich habe vor einigen Monaten 4 (von 5) LCDs wegen ausgefallener Zeilen
reklamiert, die wurden mir problemlos umgetauscht. Die Ersatz-LCDs waren
dann fehlerfrei, hatten allerdings kleine Kratzer auf dem Touchscreen
(vermutlich beim Transport oder Lagern als Schüttgut behandelt...). Die
Touchscreens funktionieren aber mit Benedikts Testprogramm korrekt.

...
Autor: Leo C. (rapid)
Datum: 24.07.2009 13:59

Ich habe auch 2 von den rechten im Bild bekommen. Eines hatte Aussetzer,
die sich änderten, je nachdem wo ich auf das Glas gedrückt hatte.
Wenn man auf die kurzen Kanten schaut, sieht man, das die Leitgummis,
die das Glas mit der Platine verbinden sollen, zur Hälfte auf der
EL-Folie stehen. Da wunderts mich, daß überhaupt etwas funktioniert.

Ich habe den Blechrahmen durch Unterlegen unter die untere mittlere
Lasche etwas fester angezogen. Läuft jetzt einwandfrei.

Danke an das Forum hier. Besonderen Dank an Benedikt für sein
Testprogramm.

Leo
Autor: Markus R. (maggus)
Datum: 24.07.2009 16:53

Hannes Lux schrieb:
> Naja, nach dem Herumbasteln würde ich es nicht mehr zurückschicken. Das
> könnte nach hinten losgehen, falls man die Spuren sieht.

Natürlich sollte man es nicht zurückschicken, wenn man den Folienleiter
total verkokelt hat. Nach dem Bügeln mit normalem Druck konnte ich aber
opitsch keinen Unterschied zu vorher feststellen.
Autor: Wolfgang-G (Gast)
Datum: 25.07.2009 17:43
Angehängte Dateien:

Ich habe die Anzeige sowohl im Grafik- als auch im Textmodus zum Laufen
gebracht.
2 Fragen:
1)
@Benedikt
In LC7981_simple.zip/L7881.c gibt es ein Unterprogramm
void lcd_writechar(unsigned char b)

welches wahrscheinlich der Darstellung von Textzeichen dient, die in der
Datei „6x8_horizontal_MSB_1.h“ stehen.
Was passiert in der Zeile c=pgm_read_byte(&...
insbesondere was bedeutet  pgm_read_byte ?


2)
Der Touchscreen scheint funktionstüchtig zu sein.
Hat jemand ein Programmschnipsel zur Erfassung der Widerstandswerte und
der allgemeinen Auswertung eines  Touchscreen bzw. einen Hinweis, wo man
dazu etwas nachlesen kann?

MfG
Autor: guest (Gast)
Datum: 25.07.2009 18:23

@werner

Also die JTAG Fuses kenne ich und die sind ausgeschaltet. Das ist nicht
der Fehler. Ich werde bei Gelegenheit nochmal deinen Code probieren. Ich
denke aber ich werde das Display trotzdem tauschen lassen. Denn bei voll
aufgedrehtem Kontrast fehlen einzelne Zeilen im ansonsten dunklen
Kasten.
Autor: gs (Gast)
Datum: 25.07.2009 21:59

Hallo,
durch meinen Urlaub bin ich erst jetzt dazu gekommen mein Display an den
Atmega8 mittels dem Testprogramm von Benedikt anzuschließen. Leider
bleibt das Programm aber bei der Kalibrierung hängen! Ich messe aber
zwischen x+ und x- sowie zwischen y+ und y- 340 bzw. 420 Ohm. Daher
sollte das TouchPad doch eigentlich klappen.
Kann mir einer einen Tipp geben wie ich weiter prüfen kann?
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 25.07.2009 22:09

Wolfgang-G schrieb:
> welches wahrscheinlich der Darstellung von Textzeichen dient, die in der
> Datei „6x8_horizontal_MSB_1.h“ stehen.

Genau.

> Was passiert in der Zeile c=pgm_read_byte(&...
> insbesondere was bedeutet  pgm_read_byte ?

Damit wird ein Byte aus dem Flash gelesen.

> Hat jemand ein Programmschnipsel zur Erfassung der Widerstandswerte und
> der allgemeinen Auswertung eines  Touchscreen bzw. einen Hinweis, wo man
> dazu etwas nachlesen kann?

Hier und in den folgenden Posts steht eigentlich alles notwendige drin:
Beitrag "Display mit Touchscreen bei Pollin?"

gs schrieb:
> Leider
> bleibt das Programm aber bei der Kalibrierung hängen! Ich messe aber
> zwischen x+ und x- sowie zwischen y+ und y- 340 bzw. 420 Ohm. Daher
> sollte das TouchPad doch eigentlich klappen.

Bleibt das Programm hängen, oder kommt "Calibration failed!"?
Wenn es hängen bleibt, dann erkennt es den Druck auf das Pad nicht, was
darauf hindeutet, dass das Touchpad nicht richtig angeschlossen ist.
Ansonsten ist das Touchpad sehr nichtlinear, was auf ein
Kontaktierungsproblem hindeutet.
Autor: guest (Gast)
Datum: 25.07.2009 22:24
Angehängte Dateien:

nochmal @werner
habe mal ein foto gemacht. bisher kam mit deinem programm noch am
meisten aufs display ;) allerdings nichts gescheites. verkabelt ist das
display genau wie in deinem programm vorgegeben. habe also nichts
geändert. kann man anhand des bilds sagen obs defekt ist oder obs an der
software liegt?
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 25.07.2009 22:56

guest schrieb:
> kann man anhand des bilds sagen obs defekt ist oder obs an der
> software liegt?

Da es immerhin was anzeigt, liegt es an der Software oder an der
Verdrahtung.
Die leeren Zeilen in der unteren Hälfte können defekte Zeilen sein,
genau kann man das aber erst sagen wenn die Software richtig
funktioniert und was sinnvolles anzeigt.
Autor: Wolfgang-G (Gast)
Datum: 26.07.2009 10:34

Benedikt K. schrieb:
>Damit wird ein Byte aus dem Flash gelesen.
Mit Flash kann ich im Moment nichts anfangen.
Ist das etwas AVR-spezifisches?  Ich verwende als µC den MSP430
MfG
Autor: Hannes Lux (Gast)
Datum: 26.07.2009 12:50

> Mit Flash kann ich im Moment nichts anfangen.

Das ist der (nichtflüchtige) Programmspeicher, also das ROM, das sich
mit moderner Flash-Technologie löschen und neuprogrammieren lässt.

...
Autor: Sigint 112 (sigint)
Datum: 08.08.2009 13:39

Hallo zusammen,
  ich hab mir jetzt auch bei Pollin ein paar Touchscreens gekauft und
bin begeistert, wie viel Leistung die zu diesem geringen Preis bieten.
Da gibts ja keinen Grund mehr Textdisplays zu kaufen. Anbei noch ein
kleines Video von meinen Experimenten:

http://www.youtube.com/watch?v=sNsAVHd187I

Ich möchte mich bei allen für die vielen, hilfreichen Tipps bedanken.
Anscheinend kann man mit einem Lötkolben und etwas Geduld fast jeden
Defekt am Display beheben :-)

Gruß,
  SIGINT
Autor: Michael U. (amiga)
Datum: 08.08.2009 13:54

Hallo,

Sigint 112 (sigint); gibt es dazu Sourcen zum Reinschauen und Benutzen?
Ich habe mir zum Rumspielen gerade den SI4735 Radiochip geleistet und
will das mit dem Pollin-Display kombinieren.

Da hätte ich schon einen Teil des Programms... ;-)

Der SI4735 mach ja auch noch einiges an Beschäftigung. :-)

Gruß aus Berlin
Michael
Autor: Sigint 112 (sigint)
Datum: 08.08.2009 14:35
Angehängte Dateien:

@Michael:
  Ja, hier sind die Sourcen. Hab mir ein paar Sachen aus anderen
Projekten ausgeliehen (Font, Bresenham Line Algo,Defines) aber der Rest
ist von mir.
Ist aber noch verbesserungswürdig und alles andere als fehlerfrei. Man
kann Gimp einsetzen um XBM-Bilder für das Display zu erstellen. Die
lassen sich sehr einfach darstellen.

Gruß,
  SIGINT
Autor: Michael (Gast)
Datum: 09.08.2009 16:47

Hallo,

nachdem ich den Thread schon eine Weile beobachtet habe, habe ich mir
vor kurzem auch solch ein Display bestellt.
Dank des Quellcodes von Benedikt K. und der Bügeltechnik habe ich es
auch schnell zum Laufen bekommen.

Nun ist es allerdings so, dass der Bildaufbau nur sehr langsam von
statten geht. Ich kann problemlos zuschauen, wie sich ein Button (Text
mit Rahmen drum) aufbaut.
Liegt das am Display, oder ist der Controller am langsamen Aufbau
schuld?

Ich verwende ein ATmega168 mit 8 MHz internem Takt und deaktivierter
CKDIV8 fuse.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 09.08.2009 17:24

Eigentlich sollte sich das ganze ziemlich flott gehen, den Aufbau von
Text sollte man eigentlich garnicht sehen, so schnell sollte es gehen.
Autor: Michael (Gast)
Datum: 09.08.2009 17:40

alles klar, dann muss sich bei mir wohl ein Fehler eingeschlichen haben.
Beim schreiben von Text sieht es so aus, als ob jemand relativ flott
Tippt.

Danke für die Antwort
Autor: MichiB (Gast)
Datum: 09.08.2009 19:46

Hallo,

hat vielleicht jemand ein Datenblatt mit den korrekten Abmaßen zur Hand?

Danke!
Autor: gadgaet (Gast)
Datum: 11.08.2009 18:26

Heute sind meine 2 Displays gekommen. Scheinen welche von Variante Nr. 3
zu sein.Die Touchscreens funktionieren bei mir einwandfrei.
Ein Display funktioniert einwandfrei, beim anderen fehlen Zeilen. Welche
Methode wäre die beste, das Teil zum Funktionieren zu bringen? Mit dem
Bügeleisen oder Lötkolben oder was anderes? Ich habe leider keinen
Lötkolben mit Temperatureinstellung...
Zur Geschwindigkeit: Mir kommt das ganze ziemlich langsam vor. Man kann
noch deutlich erkennen, wie sich Text aufbaut, ist das normal? Ist das
erste mal, dass ich mit einem ATMega8 arbeite, d.h. auch die erste
Aufgabe für diesen. Wo finde ich in PonyProg die CKDiv8-Fuse beim
ATMega8? Hab sie nirgendwo entdecken können.

Vielen Dank, vor allem an Benedikt!

grüssse
g.
Autor: R. Max (rmax)
Datum: 11.08.2009 18:44

gadgaet schrieb:
> Heute sind meine 2 Displays gekommen.

Heh - ich habe heute auch eines bekommen, aber noch nicht ausprobiert.

> Die Touchscreens funktionieren bei mir einwandfrei.

Bei meinen ist auf der Anschlußseite ein bißchen vom Glas abgesplittert,
sieht aber nicht so aus, als ob das die Funktion beeinträchtigen würde.

> Welche Methode wäre die beste, das Teil zum Funktionieren zu bringen?
> Mit dem Bügeleisen oder Lötkolben oder was anderes?
> Ich habe leider keinen Lötkolben mit Temperatureinstellung...

Falls es bei mir nötig sein sollte, werde ich mit dem Lötkolben (nicht
regelbar) nachlöten, aber ein Stück Teflon-Backfolie oder
Glasfasergeflecht (wie man es zum Kunststoffschweißen hat) dazwischen
legen, damit die Hitze besser verteilt wird und im Zweifelsfall zuerst
die Folie verbrennt und ich noch rechtzeitig wegziehen kann.

> Wo finde ich in PonyProg die CKDiv8-Fuse beim ATMega8?

Das kann ich Dir zwar nicht sagen, aber alternativ kannst Du den
Prescaler per Software umschalten, dann mußt Du Dich um die Fuse nicht
mehr kümmern:
void main(void)
{
    CLKPR = 1 << CLKPCE;
    CLKPR = 0;
...
}
Autor: gadgaet (Gast)
Datum: 11.08.2009 19:52

Habe noch nie was von Teflon-Backfolie gehört...
Meinst du, normales Backpapier geht auch?
Autor: R. Max (rmax)
Datum: 11.08.2009 20:21

gadgaet schrieb:
> Habe noch nie was von Teflon-Backfolie gehört...

Google mal nach "Dauerbackfolie".

Allerding habe ich gerade bei Wikipedia gelesen, daß man Teflon auf
keinen Fall über 400°C erhitzen darf, weil sonst extrem giftiges Flour
frei wird.

> Meinst du, normales Backpapier geht auch?

Das dürfte zu dünn sein und die Temperatur der Lötspitze nicht
aushalten, aber probieren kannst Du es (evtl. mit mehreren Schichten),
besser als direkt mit einer zu heißen Lötspitze ist es vielleicht
allemal.
Autor: Sigint 112 (sigint)
Datum: 11.08.2009 21:03

Also, zum Thema Geschwindigkeit: Die Datenübertragung geht bei mir sehr
schnell. Ich kann kaum erkennen, wie sich das Bild aufbaut und sogar
Animationen laufen relativ flüssig. (nur Linien, per PixelSet) Das
größere Problem ist, daß die LCD-Matrix mit dem Anzeigen nicht hinterher
kommt. Die Linien sind sehr hell. Damit könnte man theoretisch
Graustufen darstellen... die Qualität dürfte aber bescheiden sein.

Zum Thema "fehlende Zeilen": Ich bin einfach mit meinem Lötkolben bei
ca. 150C quer über die Folienleiter gefahren und konnte damit das
Display reparieren. Man muss ein wenig Glück haben, da sich hierbei
andere Verbindungen lösen können. Mechanisch dürfte die Verbindung aber
nichtmehr so stabil sein wie im Originalzustand.

Gruß,
  SIGINT
Autor: Diensthabender Troll (Gast)
Datum: 11.08.2009 22:12

> Ein Display funktioniert einwandfrei, beim anderen fehlen Zeilen. Welche
> Methode wäre die beste, das Teil zum Funktionieren zu bringen?

Foto machen, Mail an Pollin mit Foto im Anhang, fragen was zu tun ist.

> Wo finde ich in PonyProg die CKDiv8-Fuse beim
> ATMega8? Hab sie nirgendwo entdecken können.

Hat der Mega8 nicht. Der Takt wird mittels der CKSEL-Fuses umgeschaltet,
weitere Infos im Datenblatt Kapitel Clock-Sources.


> aber alternativ kannst Du den
> Prescaler per Software umschalten, dann mußt Du Dich um die Fuse nicht
> mehr kümmern:

> void main(void)
> {
>     CLKPR = 1 << CLKPCE;
>     CLKPR = 0;
> ...
> }

Nööö, geht beim Mega8 nicht. Siehe Datenblatt Kapitel Clock-Sources.
Mega8 != Mega48/88/168.
Autor: Wolfgang-G (Gast)
Datum: 11.08.2009 22:13

@Sigint 112
Ich möchte Dein Programm, welches Du für einen AVR entwickelt hast, für
einen MSP430 nachempfinden.
Vielleicht könntest Du Deine Vorgehensweise  in einer Deiner Dateien als
Kommentar erläutern.
Wenn ich es richtig verstanden habe, dann misst man zunächst
Spannungswerte in x bzw. y-Richtung und errechnet damit die Stelle, wo
der Schirm berührt wird.
Was mir noch völlig unklar ist, wie man feststellt, ob und wann auf eine
Stelle des Schirmes gedrückt wird. Wahrscheinlich ist es die Funktion
int touched(void). Was läuft hier ab?
Dank im Voraus.

MfG
Autor: Diensthabender Troll (Gast)
Datum: 11.08.2009 22:49

> Was mir noch völlig unklar ist, wie man feststellt, ob und wann auf eine
> Stelle des Schirmes gedrückt wird

Beitrag "Display mit Touchscreen bei Pollin?"
Autor: Sigint 112 (sigint)
Datum: 12.08.2009 16:19
Angehängte Dateien:

@Wolfgang:
  Ich hab das Programm eigentlich nur zum testen geschrieben, deshalb
ist nichts Kommentiert. Zudem hab ich noch nicht viel Erfahrung mit C
und Mikrocontrollern... daher ist der Code eigentlich Mist. Bin halt
noch am lernen. Anbei die Kommentare.

Gruß,
  SIGINT
Autor: Michael (Gast)
Datum: 12.08.2009 16:51

>Zur Geschwindigkeit: Mir kommt das ganze ziemlich langsam vor. Man kann
>noch deutlich erkennen, wie sich Text aufbaut, ist das normal?

Interne Takt auf 8 MHz einstellen (Standard ist 1 MHz) dann müssts
besser gehen
Autor: gadgaet (Gast)
Datum: 12.08.2009 17:31

Gut, habe die CKSEL-Fuses wie im Datenblatt beschrieben auf 0100 gesetzt
(waren auf 0011, also 4MHz) und seitdem wird der Controller von Ponyprog
nicht mehr erkannt und auf dem Display sind nur noch von unten nach oben
wandernde, seltsam pixelige Streifen zu sehen.
Autor: R. Max (rmax)
Datum: 12.08.2009 17:51

Diensthabender Troll schrieb:
> Nööö, geht beim Mega8 nicht. Siehe Datenblatt Kapitel Clock-Sources.
> Mega8 != Mega48/88/168.

Ah - Danke für die Richtigstellung. Ich dachte, das sei ein Feature der
ganzen AVR-Familie, weil alle Modelle es hatten, mit denen ich mich
bisher befaßt habe, selbst die Tinys.
Autor: Diensthabender Troll (Gast)
Datum: 12.08.2009 20:28

> Ah - Danke für die Richtigstellung.

nichts zu danken.

> Ich dachte, das sei ein Feature der
> ganzen AVR-Familie,

nein, das haben nur einige der neuesten familienmitglieder.

> weil alle Modelle es hatten, mit denen ich mich
> bisher befaßt habe, selbst die Tinys.

das waren dann vermutlich nicht allzuviele.... <:-)
denke bei internem takt != 1Mhz auch mal ueber calibration des
oszillators nach, siehe auch avr-appnote 053.

-----

> Gut, habe die CKSEL-Fuses wie im Datenblatt beschrieben auf 0100 gesetzt
> (waren auf 0011, also 4MHz) und seitdem wird der Controller von Ponyprog
> nicht mehr erkannt

falls du  einen billig-programmer am com-port des pcs benutzt. dann
solltest du mal den transistor fuer die reset-steuerung checken, hier
ist ein exemplar mit recht hoher stromverstaerkung erforderlich.
Autor: Wolfgang-G (Gast)
Datum: 12.08.2009 22:33
Angehängte Dateien:

@SIGINT
vielen Dank für Deine Mühe
Deine Programmierkünste kann ich nicht beurteilen, da ich davon zu wenig
verstehe.
Mein offenes Problem habe ich im Anhang dargestellt.
MfG
Autor: Diensthabender Troll (Gast)
Datum: 13.08.2009 00:06

> was ist falsch? wie mass man anschließen, damit der eine Pin den
> anderen bei Berührung auf L zieht?

das wird nur gehen, wenn alle 4 enden des touchscreens an portpins
liegen. du hast 2 enden fest an plus gelegt, somit lannst du dem Pin des
einen nicht vom anderen auf masse ziehen.
Aktion:              links          rechts      oben       unten
Test auf Touch       hochohmig      IN mit PU   L-Pegel    hochohmig  
X-Wert messen        L-Pegel        H-Pegel     hochohmig  ADC-IN
Y-Wert messen        hochohmig      ADC-IN      L-Pegel    H-Pegel

also erstmal die obere konstellation und zyklisch den digitalen eingang
mit eingeschaltetem internem pullup-widerstand abfragen. da die
touchscreen-widerstaende gegenueber dem pullup sehr niederohmig sind,
wird der pegel bei beruehrung l.

erst danach nacheinander die beiden widerstaende (spannungsteiler)
ausmessen, wobei immer einer an spannung gelegt wird und am anderen der
adc die spannung misst. der 4. anschluss muss dazu hochohmig sein.
Autor: Wolfgang-G (Gast)
Datum: 13.08.2009 13:20

Danke, jetzt habe ich es verstanden.
Evtl. muss  ich noch strombegrenzende Widerstände dazwischenschalten,
damit der MSP430- Ausgang nicht überlastet wird.
Mit Deinem Ratschlag vom 11.08.2009 22:49 konnte ich nichts anfangen.

MfG
Autor: Diensthabender Troll (Gast)
Datum: 13.08.2009 14:24

> Danke, jetzt habe ich es verstanden.

prima

> Evtl. muss  ich noch strombegrenzende Widerstände dazwischenschalten,
> damit der MSP430- Ausgang nicht überlastet wird.

hmmm, um die 11mA bei 3,3V ist etwas viel fuer den MSP430? nunja, die
avrs haben da etwas mehr spielraum, die packen das auch bei 5V ohne
probleme.
das vorschalten von widerständen verkleinert dann aber den nutzbaren
bereich des adcs.


> Mit Deinem Ratschlag vom 11.08.2009 22:49 konnte ich nichts anfangen.

naja, das war der link auf benedikts beitrag vom 03.07.2009 18:25, in
dem die loesung zu finden war. es ist eben nicht alles trollig, was ein
troll so schreibt.... <;-)
Autor: Sven B. (svenba)
Datum: 13.08.2009 19:02

Hi Leute.
Habe vor 4 Monaten mit Assembler auf ATMega angefangen.
Nach LEDs, Tastern und 7-Segment "Aktionen" hab ich mir dann auch zwei
von diesen GLCDs von Pollin geholt. Natürlich fehlten bei beiden auch
Pixel-Reihen, hab ich aber mit Heissluft hin gekriegt.

Hab mich auf Assembler fest gelegt und mit den Routinen weiter oben
(sry, weiss jetzt nich von wem) soweit alles hingekriegt, dass ich über
ein Poti an ADC0 vom ATMega32 die veränderte Spannung als y-Ablenkung
sehe. Mein Ziel ist ein Oszilloskop im Selbstbau.

Jetzt meine Frage:
Ich lese die ADC Werte ein und gebe immer einzelne Bytes auf
entsprechender Höhe (x mal 20 Byte runter) aus. Jetzt möchte ich aber
einzelne Pixel als einzelne Spannungswerte auf Höhe ausgeben, wie krieg
ich das hin. Ich sehe, dass die meisten hier mit C arbeiten, aber
vielleicht gibts hier ja nen ASM Menschen, der mir weiter helfen kann..

Auf jeden fall Danke für die Hilfe an alle hier im Thread, hab hier viel
hilfreiches gefunden...

Sven
Autor: gadgaet (Gast)
Datum: 13.08.2009 19:42

Ja, ich verwende einen "Billig-Programmer" über COM_Port. Der Programmer
hat bisher immer funktioniert,warum sollte er es jetzt nicht mehr tun?
Autor: gadgaet (Gast)
Datum: 13.08.2009 20:58

Der Programmer ist übrigens ein exakter Nachbau des Programmers auf dem
Pollin-Evalboard 2.01.
Autor: MichiB (Gast)
Datum: 14.08.2009 10:27

Hi,

hat jemand eine Zeichnung mit Abmaßen des Displays?
Autor: Sven B. (svenba)
Datum: 14.08.2009 13:50

Pdf mit mech. Abmessungen:

http://www.aeontekasia.com/pdf/DG-16080.pdf

Hat jemand ne Antwort auf meine Frage oder weiss, wo ich die Antwort für
ASM nachlesen/bekommen kann??
Autor: Sascha Weber (sascha-w)
Datum: 14.08.2009 17:52

@Sven

kann denn deine ASM-Routine schon einzelne Pixel setzen oder noch nicht?
Für ein 128x64 hab ich ASM-Routinen, da aber die Bytes dort um 90Grad
gedreht sind passt das nicht so ohne weiteres.

Sascha
Autor: Sven B. (svenba)
Datum: 21.08.2009 20:29

Könnte evtl schon helfen...

Hab ja bis jetzt immer 8bit ( 0xFF), also einen Strich auf
entsprechender Höhe, aber sobald ich einzelne Bits setze und beim
nächsten ADC Durchgang mit LSR das nächste Bit setzen will, bis alle
8bits nacheinander geschrieben wurden, sieht man garnichts mehr oder
irgendwelchen Müll...

Hier mal das CodeFragment, welches noch nich richtig läuft, obwohl
AVR_Studio nicht meckert;
; Zeichen ausgeben
  rcall display_weiss
  ldi disdata1, 0x0C
  ldi disdata2, temp6     ; temp6 = am Anfang 0b10000000
  cp temp1, adlow
  breq gleich        ; gleiche messwerte??
  
         mov temp1, adlow        ;temp1 für Y-Auslenkung
  rcall Y_Auslenkung        ;Temp1 mal runter
  rcall Sende_Daten
  rcall y_zurueck        ;temp1 mal zurück

  lsr temp6               ; nächstes Bit setzen (zB 0b01000000)
weiter:  
  dec bitschieber         ; Bitschieber = am Anfang 8(acht Mal LSR)
  brne adc_main           ; ADC_Main = adc Messung
      
         ldi disdata2, 0b10000000
  rcall Cursor_einen_weiter
  mov disdata2, adlow
  rcall Sende_Daten
  dec temp5
  brne adc_main       ;temp5 = 20 (Display = 20 Byte)
  rcall Display_weiss
         rcall auf_mitte
  rcall strich
  rcall DV_resetCursor
  ldi  temp5, 20       ; 20 werte hintereinander
  rjmp adc_main
      
gleich:  
  add disdata2, temp6
  mov temp1, adlow
  rcall Y_auslenkung
  rcall sende_Daten
  rcall y_zurueck2
  lsr temp6
  rjmp weiter
Fällt jemandem ein Fehler auf/bzw. hat jemand ne Anmerkung??
Autor: FlipFlop (Gast)
Datum: 25.08.2009 16:07

Hallo,
danke Benedikt K. für dieses tolle Projekt! Ich habe mir jetzt auch 2
Displays angeschafft, leider kann ich auf den Folienleitern nicht löten,
die schmilzen einfach weg. Hat jemand eine Idee wie das Touchpad
trotzdem nutzen kann.
Autor: Hannes Lux (Gast)
Datum: 25.08.2009 16:35

> Hat jemand eine Idee wie das Touchpad trotzdem nutzen kann.

Falls Du die Kontaktierung des Touchscreens meinst, dann schau Dir mal
den Anhang dieses Beitrags an (unteres Bild links):

Beitrag "Display mit Touchscreen bei Pollin?"

Ich hatte 4 (von 5) defekte LCDs bekommen (Zeilenausfall), sie wurden
mir ohne Probleme gegen funktionsfähige umgetauscht. Ich hatte
allerdings nicht erst versucht, daran herum zu löten.

...
Autor: Hannes Lux (Gast)
Datum: 25.08.2009 16:37

> (unteres Bild links)

Quatsch, oberes Bild natürlich...

Sorry...

...
Autor: gadgaet (Gast)
Datum: 25.08.2009 17:54

Ich habe eine Buchse für einen solchen Folienstecker per Heißluft von
einer Schrottplatine entfernt. Sie war zwar etwas deformiert, aber noch
benutzbar. Obwohl sei ein (völlig) anderes Rastermaß als der Stecker des
Touchpad-Anschlusses hatte, hat es bei mir super geklappt.

grüssse
g.
Autor: J. K. (rooot)
Datum: 06.09.2009 18:22

Mich würde interesieren, mit welcher Abtastfrequenz ihr den Touchscrenn
betreibt ?!

Wenn ich über 100 Hz komme, habe ich auf dem Messleitungen einen Pegel
von ca. 2-5 V.  Ich kann mir aber nicht vorstellen wo das herkommt. Bei
100Hz sind kapazitive bzw. induktive Kopplung wohl zu vernachlässigen.
Ich wüsste auch nicht, wo ich eine so große parasitäre Kapazität hätte,
die diesen Effekt verursacht.

Um die gerade gemessene Leitung im "nicht-gedrückten" Zustand auf einem
bestimmten Potenzial zu haben, verwende ich 1 MOhm Widerstände gegen
Masse. Ich hab auch schon mal versucht einen kleineren (10k) paralell zu
schalten, hat aber nichts geholfen.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 06.09.2009 18:56

Bei mir läuft der Touchscreen mit etwa 1kHz.

Wenn die Leitung offen ist, dann reichen 100Hz durchaus aus, um diese
auf mit der angesteuerten Leitung mitzuziehen. Immerhin sind das rund
1nF zwischen den beiden Elektroden.

Wie steuerst du den Touchscreen an und wie erkennst du ob gedrückt
wurde?
Autor: Sven B. (svenba)
Datum: 08.09.2009 10:16

Hi!
Hab wohl im falschen Beitrag geschrieben...
Trotzdem hier ein Update; ignoriert den Code da oben von mir, habe das
Problem weitgehend gelöst...
Autor: J. K. (rooot)
Datum: 08.09.2009 17:10

ich steuere den Touchscreen mittels AVR - Pins (Mega16) direkt an. Da
schalte ich auch auf Ausgang/hochohmig um.

Erkenn ob gedrückt ist, tu ich, wenn der Pegel auf den Messleitungen
"LOW" ist (wegen den Pull-Downs)

Leitungen ist ja nicht offen, liegen mit 1MOhm gegen Masse - 1 - für X
und einmal für Y Richtung.

Wenn ich drücke, stimmt das Ergebnis aber (auf +- 1 Pixel)
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 08.09.2009 17:19

Wie lange wartest du zwischen dem hochohmig Schalten und dem Einlesen
des Zustands?
Bei einer Zeitkonstante von 1nF*1MOhm = 1ms solltest du schon ein paar
ms warten bis sich der Kondensator ausreichend geladen hat, ehe du den
Zustand misst.
Mit dem Pullup des AVRs mit typisch 70k sollte das deutlich schneller
gehen.
Autor: J. K. (rooot)
Datum: 08.09.2009 17:32

Ja stimmt :-\

das gleiche dachte ich mir auch und machte den 10k Pulldown - Versuch
(siehe oben)
Habe jetzt rausgefunden, das die verwendete Messstrippe kaputt war
(wirklich ärgerlich)
Hab den Versuch jetzt noch mal gemacht - das führte zum erwarteten
Ergebnis.

Danke für die Hilfe
J.K.
Autor: Allu (Gast)
Datum: 08.09.2009 18:26

Meinen Touch lasse ich 30 mal pro Sekunde per Interupt abfragen. Ergeben
2 aufeinanderfolgende Abfragen die gleichen X-Y-Werte (nur die oberen 8
ADC-bit werden verwendet - mehr ist für meine geplante Anwendung nicht
notwendig) werden diese für gültig erklärt. Zwischen den Abfragen werden
alle Touchleitungen auf +5V gelegt, um daraus erkennen zu können, ob
eine Berührung vorliegt.

Das Display habe ich in 8 Zeilen zu 23 Zeichen aufgeteilt. Aus den
X-Y-Werten wird die Position des "angetuochten" Zeichens errechnet.
"Unter den Displayzeichen" liegt eine Tabelle mit Rückgabewerten
(Zahlen, Buchstaben oder Tasten).

Das (noch unfertige) Programm ist ein Assembler-Bascom-Gemisch mit dem
leicht modifizierten Zeichengenerator von Benedikt.
Autor: Allu (Gast)
Datum: 10.09.2009 18:13
Angehängte Dateien:

Hallo,

wer die Schaltung von Benedikt mit dem Mega 8 verwendet und mal seinen
Touch testen möchte, kann das angehängte Progamm mal versuchen.

Nach dem Einschalten wird zur Kalibrierung ein Kreuz angezeigt, das in
der zu berühren ist. Danach folgen die 3 weiteren Ecken. Erfolgt eine
Fehlermeldung, ist der Touch sehr abweichend von meinen Exemplaren, es
werden dann Defaultwerte geladen und nach 5 Sekunden geht's weiter. Eine
erfolgreiche Kalibrierung wird im EEProm abgelegt.

Funktionstasten:

Touchwerte anzeigen = Im unteren Bereich werden die Randabstände und
Umrechnungswerte angezeigt. Im oberen Bereich der Berührungspunkt
gerastert auf 8x23 und der gemessene 8-Bit-Feinwert.

Kalibrierung = spricht für sich

Texteingabe = hier wird der Code angezeigt, der "unter" jedem 8x23
Rasterfeld liegt.

Menue = wieder zurück zur Auswahl

Viel Spass und Grüße
Allu
Autor: Sascha Weber (sascha-w)
Datum: 13.09.2009 18:17

@Allu,

super Testtool!

Sascha
Autor: Meik Dittmann (meik)
Datum: 04.10.2009 16:07
Angehängte Dateien:

Ich habe mich dem Display mal von der PIC-Seite her genähert.
Funktioniert auch. Meine Frau hats dann gleich mal getestet.(siehe Bild)
Controller ist ein 16F767. Die Kinder wollten dann noch eine
Radiergummifunktion eingebaut haben. Also ist auch diese drin. Bis jetzt
aber nur durch Umschalten eines Eingangs. Wenn Zeit ist, mache ich da
mal eine "Werkzeugleiste" am rechten Rand für. Verschiedene
Strichstärken wurden auch schon angefragt. Die Files lade ich im laufe
des Abends noch hoch.

Gruß Meik
Autor: gadgaet (Gast)
Datum: 04.10.2009 17:22

Hübscher Zeichensatz!
Autor: Meik Dittmann (meik)
Datum: 04.10.2009 17:45

Welchen meinst du? Den mit den Herzchen?
Autor: Meik Dittmann (meik)
Datum: 04.10.2009 18:08
Angehängte Dateien:

So, hier nun das Proggie. Ist noch beta. Beim Andrücken des Touchscreens
verzieht der Strich etwas. Wird aber noch korrigiert. Weiss nur noch
nicht wann. Die Pinbelegung ergibt sich aus dem Quellentest.

Gruß Meik
Autor: Meik Dittmann (meik)
Datum: 06.10.2009 20:56
Angehängte Dateien:

So, so sieht die neue Version aus. Auf der rechten Seite sind
Soft-Tasten zum Auswählen der Strichstärke, zum Radieren und zum Löschen
des gesammten Bildes. Die Tasten werden übrigens nicht betätigt, wenn
man mal über den Rand malt.

Meik
Autor: Alex G. (alex94) Benutzerseite
Datum: 15.10.2009 00:11

Hallo,
ich hab mir auch so ein Display gekauft und habe Benedikts "maler"
testcode draufgeladen. ok ich kann jetzt text anzeigen. Kann es sein das
man bei benedikts initalisierung den punkt sehr genau treffen muss? Also
so ein touchscreenstift verwenden muss? Oder ist mein touchpanel kaputt?


mfg alex
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 15.10.2009 00:15

Ich verwende einen weitaus engeren Toleranzbereich bei mir, allerdings
auch mit einem solchen Stift. Mit dem Finger kann es durchaus schwer
sein, den Punkt zu treffen.
Autor: Alex G. (alex94) Benutzerseite
Datum: 15.10.2009 01:04

Vielen Dank,
ich werde mir dann mal so ein Stift suchen.
Muss noch irgendwo einer sein ;)
Autor: Sebastian R. (sebr)
Datum: 17.10.2009 12:28

Mal zur Info: habe ich den letzten Wochen zweimal bei Pollin die
Displays bestellt. Alle wurden in schwarzer, verschlossener, Tüte
geliefert. Und ALLE funktioneren fehlerfrei, Display sowie Touchscreen!
Offensichtlich hat Pollin die Wareneingangskontrolle verbessert ;)
Autor: R. Max (rmax)
Datum: 17.10.2009 12:37

Welches der drei Modelle hast Du bekommen?
Beitrag "Display mit Touchscreen bei Pollin?"
Autor: Allu (Gast)
Datum: 17.10.2009 13:09

Scheinbar macht es die Verpackung.
Alle meine schwarz verpackten Displays waren in Ordnung. Die 4
nachbestellten kamen in hellrosa Noppentüten an - 2 waren in Ordnung und
2 waren defekt.
Bei Pollin angerufen und sofort problemlos 2 Ersatzdisplays zugesandt
bekommen. Der Ersatz war wieder hellrosa verpackt und leider auch
defekt.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 17.10.2009 13:12

Ja, schwarz scheinen die original verpackten zu sein, also die komplett
ohne Stiftleisten, das mittlere auf dem Foto.
Autor: Sebastian R. (sebr)
Datum: 17.10.2009 13:38

Reinhard Max schrieb:
> Welches der drei Modelle hast Du bekommen?
> Beitrag "Display mit Touchscreen bei Pollin?"

Das mittlere. Folienstecker lötbar, ohne Stiftleiste, EL
Hintergrungbeleuchtung und Display sowie Touchscreen funktionierten
fehlerfrei.

Ja, scheinbar liegts an der Verpackung: die schwarzen original
verpackten machen keine Probleme.
Autor: Mr. Touch (Gast)
Datum: 17.10.2009 17:15

Hi,
es ist vllt. jetzt eine dumme frage aber kann mir einer bitte die genaue
Pin belegung des Touch-panels sagen? Also ich meine an dem flachen
folienkabel was herausgeführt wird?

Danke
Autor: Hannes Lux (hannes)
Datum: 17.10.2009 18:08

Verfolge doch mal die sichtbaren Leiterzüge auf der Touch-Folie, es ist
sehr gut zu sehen, welcher Pin nach oben, unten, links und rechts geht.

...
Autor: Micha Joo (michady)
Datum: 23.10.2009 19:19

Hallo Leute,
mal eine frage zum Anschluss des Display, ich habe es so angeschlossen
wie im Bild von Benedikt K.und habe nun das Bascom File
LC7981-GRAFIKMODUS von mike drauf gespielt, aber dort passiert leider
nichts.
Ich kenne mich nur im reinen Bascom aus aber in der .bas Touch.rar von
mike steige ich nicht durch.
Ist dort C mit eingebunden oder warum sehe ich dort keine Deklinationen
für den Chip, ob es nun mega8 oder ein mega16 ist.

Danach habe ich das TOUCH_TEST_1.HEX von mike drauf gespielt, auf ein
mega 8, mit die selben Anschlüsse wie in der Zeichnung und es geht :)
Maik könnte ich mal dafür noch Bitte die .bas bekommen ? vielleicht
blicke ich dann mehr durch, oder kann mir jemand auf die Sprünge helfen
:< damit ich estwas verstehe.

Gruß Micha
Autor: Meik Dittmann (meik)
Datum: 23.10.2009 20:26

Hallo Micha.
Das wird nix mit dem Code auf dem Mega8. Der ist für einen
PIC-Mikrocontroller. Das aktuelle File habe ich noch nicht geuppt. Wenn
Interesse besteht, lade ich das aber gerne hoch, sammt Anschlußbelegung
im Target-Format. Müßte ich dann halt noch zeichnen.

Gruß Meik
Autor: Micha Joo (michady)
Datum: 24.10.2009 16:58

Hallo mike,
Danke erstmal für deine schnelle Antwort.
Natürlich habe ich Interesse daran, wie aber schon erwähnt die
TOUCH_TEST von dir funktioniert auf den mega8, kann die Ecken
kalibrieren und das Menü aufrufen.

--PIC-Mikrocontroller-- ach so deswegen die unbekannten Definitionen ;)
aber das ist dann nur bei der LC7981-GRAFIKMODUS so ,oder .

Gruß Micha
Autor: Meik Dittmann (meik)
Datum: 24.10.2009 17:22

Hallo Micha.
Die TOUCH_TEST Ist nicht von mir. Die ist von Allu.
Ich werde im Laufe des Wochenendes die aktuelle Version von mir für den
PIC inkl. einem Anschlussplan im Target Format mal hochladen. Die bas
Datei ist übrigens nicht für Bascom sondern für den PicBasic
Proton-Compiler von Crownhill. Falls jemand einen anderen PIC verwenden
möchte (alle >= 28PINs dürften gehen) kann ich das fertige HEX-File auch
gerne anpassen.
Autor: Carsten Sch. (dg3ycs)
Datum: 24.10.2009 17:45

Meik Dittmann schrieb:
> Falls jemand einen anderen PIC verwenden
> möchte (alle >= 28PINs dürften gehen) kann ich das fertige HEX-File auch
> gerne anpassen.

Hallo Meik,

Wenn du das für den Pic 16F871 anpassen könntest wäre das Prima.
Habe mit Basic das letzte mal ca. 1992 gearbeitet als ich von C64 &
Schneider CPC464 auf PC gewechselt bin... Mit Basic für µC noch niemals.
Da sich seit dem mein Lebensalter mehr als verdoppelt hat sitzt da nicht
mehr so viel...

Dann brauche ich mich da nicht reinarbeiten bzw. selber schnell eine C
bzw. ASM Testroutine auflegen. Auch das erstellen einer AVR Testplatine
kann ich mir dann sparen. Brauche halt nur etwas um die von mir
beschafften Displays durchzutesten. Richtig loslegen mit eigener
Anwendung kann ich leider erst in der zweiten Novemberhälfte...
(Werde in einigen Tagen umziehen - Arbeitsraum ist schon teilweise
verpackt)

Gruß
Carsten
Autor: Allu (Gast)
Datum: 24.10.2009 19:24
Angehängte Dateien:

Hallo Micha,

anbei das Bascom-Assembler-Programm zu Touch_Test_1.

Der Touch wird per Interrupt 30 mal pro Sekunde abgefragt, das dauert
jeweils ca. 0,5 msec. Das Display wird auch mit Assemblerroutinen
bedient.

Die Funktionen lassen sich aber alle vom Basicprg. aus mit Gosub
benutzen.

Gruß Allu
Autor: Micha Joo (michady)
Datum: 24.10.2009 20:32
Angehängte Dateien:
  • preview image for 3.jpg
    3.jpg
    63,7 KB, 879 Downloads

Hi Mike,
danke für deine Hilfe, aber mit dem PicBasic
Proton-Compiler werde ich wohl nichts anfangen können und daher gern bei
Bascom bleiben.
Hallo Allu, das ist ja doch helsch kompliziert aufgebaut im Programm,
vor allem das asm ;).
Ich komme immer nur auf das eine Feld wie im Bild zu sehen, ich kann an
drücken was ich will, lande immer dort.
Im Programm sehe ich aber das es noch andere Ebenen geben muss, ich
vermute mal das die Anschlüsse von den X Y Achsen nicht korrekt sind,
zwar habe ich die vier schon hin und her gesteckt und sollten laut deer
ausgaben über das Display auch stimmen, aber hm.
Wie sind die richtigen anschluss der XY Achsen definiert am LCD, im
Datenblatt ist davon nichts zu sehen.

Gruß Micha
Autor: Allu (Gast)
Datum: 24.10.2009 22:15

Hallo Micha,

zum Displayanschluss - das Display liegt mit der Anzeigeseite vor Dir,
das Folienkabel ist rechts, die Anschlüsse zum Mega 8 von oben nach
unten:

----  oben = Pin 23
----       = Pin 24
----       = Pin 25
---- unten = Pin 26

Ich hoffe, ich habe mich nicht vertan.

Ja, es gibt mehrere Ebenen: Touchwerte anzeigen, Kalibrieren und
Texteingabe. Die Menüepunkte, die sich "antouchen" lassen, sind gross
geschrieben. Ist aber kein muss, da kann man reinschreiben was man
möchte. Der Rückgabewert liegt "unter" dem Zeichen.

So wie die Werte in Deinem Bild aussehen, wird nach der Kalibrierung
wahrscheinlich für 5 Sekunden "Fehler" angezeigt, weil die Messwerte zu
weit vom erwarteten Wert weg lagen.
Ansonsten wird für links oben Chr=0, Wert=48 und Raster Y=0 und X=0
angezeigt, weil sich an der Stelle eine "antouchbare" 0 befindet.

Rechts unten in der Ecke ist ein G und dazu gehört Chr=G, Wert=71 und
Raster Y=7 und X=22

Gruß  Allu
Autor: Sebastian R. (sebr)
Datum: 24.10.2009 22:34

Hat denn schon jemand das Display in nem fertigen Projekt verwendet?
Würde mich interessieren.
Autor: Micha Joo (michady)
Datum: 25.10.2009 09:54

Hallo Allu,
ja ich habe schon durch meeres abstechen mit den Stift auf dem Display
gemerkt das man doch in den einzelnen ebenen kommt, aber die Variante
wie du oben angibst ist leider an mein LCd nicht richtig.
Ich kann aber umstecken was ich will, entweder sind die Menüs rechts
oder links im LCD ,wen ich alles überprüfe, oder es geht garnichts.hm.
:|

Aber mal was anderes, was braucht man nur im Programm wen man das
Display ohne den Touch betreiben will, es ist ja eine nette Größe und
daher flexibel für einige Anwendungen, wo auch wie ich gelesen habe,
nicht jedes geht was von Pollin kommt.
Ich frage deswegen, weil ich mich bisher auch mit den GLCDs nicht
beschäftigt habe, Neuland ;)

Gruß Micha
Autor: Hannes Lux (hannes)
Datum: 25.10.2009 10:30

> wo auch wie ich gelesen habe,
> nicht jedes geht was von Pollin kommt.

Was spricht eigentlich dageen, ein neu geliefertes LCD erstmal mittels
Benedikts Testprogramm (im Mega8) zu testen? Da sieht man,

- ob alle Pixel funktionieren
- ob der Touchscreen ordentlich kontaktiert ist
- ob der Touchscreen verzerrungsfrei arbeitet
- welche Präzision mit dem Touchscreen erreichbar ist (zum Vergleich
  mit dem Ergebnis eigener Routinen)
- ob man das LCD reklamieren muss, oder ob das eigene Programm
  fehlerhaft (oder suboptimal) ist

Das Testprogramm als Hex-Datei findet man hier:
Beitrag "Display mit Touchscreen bei Pollin?"
Die Anschlussbelegung findet man hier:
Beitrag "Display mit Touchscreen bei Pollin?"

...
Autor: Meik Dittmann (meik)
Datum: 25.10.2009 10:32
Angehängte Dateien:

So, hier die aktuelle Version. Plus und Minus dürften klar sein, ebenso
die Beschaltung von Vee. CS kommt auf Masse, Dis Off auf +5V. Der Rest
ist im Bild zu erkennen. Der Aktivierungspunkt der Softkeys ist der
Loslasspunkt, daher ist es nicht tragisch, wenn man rechts mal übermalt.
1-2 kleinere Bugs sind aber noch drin. Werden aber noch bereinigt. Ist
ein super Kinderspielzeug übrigens.
@ Carsten
Ich hatte, bevor ich mit dem PicBasic angefangen hatte, meine letzten
Erfahrungen mit Basic ebenfalls in der 90ern. Damals noch mit dem C16
und im zarten Alter von 11-13...Hui ist das lange her. Aber der
Wiedereinstieg mit PicBasic war erstaunlich leicht, da sehr viele
Befehle gleich sind. Und der Rest ist recht einfach zu interpretieren.
Die Version für den 871 mache ich wahrscheinlich heute auch noch fertig.

Meik
Autor: Meik Dittmann (meik)
Datum: 25.10.2009 11:40
Angehängte Dateien:

So, hier die Version für den 871. Es steht wegen dem zu geringen
Speicherplatz allerdings kein Zeichensatz zur Verfügung!
Die Belegung der Ports ändert sich aufgrund zu weniger
Einstellmöglichkeiten im ADCON Register wie folgt:
A5 -> C6
A2 -> C4
A6 -> C7
A3 -> C5
Die zwei Brücken von A2 & A6 ebenfalls entsprechend auf C4 & C7 legen.
Das ganze ist im Übrigen ungetestet.
Meik
Autor: Sven B. (svenba)
Datum: 25.10.2009 12:01

Hi!
Nachdem ich die Reparatur des Displays und eine funktionierende
Ansteuerung mit ASM hinter mich gebracht habe, will ich jetzt die
Touchfunktion ausprobieren.
Allerdings will ich bei Assembler bleiben. Hat hier jemand mal ne
Routine zur Touchauswertung in Assembler gesehen/geschrieben??
Oder:
Habe ich das richtig verstanden, dass ich alle 4 pins an die adc-ports
anklemme und dann im Wechsel erst die Y-Leitungen auf Ausgang(mit
Pull-Up) und Ausgang(ohne) schalte,die X-Leitungen mit den ADCs lese und
danach das ganze umdrehe?
ATMega32 / 64
Autor: Allu (Gast)
Datum: 25.10.2009 12:24

Hallo Sven,

schau mal in Touch_Test_1.bas nach. Da steht zwar .bas dran,
Touchabfrage und Displayansteuerung sind aber in Assembler gebastelt.

Gruß Allu
Autor: Allu (Gast)
Datum: 25.10.2009 13:00

Hallo Micha,

wenn Du nur Texte auf dem Display darstellen willst, keine
selbstgestrickten Zeichen und keinen Touch brauchst, geht es auch
einfacher. Leider habe ich da kein Beispiel.

Schau mal ins Datenblatt vom Contoller, der läßt sich auch im Textmodus
mit internem Charaktergenerator betreiben. Da fällt einiger Aufwand weg
und das Programm wird vermutlich auch in Basic schnell genug ablaufen.

Gruß  Allu
Autor: Micha Joo (michady)
Datum: 25.10.2009 13:58

Hi Allu,
#mit internem Charaktergenerator betreiben#
du erzählst mir Sachen, :) schade das du kein Beispiel hast.

gruß Micha
Autor: Roland Praml (pram)
Datum: 25.10.2009 14:16
Angehängte Dateien:

Hier ein Vorschlag von mir zur Touch-Auswertung mittels AVR.
(Hab die Datei aus einem Projekt von mir, muss deshalb ggf noch den
eigenen Bedürfnissen angepasst werden)

Gruß
Roland
Autor: Sven B. (svenba)
Datum: 25.10.2009 14:36

@allu:
Besten Dank, werd mich da mal durchforsten. Sieht gut aus.

Gibt es die Buchsen für die Flachleitung zum Touch irgendwo passend zu
kaufen?
Autor: Allu (Gast)
Datum: 26.10.2009 13:39
Angehängte Dateien:

Hallo Micha,

anbei eine Version mit nur Text, ohne Touch.

Die Spalten gehen von 0 bis 22, die Zeilen zum Text schreiben
sinnvollerweise von 0 bis 72. Um das Assemblergeraffel brauchst Du Dich
nicht zu kümmern, geht alles mit Gosub vom Basic aus zu bedienen.
Im Beispielprog. wird auf der letzten Seite der vorhandene Zeichensatz
angezeigt, einfach ein paar Sekunden abwarten. Ich hoffe, Du kannst was
davon verwenden.

Gruß  Allu
Autor: Micha Joo (michady)
Datum: 26.10.2009 16:18

Hallo Allu,
das ist ja super, danke dafür.
Noch eine frage wie kann man es am besten herausfinden wo man direkt in
den Zeilen und spalten ist, gibt es eine Vorlage dafür oder muss man
sich das ausprobieren.

Gruß Micha
Autor: Micha Joo (michady)
Datum: 26.10.2009 17:08

Micha Dy schrieb:
> Hallo Allu,
> das ist ja super, danke dafür.
> Noch eine frage wie kann man es am besten herausfinden wo man direkt in
> den Zeilen und spalten ist, gibt es eine Vorlage dafür oder muss man
> sich das ausprobieren.
>
> Gruß Micha

ach noch etwas, soweit geht ja alles mit ein mega16 aber die Touch
Eingänge werden dort nicht angenommen.
Habe diese auf die ADC Eingänge zu den Porta am 16er umgestellt, sollte
doch so gehen oder ? oder habe ich noch etwas vergessen um zu stellen.

Gruß Micha



##Daten_bus_out Alias Portb
##Daten_bus_in Alias Pinb
##Daten_ddr Alias Ddrb
##Auf_input_stellen Alias &H00
##Auf_output_stellen Alias &HFF
##Bussy Alias 7


##Touch_control Alias Porta
##Touch_ddr Alias Ddrc
Autor: allu (Gast)
Datum: 26.10.2009 17:47

Hallo Micha,

die oberste Zeile ist 0 die unterste ist 79.  Um ein Zeichen zu
schreiben, muss mindestens 8 Zeilen Platz sein. Spalte 0 ist links, 22
rechts. Oder was meinst Du ?

Wieso Touch-Eingänge ? Da sollte nix mehr vom Touch drin sein.

Gruß  Allu
Autor: Micha Joo (michady)
Datum: 26.10.2009 18:48

Hi allu,
ja stimmt schon für das was du mir als letztes geschickt hattest.
aber ich wollte auch die andere probieren die damit gehen soll, auf den
mega16, aber habe es gefunden, nur was übersehen..

OK, dan werde ich mich mal probieren mit der Zeilen Schieberei.

Gruß Micha
Autor: Hardy (Gast)
Datum: 28.10.2009 20:46

Hallo zusammen!

Wie kann ich aus dem LCD Controller LC7981 die aktuelle Cursorposition
auslesen? (Cursor address counter)


Besten Dank im vorraus...
Autor: Chris (Gast)
Datum: 28.10.2009 22:59

Gar nicht
Autor: Sven B. (svenba)
Datum: 01.11.2009 14:36

Hi Leute!
Habe anscheinend den passenden Stecker für den Folienanschluss gefunden;

Hersteller: MOLEX
Herst.- Nr.: 22-02-3043

(Lieferant: Mouser-Nr.: 538-22-02-3043)

Beschr.: SMT-Steckverbinder u. FFC/FPC 4P FFC ST ASSY
          ( Pitch 2,54 mm mit 4 Pins)

Leider hab ich diesen Stecker nur bei Mouser und anderen
"Grosslieferanten" gefunden, wo man pauschal 20€ Versand zahlt, es sei
denn, man kommt über 75€ Bestellwert.

Hat einer von euch ne andere Bezugsquelle??

MfG S.B.
Autor: Jan H. (cyno)
Datum: 01.11.2009 15:40

Hi Sven,

Sven B. schrieb:
> Leider hab ich diesen Stecker nur bei Mouser und anderen
> "Grosslieferanten" gefunden, wo man pauschal 20€ Versand zahlt, es sei
> denn, man kommt über 75€ Bestellwert.

Der Vorschlag ist zwar noch nicht gekommen, aber sollte da eine
Sammelbestellung entstehen, wäre ich mit min. 10 Stk. dabei.

Gruß,
Jan
Autor: Sven b. (Gast)
Datum: 01.11.2009 16:03

Ok, auch ne idee!wenn sich noch min. zwei andere finden,
würd ich ne sammelbest. absetzen! Werd mal ein bißchen
auf feedback hier warten...
Autor: Matthias R. (mons)
Datum: 01.11.2009 20:00

Habt ihr schon was für die C-Control Pro?
(Programmtext)
Autor: Thorsten E. (nietzsche)
Datum: 02.11.2009 16:27

Also ich würde auch 5 von den Steckern nehmen...

Habe gerade mal spaßeshalber bei Farnell geschaut...
Mindestbestellmenge: 1,2k :D
Autor: Frank R. (frankies)
Datum: 08.11.2009 12:58

Hallo

das Display läuft soweit. Touch geht auch. Ich hatte das Glück zwei
originalverpackte Display zu bekommen.

Nur leider finde ich die EL-Folie als Backlight ... bescheiden. Zu
dunkel, zu grün und zirpende Geräusche macht das Teil auch noch. Gibts
eine Möglichkeit das Display auf ein LED Backligh umzubauen? Hat das
schon mal jemand gemacht?

Danke und viel Grüße,

Frank
Autor: Sebastian R. (sebr)
Datum: 08.11.2009 13:18

Welchen Inverter verwendest du denn?
Mit dem "EL-Inverter 08" von Reichelt habe ich keine Probleme. Keine
Geräusche und Kontrast auch OK
Autor: Frank R. (frankies)
Datum: 08.11.2009 13:23

Hallo Sebastian

Ein NoName aus meiner Grabbelkiste. Könnte der die Ursache der Geräusche
und auch des schlechten Kontrastes sein? Ich meine die Geräusche kommen
von der EL-Folie.

Werden bei Dir auch die schwarzen Pixel grün sobald die Folie
eingeschalten ist oder liegt das auch an meinem "komischen" Konverter?

Gruß,

Frank
Autor: Sven B. (svenba)
Datum: 08.11.2009 13:30

Frank R. schrieb:

> dunkel, zu grün und zirpende Geräusche macht das Teil auch noch

Ich benutze auch den 08 Inverter,das Gezirpe wird aber leiser, wenn ich
das Display anschliesse...
Scheint bei den Teilen ohne und mit wenig Last wohl üblich zu sein...

Wäre auch an einem Umbau interessiert, hab aber irgendwo einen
Schaltplan gesehen, um mit NE55x einen Inverter selbst zu bauen, evtl
bringt der ja mehr ohne Gezirpe...

P.S.: Hab jetzt ne Sample Anfrage per Email zu den Steckern direkt bei
Molex (de) gemacht, mal schauen, was ein bißchen Gejammere bringt ;-)
Autor: Sebastian R. (sebr)
Datum: 08.11.2009 15:36

Frank R. schrieb:
> Hallo Sebastian
>
> Werden bei Dir auch die schwarzen Pixel grün sobald die Folie
> eingeschalten ist oder liegt das auch an meinem "komischen" Konverter?
>
> Gruß,
>
> Frank

Ja. Also ich bin zufireden mit dem Display :)
Autor: J. K. (rooot)
Datum: 08.11.2009 20:21

bezüglich Stecker:
Ich hab mir jetzt selbst einen solchen gebaut.
Dazu hab ich einfach die Federn aus einem IC-Sockel gezogen, und sie
nebeneinander gelötet (in meinem Fall auf eine Pinleiste). Der Abstand
zwischen den Federn ist dann der gleiche wie im Sockel, nur halt ohne
Plastik.

ruhiges Händchen und Pinzette obligat ;-).

MfG
j:k
Autor: Thorsten E. (nietzsche)
Datum: 08.11.2009 20:38

Könnte ich ein Bild sehen?
Autor: Juppi J. (juppii)
Datum: 08.11.2009 20:58

Autor: Hannes Lux (hannes)
Datum: 09.11.2009 08:03

Juppi J. schrieb:
> Beitrag "Display mit Touchscreen bei Pollin?"

Das sind allerdings Federn aus einem alten ISA-Slot. Geht gut und kostet
nix. Wem das zu lavede ist, der kann ja noch seitliche Führungen für den
Folienleiter ankleben oder anlöten. ;-)

...
Autor: J. K. (rooot)
Datum: 09.11.2009 18:59
Angehängte Dateien:

Hier zwei Bilder von meiner Konstruktion.

Hoffe man kann genug erkennen.
Autor: Timmo H. (masterfx)
Datum: 10.11.2009 09:35

So hab mir jetzt auch mal so eins bestellt für meine Wetterstation die
ich bauen möchte. Bin ja mal gespannt. Selbst wenn das Touch nicht geht
kann man für den Preis nichts falsch machen...
Autor: Hannes Lux (hannes)
Datum: 10.11.2009 10:07

> Selbst wenn das Touch nicht geht...

Der Touch ging bei meinen Exemplaren immer. Probleme gab es mit
schlechter Kontaktierung des Displays (fehlende Pixelzeilen). Die
fehlerhaften Displays wurden mir aber problemlos umgetauscht. Aber
selbst bei Benutzung als reines (ressourcenschonendes) Text-LCD (10
Zeilen je 20, 22 oder 26 Zeichen) ist der Preis ok.

...
Autor: NrDesign (Gast)
Datum: 10.11.2009 23:14

Hallo!

Ich habe mir vor ein paar Tagen auch ein Touch-Display besorgt; heute
ist es angekommen. Ich habe alles nach den Anleitungen hier aufgebaut,
es funktioniert tadellos :)
Entweder hatte ich nur Glück oder Pollin lernt.

Danke an alle, die dieses Projekt möglich machen!

Gruß,
NrDesign
Autor: J. K. (rooot)
Datum: 11.11.2009 19:04

>Wäre auch an einem Umbau interessiert, hab aber irgendwo einen
>Schaltplan gesehen, um mit NE55x einen Inverter selbst zu bauen, evtl
>bringt der ja mehr ohne Gezirpe...

ich hätte dazu noch ein paar Erfahrungserte, denn bei mir läuft so was
ähnliches seit 2 Wochen.

Zuerst baute ich mit einem Timer555 einfach einen Multivibrator mit 500
Hz takfrequenz auf. Dieses Signal verstärkte ich noch mit einem
einfachen Wald und Wiesen Transistor (BC547) und schickte es in einen
Netztrafo (24V-230V).

Das "Problem" an der Schaltung ist evt. , dass kein Sinus erzeugt wird,
sondern ein Rechteck (bin mir aber nicht sicher, wie das nach dem Trafo
ausschaut).

In der Praxis läuft das ganze problemlos. Die Schaltung erzeugt 80V, was
auch leicht für die blaue Hintergrundbeleuchtung reicht.
Summen ist keines zu vernehmen. Ob das so ist, ist aber sicher vom
verwendeten Trafo abhängig.

Inzwischen hab ich vom NE555 abgesehen, und erzeuge das Signal über
µC-Pin und Timer im PWM Mode, der Rest ist aber der selbe.

MfG
j:k
Autor: Sven B. (svenba)
Datum: 11.11.2009 20:30

Hab ich das richtig verstanden? Steuerst du die Beleuchtung und/oder
Kontrast über PWM?? Das ist genau das, was ich bald vorhabe...
Hättest evtl mal nen Schaltplan??
Autor: J. K. (rooot)
Datum: 12.11.2009 16:39

Ja, ich steuere die Beleuchtung über PWM. Kontrast stelle ich über ein
normales Poti ein. Diese ist ein bisschen aufwendiger per PWM zu regeln
da ja auch negative Spannungen eingestellt werden müssen.

Bezüglich Schaltplan:
*µC-Pin - 1k Vorwiderstand - Basis BC547
*Emitter auf Masse
*Collector auf Trafoanschluss
*den anderen Trafoanschluss auf +Ub

Softwaremäßig hab ich noch sicher gestellt, das der Transitor sperrt,
wenn Beleuchtung ausgeschaltet ist, denn Gleichspannung über
Transformator kommt einen Kurzschluss schon sehr nahe ;-).

Mehr is da nicht dabei, einfach "Transistor als Schalter".

MfG
j:k
Autor: J. K. (rooot)
Datum: 12.11.2009 16:40

Nachtrag:
wer mittels Timer das Signal erzeugen will:
http://www.elektronik-kompendium.de/sites/slt/0310131.htm
Autor: Thomas H. (microtom)
Datum: 13.11.2009 00:44
Angehängte Dateien:

Hallo Zusammen,

ich bin seit neuem ebenfalls im Besitz eines Pollin 16080 Touch
Displays.

Als Schaltung habe ich die Schaltung aus dem Forum hier (siehe Anhang)
für den ATMEGA32 gewählt.

Da ich AVR Anfänger bin würde ich gerne mit Bascom arbeiten. Leider
fehlt mir noch das nötige Wissen zur Portanpassung und für den ersten
Schritt. Gibt es ein kleines Beispiel, welches mit BASCOM und dem
beigefügten Schaltplan läuft?

Eine Frage noch zum Schaltplan: Ist der Quarz denn überhaupt nötig? Kann
ich nicht mit dem internen Takt arbeiten?

Ich würde mich über ein paar Tipps und Kniffe freuen!
Über ein Beispiel, das die Ports angepasst hat und auf dem MEga32 läuft
wäre ich superhappy ;-)

Gruß
Thomas
Autor: Sven B. (svenba)
Datum: 13.11.2009 11:23

Bascom: Nicht meine Welt.

Bezüglich Quarz:
Gewöhn dich besser gleich daran, Einen zu nutzen, da du früher oder
später sowieso auf Einen zurück greifen wirst, weil dir der interne Takt
zu ungenau und/oder zu langsam wird!!
Autor: Thomas H. (microtom)
Datum: 13.11.2009 14:17
Angehängte Dateien:

Wird gemacht, danke für den Hinweis.

Würde aktuell meine Schaltung aber auch ohne den Quarz laufen (da Sie
gerade so schön aufgebaut ist und der Quarz auch keinen Wert angegeben
hatte im Schaltplan)? - Denke eher nicht aber wer weiß :)

Hat jemand noch ein paar Codeschnipsel bezüglich Bascom und der
genannten Schaltung?

Wenn Nein, würde mir schon helfen, wenn ich genau wüsste, wie ich meine
Ports auf die Schaltung korrekt anpasse in folgendem Code (bzw. dem im
Anhang).
$regfile = "m32def.DAT"
$crystal = 8000000
$baud = 19200
$hwstack = 64
$swstack = 256
$framesize = 84


'PortPins zum Display 16080 festlegen und initialisieren


Daten_bus_out Alias Portd
Daten_bus_in Alias Pind
Daten_ddr Alias Ddrb
Auf_input_stellen Alias &H00
Auf_output_stellen Alias &HFF
Bussy Alias 7


Touch_control Alias Porta
Touch_ddr Alias Ddrc

Danke
Gruß und schönes Wochenende
Thomas
Autor: Thomas H. (microtom)
Datum: 13.11.2009 16:54

So müssten die ja passen, aber es tut sich leider nicht.

Control_bus Alias Portc
Rs Alias 5
Rw Alias 4
E Alias 3
Cs Alias 1
R Alias 0
Pullups_ein Alias &HFF
Autor: allu (Gast)
Datum: 13.11.2009 17:35

Hallo Thomas

auf den ersten Blick fehlt noch die Anpassung der beiden
Datenrichtungsregister an deine Schaltung.

Gruß   allu
Autor: allu (Gast)
Datum: 13.11.2009 18:28

Für das Display habe ich aus Verarbeitungszeitgründen Assemblerroutinen
programmiert, deshalb zusätzlich die Datenrichtungsregister im
Bascom-Teil.
Autor: Thomas H. (microtom)
Datum: 13.11.2009 18:35

Musst entschuldigen, falls ich ein wenig zu "anfängerrisch" frage, aber
sind das nicht die zwei Beiden hier:
Daten_bus_out Alias Portd
Daten_bus_in Alias Pind

und das eben auch auf PORTD?

Wäre es Dir möglich, mir den Code ein wenig genauer zu kommentieren?
Wäre prima, das würde bestimmt meinem Verständniss auf die Sprünge
helfen ;-)

- Wie passe ich die Datenrichtungsregister an?
- Ist der Quarz nun zwingend? Wenn ja dann 16MHz?
- Welche Werte für die Kondensatoren?

Wenn ich das Display mal zum laufen gebracht habe mach ich 'nen
Luftsprung und teile die Erfahrungen auch gerne einem
"Zukünftigen"-Neuling mit.

Gruß
Thomas
Autor: allu (Gast)
Datum: 13.11.2009 18:52

Ist nicht anfängerisch, bin selbst noch am üben. Probier mal:

Für Port D:
Daten_bus_out Alias Portd
Daten_bus_in Alias Pind
Daten_ddr Alias Ddrb <--- Ddrd einstetzen, weil Port d und nicht Port b


und für Port A:
Touch_control Alias Porta
Touch_ddr Alias Ddrc <---  Ddra
Autor: Thomas H. (microtom)
Datum: 13.11.2009 19:03

Hab ich inzwischen gemacht
Daten_bus_out Alias Portd
Daten_bus_in Alias Pind
Daten_ddr Alias Ddrd
Auf_input_stellen Alias &H00
Auf_output_stellen Alias &HFF
Bussy Alias 7



Touch_control Alias Porta
Touch_ddr Alias Ddra

Leider kein Erfolg. Was ist mit dem Quarz und den Kondis? Hast Du mir da
noch eine Inforamtion?

[Aktuell hab ich 2mm Streifen auf dem Display bei mittlerem
Kontrast...?! Aber keine Funktion. Gibts eine Möglichkeit herauszufinden
ob das Display 'theoretisch' noch funktioniert oder ob ich es irgendwie
abgeschossen hab? Mir fällt da gerade nichts sein.]

@Allu, wie hast Du Dein Display mit dem Atmega32 zusammengeklebt? SChon
mit dem gleichen Schaltplan, oder? Hast Du eine Schaltung mit passendem,
funktionierendem Code?

Gruß
Thomas
Autor: Hannes Lux (hannes)
Datum: 13.11.2009 19:13

Wollt Ihr für Eure Bascom-Anfängerfragen nicht einen eigenen Thread
aufmachen??

...
Autor: allu (Gast)
Datum: 13.11.2009 19:15

Bleib erstmal bei 8 Mhz, dafür sind die Zeiten der Displayansteuerung
ausgelegt. Langsamer gehts immer, schneller muß man probieren. Demnächst
möchte ich auch einen Mega32 mit 16 Mhz verwenden und dabei die
Ansteuerzeiten anpassen.

Ein Quarz ist für die Displayansteuerung nicht notwendig, aber sehr
empfehlenswert, Stichwort: serielle Schnittstelle.

Bei 8 Mhz-Quarzen verwende ich 27pf.
Autor: Thomas H. (microtom)
Datum: 13.11.2009 19:18

Damit es die AVR-Studio'ler nicht stört:

Fortsetzung für Pollindisplay mit ATEMGA32 und BASCOM hier:

Beitrag "Pollin 16080 Touch mit ATMEGA32 und BASCOM"

Danke!
Autor: allu (Gast)
Datum: 13.11.2009 21:51

Hut ab Hannes Lux, du hast sofort mit sicherem Blick gleich erkannt das
Assemblerprogrammierung gleich Bascom-Anfängerfragen sind.

Gruß  allu
Autor: Sven B. (svenba)
Datum: 13.11.2009 23:13

allu schrieb:
> Hut ab Hannes Lux, du hast sofort mit sicherem Blick gleich erkannt das
> Assemblerprogrammierung gleich Bascom-Anfängerfragen sind.
>
> Gruß  allu


...hmmm... weil man sich für Bascom garnicht erst mit dem Wissen um die
Anfänge und Funktionen des uC befasst
sondern sich gleich auf die bascom-befehle verlässt, die vorher jemand
Anderes fertig von assembler-codezeilen auf einen bascom-befehl
übersetzt hat? :-p
Autor: Thomas H. (microtom)
Datum: 14.11.2009 00:01

Bitte, das muss doch nicht sein. Jedem das Seine.
Ich bin der Meinung man(n) muss das Rad nicht jedes mal neu erfinden,
dennoch sollte man die Grundlagen kennen. Keinen Streit desshalb ;-)

Persönich, kenne ich das Prinzip - hab aber einfach mehr Erfahrung in C#
Programmierung und das Aufgrund von früheren Basic Erfahrungen.

Das wiederrum erinnert an BASCOM -> desshalb die Entscheidung (vorerst
mal).

Assembler - klar, das ist die Hardsoftwaregrundlage.

Aber es geht mir z.B. jetzt um eine ordentliche Funktion und nicht
allein um das 'Wie' und 'Warum'. Das kommt später, sobald eine
Grundfunktion gewährleistet ist und ich mich mit Details beschäftigen
kann.

Aktuell ist mir nichteinmal bekannt ob meine Hradware OK ist. (Der µC
ist OK, aber z.B. das Display,die Verdrahtung (wobei Sie das sein
sollte), oder eben halt auch der Code))

Gruß und guten Abend!
Thomas
Autor: Hannes Lux (hannes)
Datum: 14.11.2009 01:36

allu schrieb:
> Hut ab Hannes Lux, du hast sofort mit sicherem Blick gleich erkannt das
> Assemblerprogrammierung gleich Bascom-Anfängerfragen sind.
>
> Gruß  allu

Naja, ein paar in Bascom eingebundene ASM-Befehle würde ich nicht gleich
als "Assemblerprogrammierung" bezeichnen. Wenn es schon ASM sein soll,
dann braucht es kein Bascom, dann ist Bascom eher hinderlich als
nützlich.

Aber darum (Bascom-Bashing) ging es mir gar nicht. Mir ging es eher
darum, diesen Thread für wirkliche Infos zu dem genannten LCD
freizuhalten und nicht mit Smalltalk und einem Anfänger-Grundkurs in
irgendeiner Programmiersprache zuzumüllen. Deshalb empfahl ich, für den
Anfänger-Grundkurs einen neuen Thread aufzumachen.

Nungut, mir soll's egal sein, macht was Ihr wollt, aber macht was... ;-)

...
Autor: Sven B. (svenba)
Datum: 14.11.2009 10:57

Sorry, hab mich hinreissen lassen.. Aktion und Reaktion...
Kommt nicht wieder vor..

Zurück zum Thema;


Im Unterschied zu deinem Schaltplan hab ich einen 20k Poti zwischen Pin
2 (+5V) und 17 (VEE) gehängt, der mit dem Schleifer an Pin 3(V0)
hängt.So stehts auch im Datasheet des 16080.

(Mir ist aufgefallen, dass ein kleinerer Wert als 20k einen schlechteren
Kontrast gibt.)
Danach hab ich erstmal im Hauptprogramm alle Subprogramme ausser
Initialisierung auskommentiert, um zu sehen, ob der Reset wenigstens
läuft.
Danach hab ich nur Highs auf dem Display ausgegeben, dann Lows, dann
Hex55 (Strichel) usw... Immer mal wieder am Kontrast drehen, sonst
entgeht einem schnell was!!

ich hoffe, das hilft dir...
Autor: Thomas H. (microtom)
Datum: 14.11.2009 11:45

Danke, ich werde mal ein paar Tests auf diese Weise durchführen.

~Thomas
Autor: Philipp Dju (arcon)
Datum: 21.11.2009 11:13
Angehängte Dateien:

Hallo Leute!
Ich lese nun seit ein paar Wochen mit bei diesem Thread und habe mir
jetzt auch zwei Pollin quasi Touch screens und zwei Atmega 16 geholt.

Softwaretechnisch sollte alles klappen, jedoch Hardwaretechnisch bin ich
mir unsicher welche Bauteile ich noch brauche.

Der Schaltplan von Benedikt K. welchen ich auch angehängt habe ist mein
Anhaltspunkt, jedoch mit dem beschriebenen Text:
> Die Anschlussbelegung dazu. Die ganzen Cs an Spannung, ARef,
> Resetbeschaltung usw. habe ich jetzt im Schaltplan weggelassen.
> Mit dem Taster wird das Bild gelöscht.
habe ich leider so meine Probleme!

Nun zu meinem Fragen/Behauptungen:
> CS heißt wohl Chip Select; Wo sind diese CS Pins?
> Aref habe ich gefunden, dies gehört auf VCC?!
> Resetbeschaltung ist glauch ich 0.3V auf Reset?
> Brauche ich einen Quarz / wieviel MHz?
> Wird der Touchscreen auch am Atmega angeschlossen?
> Mit der Gefahr, dass Ihr das schon zu oft gehört habt ^^, kann ich evt. einen
kompletten Schatlplan oder eine Komplettierung bekommen ( wäre echt meine Rettung
)?

Ich brauche das ganze für eine Maturaarbeit in Projektmanagement. Wir
bauen eine Haustechniksteuerung für Medienräume auf unserer HTL (TGM
Wien). Ich werde mikrokontroller.net auf jeden Fall in der Klasse
weiterempfehlen, weil Ihr (und Pollin ^^) seit die Größten!

Antworten können auch direkt an mich gesendet werden: t.toifl (at)
codes4web at (->wegen robots)
Autor: Sven B. (svenba)
Datum: 21.11.2009 12:10

Hi!
Mit "den Cs"(C´s) meinte Benedikt die Kondensatoren, die zur
Glättung/Stabilisierung/Entprellung usw an den jeweiligen Pins benötigt
werden!
"CS" steht sonst für Chip-Select, da hast du recht!

Am einfachsten guckst du dir in den Tutorials hier (
http://www.mikrocontroller.net/articles/AVR-Tutori... )die
Grundbeschaltung (wegen der C´s) der ATMega an, da steht alles benötigte
drin und das ändert sich meistens nicht von Chip zu Chip.

Zur Beschaltung des GLCD/Touch brauchst du nur so ca.10-15 Posts nach
oben scrollen, da hat Thomas H. das letzte Mal einen Plan angehängt...
Ja, die Touch Leitungen kommen direkt an den uC, müssen jedoch an den
ADC-Pins (Port C) hängen, weil du ja die jeweilige Spannung draufgeben
und dann auswerten musst.Auf dem von dir angehängten Plan sind die
Touch-Leitungen mit x+- und y+- bezeichnet!

Man kann ohne Quarz, also mit internem Takt arbeiten, das ist dann
allerdings nicht gaaanz so genau und wenn du eh Bauteile bestellen
willst, würde ich gleich noch den Quarz und die zwei C´s dazu
bestellen....
Steht auch im Tut.

In welcher Sprache willst du denn Programieren?

Viel Spass!!
Autor: Timmo H. (masterfx)
Datum: 21.11.2009 14:30
Angehängte Dateien:

Mein ist da und lief dank Benedikts Quellcode auf anhieb
Autor: Philipp Dju (arcon)
Datum: 23.11.2009 08:43

Sven B. schrieb:

> In welcher Sprache willst du denn Programmieren?

Java ^^
Nein C ist für uns am einfachsten, da wir darin schon Erfahrung haben!

Ich werde nun mal deinen Rat befolgen, mir einen Quarz und die Elkos
kaufen und dann mit den Tests starten.

Also dann ...
Autor: Timmo H. (masterfx)
Datum: 23.11.2009 08:46

Hat jemand einen Tipp für einen günstigen Inverter für die Beleuchtung?
Möglichst kein und günstig. EDIT: Ahh EL-Inverter 08 von Reichelt.

Oder gibts eine Möglichkeit die EL-Folie mit einigermaßen homogenen
Ausleuchtung auf LED oder so umzubauen?
Autor: Sigint 112 (sigint)
Datum: 23.11.2009 15:42

Philipp Dju schrieb:
> Sven B. schrieb:
>
>> In welcher Sprache willst du denn Programmieren?
>
> Java ^^

Warum nicht Java!?? :-)

http://www.harbaum.org/till/nanovm/index.shtml

Gruß,
  SIGINT
Autor: Philipp Dju (arcon)
Datum: 24.11.2009 08:47

> Warum nicht Java!?? :-)
>
> http://www.harbaum.org/till/nanovm/index.shtml
>
> Gruß,
>   SIGINT

Super !!!
Gleich ausprobieren!

lg
Autor: Sebastian S. (bachelor)
Datum: 27.11.2009 08:50

Hi Leute,

kann mir einer sagen ob es normal ist das der EL-Inverter 08 von
Reichelt richtig laut und eklig pfeift?

Gruß Sebastian
Autor: igel (Gast)
Datum: 27.11.2009 09:08

Meiner pfeift kaum hörbar. Bei Nebengeräuschen (Radio, PC,etc.) fällt
das nicht mehr auf.
Autor: Sebastian R. (sebr)
Datum: 27.11.2009 12:20

Bei mir ist der EL08 unhörbar
Autor: Sebastian S. (bachelor)
Datum: 27.11.2009 13:15

Danke!

Dann werd ich mal bei Reichelt nachfragen!

Gruß Sebastian
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 28.11.2009 21:30
Angehängte Dateien:

Fakten
-----------------------------------------
> Habe die Schaltungvon Benedikt nachgebaut
> Verwende den AVR Bootloader FastBoot von Peter Dannegger
> Softwareupload funktioniert
> auf PIN 11 (laut Plan unbelegt) kommt (am Pollin AVR FUNK) ein Blinksignal an!?
> Bei angeschlossener Stromversorgung an der Schaltung hat das Display folgende
>    Zustände: (Zufällig!) Manchmal: Siehe Bild, Manchmal: Weißer 7mm dicker,
>    horizontaler Balken, welcher von oben nach unten fährt! Manchmal: nichts!
> 8Mhz Quarz
> Atmega8

Fragen
-----------------------------------------
> Wenn ich die Schaltung nachbaue funktioniert gar nichts!
>    Wenn ich aber XTAL1 abstecke, kommt wieder das Blinksignal an!?
> Das Display zeigt keine Regung!
> Was sollte am Display erscheinen!

Ich hoffe ich habe alle Informationen angegeben und Ihr könnt mir
helfen!

Lg
Tobias
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 29.11.2009 01:48

Habe den Fehler für das Bild gefunden: LCD enable nicht gesetzt.

Trotzdem habe ich eindeutig ein Quarz Problem!
Bitte sagt mir wie und ob ich XTAL wirklich an das LCD anlegen
darf/muss.

Ach ja und was ist am Touch x und y?

Lg
Tobias
Autor: Thomas H. (microtom)
Datum: 29.11.2009 09:08

Hi,

Folienleiter rechts von Display, dann:

Y_minus
Y_plus
X_plus
X_minus

Gruß
Thomas
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 29.11.2009 10:43

Danke, sonst eine Idee warum mein DIsplay nichts anzeigt?
Autor: Thomas H. (microtom)
Datum: 29.11.2009 11:47

Wie hast Du denn XTAL an das LCD angelegt? Eventuell verstehe ich Dich
gerade falsch, aber der Quarz muss an die XTALs vom ATMEGA.

Hast Du einen Schaltplan, wie Du das Display an Deinen Atemga
angekoppelt hast?

Gruß
Thomas
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 29.11.2009 12:00
Angehängte Dateien:

Das ist der Plan den ich hier aus dem Forum habe.
Ich habe jetzt mal den Quarz abgehängt und XTAL1/2 als I/O Port genommen
(wie es laut Plan angegeben ist). Weiter habe ich die interne Freq. auf
8mhz gestellt.

Ich habe den Atmega laut AVR Tutorial angeschlossen (exkl. Quarz).
http://www.mikrocontroller.net/articles/AVR-Tutori...

Ich habe das Display nach Plan (mit Kontrolle der Displaybeschreibung)
angeschlossen.

Als Software nehme ich "TOUCH_TEST_1.HEX" von ALLU:
Beitrag "Display mit Touchscreen bei Pollin?"

Also was kann der Fehler sein?

Meine Vermutungen:
> Kontrastfehler
> Software nicht mit Plan passend.
> Ich habe ein Kabel falsch angeschlossen ( x Mal kontrolliert =( )

Lg
Tobias
Autor: Thomas H. (microtom)
Datum: 29.11.2009 12:04

Hi,

denke auch dass das HEX File nicht zum Plan passt. Mit was programmierst
Du? BASCOM? Da könnte ich Dir eher behilflich sein (mir selbst wurde von
Allu geholfen)

Gruß
Thomas
Autor: Timmo H. (masterfx)
Datum: 29.11.2009 12:28

Hast du den Poti für den Kontrast dran?
Ich hatte das anfangs auch, da war der ISP aber schuld, da der
Controller nach dem Programmieren im Reset gehalten hat.
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 29.11.2009 12:28

Hmm, ich kenne Bascom nicht..
Ich lade mir mal bascom herunter (die demo) ;)
(4k reicht allemal oder?)

Hast du eine .bas Datei für meinen Plan (zum Testen)?

Lg
Tobias
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 29.11.2009 12:41

Timmo H. schrieb:
> Hast du den Poti für den Kontrast dran?
> Ich hatte das anfangs auch, da war der ISP aber schuld, da der
> Controller nach dem Programmieren im Reset gehalten hat.

Ich habe einen Poti dran - 100k
Der At8 startet auch ständig neu (glaube ich), da, als ich eine Testsw
aus dem AVR Tut genommen habe (led1 und 2 wechseln per tastendruck) das
prog auch ständig neu startet.

Lg
Tobias
Autor: Sven B. (svenba)
Datum: 29.11.2009 13:01

Nochmal zum Stecker....
Wer suchet, der findet!

Was haltet ihr von diesem Stecker?

http://www.reichelt.de/?ACTION=3;ARTICLE=86701;PROVID=2402

Laut Beschreibung im Reichelt Katalog 4 Pin mit 1mm Pitch...

Viel Spass noch!!
Autor: Alex D. (allu)
Datum: 29.11.2009 16:37

Hallo Tobias,

doch, "TOUCH_TEST_1.HEX" läuft auf der Mega8-Schaltung von Benedikt.
Allerdings wird als erstes oben links nur ein dünnes Kalibrier-Kreuzchen
angezeigt. Es gibt noch eine Version ohne Touch: "Nur_Text_2.hex"
(deutlich weiter oben zu finden).
Die Demoversion von Bascom reicht leider nicht aus.

Gruß
Allu
Autor: Sascha Weber (sascha-w)
Datum: 29.11.2009 17:22

Sven B. schrieb:
> Nochmal zum Stecker....
> Wer suchet, der findet!
>
> Was haltet ihr von diesem Stecker?
>
> http://www.reichelt.de/?ACTION=3;ARTICLE=86701;PROVID=2402
>
> Laut Beschreibung im Reichelt Katalog 4 Pin mit 1mm Pitch...
>
der Folienleiter des 16080 hat 2.54mm Raster - nicht 1mm !!

Sascha
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 29.11.2009 18:26

Alex D. schrieb:
> Hallo Tobias,
>
> doch, "TOUCH_TEST_1.HEX" läuft auf der Mega8-Schaltung von Benedikt.
> Allerdings wird als erstes oben links nur ein dünnes Kalibrier-Kreuzchen
> angezeigt. Es gibt noch eine Version ohne Touch: "Nur_Text_2.hex"
> (deutlich weiter oben zu finden).
> Die Demoversion von Bascom reicht leider nicht aus.
>
> Gruß
> Allu

Bei mir wird aber garnichts angezeigt =(
Kann das ein Kontrastfehler sein?

Ich probiers nochmal ... (mit Lupe ^^)

Danke & Lg
Tobias
Autor: Alex D. (allu)
Datum: 29.11.2009 18:49

Am Displayanschluß Pin 3 liegen bei meinem Versuchsaufbau -4,8 Volt an =
maximaler Kontrast = der Ausgangsspannung von Pin 17.

Wird nur etwa -3,xx  Volt angezeigt, sollte die gesamte Pixelfläche
sichtbar dunkel werden, dann klappt aber was mit der Ansteuerung nicht.
Vorschlag: Prozessor aus der Fassung nehmen und die Verdrahtung nochmal
durchklingeln.
Gruß  allu
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 29.11.2009 19:21

Alex D. schrieb:
> Am Displayanschluß Pin 3 liegen bei meinem Versuchsaufbau -4,8 Volt an =
> maximaler Kontrast = der Ausgangsspannung von Pin 17.
>
> Wird nur etwa -3,xx  Volt angezeigt, sollte die gesamte Pixelfläche
> sichtbar dunkel werden, dann klappt aber was mit der Ansteuerung nicht.
> Vorschlag: Prozessor aus der Fassung nehmen und die Verdrahtung nochmal
> durchklingeln.
> Gruß  allu

ca. -4,8V (4,9) liegen an (je nach Eingangsspannung)
Hab jetzt 17 mit 3 verbunden!

Jedoch habe ich auf Pin 11 ein LED gelegt und das Blinkt im
Sekundentakt!?
1) Pin 11 ist eigentlich nicht belegt!
2) Egal auf welchen Pin ich das LED stecke es geht an  aus  an ...
????

Lg
Tobias
Autor: Hannes Lux (hannes)
Datum: 29.11.2009 19:24

> Hab jetzt 17 mit 3 verbunden!

Was soll das??

17 ist der Ausgang der Ladungspumpe, da gehört das Poti dran, dessen
Schleifer nach 3 geht.

...
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 29.11.2009 19:28

Hannes Lux schrieb:
>> Hab jetzt 17 mit 3 verbunden!
>
> Was soll das??
>
> 17 ist der Ausgang der Ladungspumpe, da gehört das Poti dran, dessen
> Schleifer nach 3 geht.
>
> ...

Dann ist das Display grau (schwarz)..
Kein Bild =(

Nichts und wie gesagt, ich glaube, dass der AVR ständig neu startet ..
Autor: allu (Gast)
Datum: 29.11.2009 20:02

Versuchsweise den Programmieradapter abziehen. 10 kOhm von Reset nach
+5V gelegt? Welche Pins meinst Du, vom Prozessor oder Display?
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 29.11.2009 20:07

allu schrieb:
> Versuchsweise den Programmieradapter abziehen.
Ich habe keinen PRAdapter im Einsatz (siehe Foto einige Posts vorher)

> 10 kOhm von Reset nach +5V gelegt?
Ja und einen Kond. nach GND

Welche Pins meinst Du, vom Prozessor oder Display?
AVR Pin 11 nach GND und das LED leuchtet (obwohl im Plan nicht
vorgesehen)
Und es blinkt im Sekundentakt ^^ (ca)
Auch wenn ich andere SW auf den Atmega lade startet diese ständig neu...
Ich habe den Bootloader "FastBoot" von Peter Dannegger im Einsatz ..
Kann das der Fehler sein?

Verstehen Sie das?

Lg
Tobias
Autor: allu (Gast)
Datum: 29.11.2009 20:10

Watchdog : Vielleicht WDTON-Fuse gesetzt ?
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 29.11.2009 20:24

Zeigt keine Relevanz !?
Habs ein und ausgeschaltet - 0 Effekt ..
Kann das Display kaputt sein?

Gibts einen Weg zu Überprüfen ob das Display in Ordnung ist?
Das Touch funktioniert glaube ich (hab mal das Messgerät angelegt)

Hintergrundbeleuchtung geht auch (mit Inverter)

Kann der Booloader der Fehler sein?

Lg
Tobias
Autor: Thomas H. (microtom)
Datum: 29.11.2009 23:02

Bei mir hat es zuerst auch nicht funktioniert und ich hatte die gleichen
Ergebnisse (wie ich das interpretiere) wie Du.

Ein zweites (neues) Display hat funktioniert.

Dennoch empfehle ich noch einmal die komplette Verdrahtung und die
Zuordnung der einzelnen Ports passend zum Quellcode zu vergleichen. Am
besten nicht einfach das Hex-File aufspielen sondern wirklich den Source
verwenden und die Ports vergleichen. In den Datenleitungen werden wohl
die wenigsten Fehler passieren, bei den Steuerleitungen ist das schon
eher der Fall.

Weiterhin wichtig (Tipp von Allu):
Keine zu langen Leitungslänge zum Display. Bei Flachbandleitungen
aufpassen, zum testen am besten Display direkt verbinden.

Tipp: Binde eine LED mit in das Programm ein und schau mal ob Dein
Programm überhaupt 'noch funktioniert' mit z.B. einem blinken der LED.

Gruß
Thomas
Autor: Hannes Lux (hannes)
Datum: 29.11.2009 23:07

Schuss ins Blaue:

Abblock-Kondensatoren am AVR und LCD vergessen...

...
Autor: Thomas H. (microtom)
Datum: 30.11.2009 00:03

Noch ein Schuss ins Blaue....

JTAG-FUSE deaktiviert?
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 30.11.2009 08:48

Hannes Lux schrieb:
> Schuss ins Blaue:
>
> Abblock-Kondensatoren am AVR und LCD vergessen...
>
> ...

Thomas H. schrieb
> Noch ein Schuss ins Blaue....
>
> JTAG-FUSE deaktiviert?

Geht das in meine Richtung ?

Lg
Tobias
Autor: Hannes Lux (hannes)
Datum: 30.11.2009 09:26

> Geht das in meine Richtung ?

Ja, zumindest mein "Schuss".

Es hat sich schon oft gezeigt, dass Fehler gesucht wurden, die es gar
nicht gab. Dafür hatte der "Anfänger" Selbstverständlichkeiten
vergessen, über die man nicht mehr spricht, weil sie halt so
selbstverständlich sind, dass sie oft nichtmal auf Schaltplänen zu
finden sind (besonders in Lehrbüchern).

Dazu gehört unter Anderem auch ein Abblock-Kondensator an jedem
Stromversorgungspin eines jeden Digital-ICs gegen seinen Massepin.
Außerdem gehört noch ein Glättungskondensator an AREF, doch der ist hier
nebensächlich, der verursacht keinen Reset.

Die Abblock-Kondensatoren gehören so dicht wie möglich an die
Versorgungspins des ICs und nicht, wie bei Anfängern oft zu sehen ist,
irgendwohin in eine Ecke der Schaltung. Geeignet sind
Keramik-Vielschicht-Kondensatoren von etwa 100 nF. Ich bevorzuge dafür
seit einiger Zeit SMD-Chipkondensatoren 100 nF in Baugröße 0805, die
sind billig und gut, und lassen sich gut an die Pins moderner AVRs
anlöten.

Auch am Steckverbinder zum LCD platziere ich 2 dieser
Stützkondensatoren, einen zwischen Versorgung und Masse, den anderen
zwischen Kontrast und Masse. Ich habe das mal in irgendeinem
LCD-Datenblatt gesehen und mache das inzwischen bei allen LCD-Typen.

...
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 30.11.2009 10:00

Ok, also Kondis habe ich
------------------------------------
*) 47nF zwischen GND & Pin1 (Reset)
*) 100nF zwischen 7&8 (VCC und GND)
*) 100 nF zwischen 20 & 22 (AVCC & GND)
*) 100 nF zwischen 21 & 22 (AREF & GND)

& einen 100K zwischen 1 & GND (Reset)

Lg
Tobias
Autor: Thomas H. (microtom)
Datum: 30.11.2009 13:42

Falls Du den PortD verwendet hast (zur Ansteuerung des Displays) muss
die JTAG-Fuse deaktiviert werden, sonst geht nichts. Hast Du mal
geschaut ob diese deaktiviert ist?

Gruß
Thomas
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 30.11.2009 14:08

Thomas H. schrieb:
> Falls Du den PortD verwendet hast (zur Ansteuerung des Displays) muss
> die JTAG-Fuse deaktiviert werden, sonst geht nichts. Hast Du mal
> geschaut ob diese deaktiviert ist?
>
> Gruß
> Thomas

Low Fuse (0xC1)
11000001

High Fuse (0x99)
10011001

Lockbits (0x3F)
11111111

Ich kann keine Einstellung bezüglich JTAG - Fuse finden (myAVR Workpad).
So viel ich weiß hat der Atmega8 kein JTag!

Lg
Tobias
Autor: Hannes Lux (hannes)
Datum: 30.11.2009 16:16

Den Kondensator am Reset benutze ich nicht mehr, seitdem die AVRs BOD
haben. 100k als Reset-PullUp sind zu hoch, ich weiß nicht, wo Du diese
Dimensionierung her hast, ich hätte damit Angst vor ungewolltem Reset.
Als Reset-PullUp verwende ich 3k9, bei DW-fähigen AVRs 10k.

...
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 30.11.2009 16:19

Hannes Lux schrieb:
> Den Kondensator am Reset benutze ich nicht mehr, seitdem die AVRs BOD
> haben. 100k als Reset-PullUp sind zu hoch, ich weiß nicht, wo Du diese
> Dimensionierung her hast, ich hätte damit Angst vor ungewolltem Reset.
> Als Reset-PullUp verwende ich 3k9, bei DW-fähigen AVRs 10k.
>
> ...

Oh, ja sind auch 10k! habe mich mit der 0 vertippt!
ist der AT8 DW-fähig?
Er restartet wirklich ständig!

Lg
Tobias

Edit:
Ich habe gerade nachgesehen und festgestellt, ich habe folgenden R:
braun schwarz rot gold
Das sind nur 1k glaube ich! Da hat der Con*** Mitarbeiter wohl Mist
gebaut...
Sind 3k wichtig?

Lg
Autor: Hannes Lux (hannes)
Datum: 30.11.2009 16:39

Ich kenne keinen AT8. Falls Du den ATMega8 meinst, nein, der ist nicht
DW-fähig, siehe Datenblatt, der pinkompatible ATMega48/88 dagegen schon.
Außerdem kannst Du mit Deiner Sisy-Hardware DW sowiso nicht nutzen.

Der ATMega8 hat auch kein JTAG, weshalb Du die Einwände betreffs JTAG
getrost ignorieren kannst.

In Deinem Beitrag sehe ich:

> High Fuse (0x99)
> 10011001

Das heißt, Du hast den Watchdog per Hardware aktiviert (WDTON-Fuse
aktiv, also Bit 6 auf 0). Nungut, wenn der Köter scharf ist, dann musst
Du ihn auch (per Programm) regelmäßig (also in der Mainloop) streicheln
bzw. füttern, damit er ruhig bleibt und keinen Reset auslöst. Der
ASM-Befehl dafür ist "WDR".

...
Autor: Hannes Lux (hannes)
Datum: 30.11.2009 16:44

Der Reset-PullUp ist ein Kompromiss zwischen Störschutz (möglichst
niederohmig) und Programmierbarkeit (möglichst wenig Last, also
hochohmig).

Mich stört allerdings, dass wir diesen Spezial-LCD-Thread mit diesem
Anfängerwissen zumüllen, das hat hier nun wirklich nichts zu suchen. Ich
bitte die Moderatoren, hier mal alles das zu löschen, was nicht direkt
mit dem Pollin-LCD zu tun hat.

...
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 30.11.2009 18:43

Hannes Lux schrieb:
> Mich stört allerdings, dass wir diesen Spezial-LCD-Thread mit diesem
> Anfängerwissen zumüllen, das hat hier nun wirklich nichts zu suchen.

Sry, aber jeder fängt mit "Anfängerwissen an!"..

Ich benötige dieses Display für unsere Matura-Arbeit (Abitur) und da ist
mir das schon einigermaßen wichtig!

Ich werde die gewonnenen Informationen anwenden und gebe bescheid!

Lg
Tobias
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 01.12.2009 10:29

Leute ich muss euch DANKEN!
ES FUNKTIONIERT!

Für kommende Personen, welche die selben Probleme wie ich haben,
hier mein Fehler:

Wie schon lange bekannt:
  Hannes Lux schrieb:
> Die Abblock-Kondensatoren gehören so dicht wie möglich an die
> Versorgungspins des ICs und nicht, wie bei Anfängern oft zu sehen ist,
> irgendwohin in eine Ecke der Schaltung. Geeignet sind
> Keramik-Vielschicht-Kondensatoren von etwa 100 nF. Ich bevorzuge dafür
> seit einiger Zeit SMD-Chipkondensatoren 100 nF in Baugröße 0805, die
> sind billig und gut, und lassen sich gut an die Pins moderner AVRs
> anlöten.

Ich habe zwar den Kondensator direkt neben den IC gepinnt, jedoch
habe ich die Beinchen nicht abgeschnitten. Abschneiden -> Bild!

Vielen Dank an die Comunity!

Lg
Tobias
Autor: Michael S. (bugles)
Datum: 01.12.2009 18:15

Hallo,

habe mir das Display auch besorgt. Leider wiess ich nicht wie ich das
ding ioitialisieren soll. Im Datenblatt steht nix und hier im Forum geht
zwar ein code rum aber ich möchte nicht abschreiben.

Kann mir  jemmand verraten wo ihr die initialiserungsroutinen herhabt.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 01.12.2009 18:17

Aus dem Datenblatt des LC7981.
Autor: Michael S. (bugles)
Datum: 01.12.2009 18:27

hmpf danke ..
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 04.12.2009 23:12
Angehängte Dateien:

Habe das Ganze jetzt auf eine Platine gelötet .. nichts!
Ich weiß nicht mehr was ich machen soll!

1. Display ist bereits Schrott!

Ich kann nicht mehr!
100 Std und nur ein kurzer Erfolg!
Ich ahne, dass mein Abitur wohl noch ein Jahr warten muss =(
verzweifel

Ich habe alles so verlötet wie ich es auch gesteckt hatte.
Es hatte gesteckt kurz funktioniert (am nächsten Tag in der früh nicht
mehr)

Habt Ihr noch einen KONSTRUKTIVEN Tip?
                    °°°°°°°°°°°°°°°°°°°°°°°°°°°

Habe alle Kondensatoren richtig gesetzt, einen Pullup Wiederstand, 100K
Kontrast Poti, EL Inverter, aber KEIN BILD.

Kann es sein, dass das Display dem Atmega den Saft klaut?
Wenn ich nämlich LEDS anhänge an die I/O Pins, blinkt es ab und zu,
hänge ich das Display an ... AUS !?

Habt Ihr zu dem simplen Schaltplan noch irgend etwas additional gemacht?

Lg
Tobias Toifl
Autor: Sven B. (svenba)
Datum: 05.12.2009 11:26

Hi Tobias!

Lass dich nicht entmutigen!
Egal, wie gut man lötet, es kann immer mal vorkommen, dass irgendein Pin
beim anlöten nicht weit genug durchgesteckt war und nur ab und zu
kontakt kriegt...
Da bleibt einem nur, Stück für Stück alle Verbindungen von Pin zu Pin
durch zu messen und/oder alle Lötaugen nochmal heiss zu machen und ein
fitzel Lötzinn drauf setzen.
Hast du ne Led zur Anzeige der Spannungsversorgung? Leuchtet die immer?
Ist der uC / das Display tief genug gesteckt?

Habe bei nem anderen Display diese Woche auch drei Tage mit
Umprogrammieren verschenkt, weil die Steckverbinder nur dann Kontakt mit
den Displaybeinchen hatten, wenn ich zum Messen drauf gedrückt hab...

Ruhig bleiben und sukzessiv vorgehen!!
Autor: Michael S. (bugles)
Datum: 06.12.2009 00:00

Display läuft. Jetzt will ich das Touch angehen.

Verstehe ich die Funktion richtig. Ich gebe eine Spannung auf X+ oder X-
und Messe die Spannung an Y+ oder Y-.

Das ganze dann nochmal anders rum.
Autor: Michael S. (bugles)
Datum: 06.12.2009 14:48

Hm hat wer von euchen einen blinkendne Cursor im Bild ? soweit läuft
alles nur ich bekomme den Cursor nicht hin.
Autor: Michael S. (bugles)
Datum: 06.12.2009 14:58

Habs hinbekommen Cp=Vp gesetzt , cp soll wohl nicht kleiner sein sonst
wird der cursor nicht angezeigt
Autor: Wolfgang-G (Gast)
Datum: 06.12.2009 21:23

@Tobias
ich hatte mal folgenden Fehler:
durch häufiges Löten war an einem Lötauge die zum Lötauge führende
Leiterbahn kaum sichtbar gerissen
nur so als Hinweis
MfG
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 07.12.2009 09:59

Wolfgang-G schrieb:
> @Tobias
> ich hatte mal folgenden Fehler:
> durch häufiges Löten war an einem Lötauge die zum Lötauge führende
> Leiterbahn kaum sichtbar gerissen
> nur so als Hinweis
> MfG

Danke für den Tip!
Ich werde mal Lötzinn nachziehen!

Lg
Tobias
Autor: Michael S. (bugles)
Datum: 07.12.2009 19:26

Ich will mein Touch nicht Kalibrieren, es kommt mir alles etwas lang
vor.

Wie realisiert ihr die Umrechnung der gemessenen Spanung an einem Pin
auf einen X oder Y wert?

z.B 1 V gemssen bei 5 V die Anliegen

Y=1V*(80/5)= Zeile 16 ? ????
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 07.12.2009 19:29

Y=(ADC_Wert-Offset_Y)*Verstärkung_Y

Offset_Y und Verstärkung_Y sind die 2 Faktoren die die automatische
Kalibrierung errechnet.
Offset_Y ist die minimale Spannung in der einen Ecke, Verstärkung wird
über die andere Ecke bestimmt:
Verstärkung_Y=gewünschter_max_Wert/(max_ADC_Wert-Offset_Y)
Autor: Micha Joo (michady)
Datum: 08.12.2009 15:47
Angehängte Dateien:

Hallo Leute,
noch mal was anderes zum Display, hat es schon jemand geschafft die
hintergrundbeleuchtung zu aktivieren die mit 100V zu betreiben ist ?
Habe da mal ein
Plan irgend wo gefunden, aber es scheint nicht wirklich zu funktionieren
kommen maximal 23V raus, hat jemand eine Schaltung wie ich aus 5V, 100V
machen kann ?

Gruß Micha
Autor: Sascha Weber (sascha-w)
Datum: 08.12.2009 17:03

zu Testzwecken mit einem Funktiongenerator und nachgeschaltetem Trafo,
als Dauerlösung ist aber ein fertiger EL-Inverter sicher die bessere
Lösung.

was hast du da für einen Trafo, wie hoch ist die Frequenz? Ab ca. 60V
sieht man was leuchten.

Sascha
Autor: Micha Joo (michady)
Datum: 08.12.2009 19:51

da müsste ich morgen erst mal messen wie hoch die Frequenz war, und was
ich für ein Trafo verwendet habe.
woher bekomme ich so fertige EL-Inverter ?
sind diese günstig ? dann würde sich das hier erübrigt haben mit den
selberbau.

MFG
Autor: Micha Joo (michady)
Datum: 08.12.2009 20:00

ach, schon gefunden, kann man kaufen.
alles klar, danke.

mfg
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 08.12.2009 20:43

Micha Dy schrieb:
> Hallo Leute,
> noch mal was anderes zum Display, hat es schon jemand geschafft die
> hintergrundbeleuchtung zu aktivieren die mit 100V zu betreiben ist ?
> Habe da mal ein
> Plan irgend wo gefunden, aber es scheint nicht wirklich zu funktionieren
> kommen maximal 23V raus, hat jemand eine Schaltung wie ich aus 5V, 100V
> machen kann ?
>
> Gruß Micha

Ich habe einen 5V / 100V El inverter vom Conr** um ca 6€ ...
funktioniert!

Andere Frage, was haben die Pins 3-18 für Werte ( Volt ) ?
Mein Display zeigt nichts an (hat es aber schon mal auf einer
Testplatine).

Sind folgende Werte normal bzw. in Ordnung: (?)
( Die Folgende Tabelle entspricht der Pinbelegung des DG-16080 )

OHNE Display ( dh. direkt vom Atmega8 )
**********************************************

x  (Gnd - x)    (Vcc - x)
-----------------------------
2:   5,00V       5,00V          Power Supply For Logic Circuit
3:   4,94V       0,00V          Power Supply For LCD
4:   4,99V       0,00V          H->Instruction L->Data
5:   4,99V       0,00V          H: Data Read, L: Data Write
6:   2,14V       2,85V          Enable (H/L)
##### DATA ###################
7:   4,97V       0,00V          Data Bus Line
8:   4,97V       0,00V          Data Bus Line
9:   0,00V       0,00V          Data Bus Line
10:  4,97V       0,00V          Data Bus Line
11:  0,00V       0,00V          Data Bus Line
12:  0,00V       0,14V          Data Bus Line
13:  0,00V       0,14V          Data Bus Line
14:  4,97V       0,00V          Data Bus Line
##############################
15:  0,00V       4,99V          Chip Enable Active "L"
16:  4,99V       0,00V          Reset Active "L"
17:  4,99V       0,00V          Negative Voltage Output (-10V)
18:  0,00V       0,00V          Display Off (H)



MIT Display ( dh. direkt vom Display )
**********************************************

x  (Gnd - x)    (Vcc - x)
-----------------------------
2:   4,89V       5,00V          Power Supply For Logic Circuit
3:   -0,6V       4,24V          Power Supply For LCD
4:   0,00V       4,87V          H->Instruction L->Data
5:   0,00V       4,87V          H: Data Read, L: Data Write
6:   0,00V       4,80V          Enable (H/L)
##### DATA ###################
7:   0,03V       4,61V          Data Bus Line
8:   0,04V       4,57V          Data Bus Line
9:   0,04V       4,55V          Data Bus Line
10:  0,03V       4,55V          Data Bus Line
11:  0,03V       4,55V          Data Bus Line
12:  0,03V       4,55V          Data Bus Line
13:  0,03V       4,55V          Data Bus Line
14:  0,03V       4,60V          Data Bus Line
##############################
15:  0,01V       4,80V          Chip Enable Active "L"
16:  3,65V       1,20V          Reset Active "L"
17:  -0,8V       5,73V          Negative Voltage Output (-10V)
18:  4,85V       0,00V          Display Off (H)


(Agenda: Gnd - x | x=2 .... GND zu Pin 2 liefert ... V )
Besonders komisch kommt mir der "Enable" und der "Negative Voltage
Output" vor.

Lg
Tobias
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 08.12.2009 21:24
Angehängte Dateien:

Edit: Das Problem habe ich lokalisiert: Pin 3 war mit 10K gegen Vcc geschaltet.

Jedoch zeigt das Display jetzt nur Kastln! ?? (siehe Bild) oder zeigt
einen Balken der von oben nach unten fährt...

Lg
Tobias
Autor: Micha Joo (michady)
Datum: 09.12.2009 08:32

Hi Tobias,
das Problem mit den unterschiedlichen Fehlden hatte ich auch am Anfang
schon ein mal, aber ich hatte zwei GLCDs zum testen, entweder es war das
wo zwei  anschlüsse vertauscht waren, oder das was defekt war :|, kann
ich leider nicht mehr genau sagen.

Gruß Micha
Autor: Tiny 80 (linux_80)
Datum: 09.12.2009 08:38

Wenn dieser Balken durchläuft, dann ist der Kontroller am LCD noch nicht
initialisiert, also nur an die Stromversorgung angeschlossen.
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 09.12.2009 09:59

Tiny 80 schrieb:
> Wenn dieser Balken durchläuft, dann ist der Kontroller am LCD noch nicht
> initialisiert, also nur an die Stromversorgung angeschlossen.

Das wars !!!! Enable oder CS hatte keinen Kontakt ... ES geht!! DANKE
LEUTE!!!!
Meiner Matura steht nichts im Wege!

Lg
Tobias
Autor: Thomas Forster (igel)
Datum: 09.12.2009 20:46

Bisher habe ich bei der LCD-Initialisierung immer die Reset-Leitung für
255 Takte auf Low gelegt, um die Reset-Prozedur wie im Datenblatt
beschrieben auch einzuhalten.

Da ich Datenleitungen und am Atmega Portpins sparen will, möchte ich die
Reset-Leitung jetzt direkt an +5V hängen. Ich habe das jetzt eine Weile
ausprobiert und das Display startet auch ohne die Reset-Prozedur
problemlos.
Spannungsversorgung erfolgt derzeit über den USB-prog, soll aber später
über ein eigenes 230V-Netzteil erfogen.


Wie sind eure Erfahrungen? Meint ihr ich kann die Reset-Prozedur sparen
und die Reset-Leitung an die Versorgungsspannung hängen?


Gruß
Thomas
Autor: Tiny 80 (linux_80)
Datum: 10.12.2009 18:43

@Thomas
Wenn das LCD mal aus dem Takt läuft, muss dann die ganze Schaltung
Stromlos gemacht werden damit es wieder läuft.
Evtl. auch mit an den Reset-Schalter vom µC hängen (ausprobieren wegen
ISP), dann muss die Stromversorgung nicht komplett dekativiert werden.
Autor: Thomas Forster (igel)
Datum: 10.12.2009 19:34

Ok, Reset-Pin des uC ist sinnvoller als +5V.

Wenn das Display im laufenden Betrieb abschmiert, müsste ja dann im
Programm eine neue Display-Initialisierung vorgesehen werden.

Macht man das so? Etwa bei Schaltungen im Dauerbetrieb das Display alle
paar Stunden neu intialisieren?

Thomas
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 13.12.2009 14:30
Angehängte Dateien:

Hey Leute ich habe ein kleines Problem!

Wenn ich einen Pixel setze, dann setzt das Display (beim Setzen eines
zweiten Pixel) 8px neben das erste auch wieder einen Pixel. Das liefert
mir einen unangenehmen "Schatten ^^" ...

Ich verwende LCD7981_Simple von Benedikt K., trotzdem anbei das
vermutlich verantwortliche C-File!

Danke
Lg
Tobias
Autor: Tobias Toifl (Firma: codes4web) (roverfreak)
Datum: 15.12.2009 00:04

Habe es hinbekommen !!!
void lcd_setpixel(unsigned char x, unsigned char y)
{
  if ((x>=160)||(y>=80))
    return;
  lcd_setadress(x/8,y);
  lcd_writecom(0x0F);
  lcd_writedat(x&7);

  lcd_writecom(0x0F); //<== Mit dieser Zeile funktioniert es!
}

Lg
Tobias
Autor: Valentin Buck (nitnelav)
Datum: 18.12.2009 22:03

Kann man eigentlich den Touchscreen auch ohne Display nutzen?
Also ohne das Display mit Strom zu versorgen?
mit freundlichen Grüßen,
Valentin
Autor: R. Max (rmax)
Datum: 18.12.2009 22:07

Ja, das Touchscreen ist ja komplett passiv.
Autor: K. J. (theborg0815) Benutzerseite
Datum: 25.12.2009 09:59

Hm ich versuche grade für PIC-ASM ne lib für textmode zu schreiben aber
irgendwie verstehen ich das noch nicht so ganz.

Die init scheint zu gehen jedenfalls wird wilder Zeichensalat angezeigt.

Nur halt das setzen von Zeichen nicht.

Bin davon ausgegangen das man dazu folgendes sendet:

Command Cursor Low: 0x0A
Daten:      ADRL
Command Cursor High:0x0B
Daten:      ADRH
Daten:      zu schreibendes zeichen

oder hab ich da nen Denkfehler ?
Autor: Tiny 80 (linux_80)
Datum: 25.12.2009 11:02

Hi,

die Display-Daten selber müssen danach ins Register 0x0c
so wie bei den Adressdaten auch.
Autor: K. J. (theborg0815) Benutzerseite
Datum: 25.12.2009 11:36

Danke das hat geklapt !!!

Nur scheint es im arsch zu sein genau in der Mitte hab ich nen 2px
breiten streifen nur das merkwürdige ist das da nicht was fehlt sondern
der text um die 2px verschoben ist.
Autor: Micha Joo (michady)
Datum: 25.12.2009 11:55

Hallo Leute,
ich habe die Bascom Version von Allu drauf, die Tuch function fusioniert
in den sinne schon, aber ich kann die Eingänge zur Folie stecken wie ich
will, wen ich dem Menü bin past keine stelle zum Tuch mit dem Menü
überein, er reagiert immer irgendwo mitten drin.

Bei der kalibrierung zeigt er Kx und Ky 0 Fehler an, was mache ich
verkehrt oder liegt das am Programm ?

frohes Fest noch alle.

Gruß Micha
Autor: Meik Dittmann (meik)
Datum: 25.12.2009 12:21

K. J. schrieb:
> ......Nur scheint es im arsch zu sein genau in der Mitte hab ich nen 2px
> breiten streifen nur das merkwürdige ist das da nicht was fehlt sondern
> der text um die 2px verschoben ist.

Dann passt die Angabe von Zeichen pro Zeile nicht zur Zeichenbreite.
Kontrollier das noch mal.

Meik
Autor: Alex D. (allu)
Datum: 25.12.2009 13:32

Hallo Micha,

zum Touchanschluss - das Display liegt mit der Anzeigeseite vor Dir, die
Displayanschlusspins sind unten, das Folienkabel ist rechts.
Die Belegung des Folienkabels zum ATMega 8 von oben nach unten:

Y-  oben = Pin 23
Y+       = Pin 24
X+       = Pin 25
X- unten = Pin 26

Wenn die Kalibrierwerte zu weit weg liegen, werden Defaultwerte geladen.
Mit diesen funktionieren meine Displays(Touchs) auch ohne Kalibrierung.
Das Touchprogramm erzeugt 184 (23*8) kleine Tasten, deshalb kann man
auch ohne Kalibrierung den Touch bedienen. Die Grenzen der Tasten
stimmen dann halt nicht so genau mit den dargestellten Zeichen überein.

Das von Dir beschriebene Problem hatte ich auch mal. Bei mir hatte ein
Kontakt an meiner selbstgebastelten Foliensteckverbindung keine
Verbindung.
Übrigens gehe ich erstmal vorsichtig mit einem Radiergummi über den
Folienstecker, um die Kontakte zu reinigen.

Mein Vorschlag: 1.) Sicherstellen, dass der Touch wie oben beschrieben
angeschlossen ist. 2.) Zieh den Mega8 und messe mit einem Ohmmeter die
Verbindungen zum Touch. Ohmmeter mit dem einen Anschluss an den
Mega8-Pin(23bis26) und mit dem anderen an die Kontaktfläche auf(!) dem
Folienleiter(!). So lässt sich feststellen, ob der Folienleiter wirklich
eine Verbindung hat.

Wenn das alles in Ordnung ist und es immer noch nicht funktioniert,
vermute ich das dein Touch defekt ist.

Viele Grüße und allen ein frohes Weihnachtsfest
Allu
Autor: K. J. (theborg0815) Benutzerseite
Datum: 25.12.2009 19:31
Angehängte Dateien:

@meik

Danke hat geklappt hab mich wohl verzählt gehabt.

Im Anhang ist die Ansteuerung ist recht simpel gehalten läuft aber sehr
gut inkl. Test Programm und Projektfiles für PIKLAB sollte aber auch mit
mpasm funktionieren
Autor: Micha Joo (michady)
Datum: 25.12.2009 19:39

Hallo Allu,
so habe nun noch einmal alles durchgemessen, es geht durch bis hin zum
Display 100 Ohm, auch der volle durchgang ist OK.

Habe ja noch ein Display zu liegen gehabt und schnell mal um gelötet,
aber es ist das gleiche Problem, das kann doch nicht sein oder ? Nach
deiner Stckvariante vom Tuch, komme ich nur in Tuch Werte anzeigen rein
und zum Menü wieder raus was anderes funktioniert überhaupt nicht.

Vorher mit dem anderen Display hatte ich es so das es Spiegelverkehrt
90° nach rechts verdreht war, bin aber in alle Menüs rein und wieder
raus gekommen.
Hm, verstehe ich nicht.

Gruß micha
Autor: Alex D. (allu)
Datum: 25.12.2009 20:10

Hallo Micha,

wieso 100 Ohm?

Das Programm läuft auf der Schaltung von Benedikt und ist dafür
ausgelegt, dass der Touch ohne Widerstände am Mega8 angeschlossen wird.
Widerstände könnten das Problem eventuell verursachen.

Zum Vergleich im Menue Touchtest ergibt bei meinem Touch:
Ecke links oben: im Raster Y=0, X=0, Fein Y=44, X=44
Ecke rechts oben: im Raster Y=7, X=22, Fein Y=214, X=230

Gruß  allu
Autor: allu (Gast)
Datum: 25.12.2009 20:19

Sorry, natürlich: Ecke rechts unten ....
Autor: Micha Joo (michady)
Datum: 26.12.2009 12:25

Hallo Allu,
habe die widerstände entfernt, es geht nun, schön :)

Weiß auch nicht irgendwie muss ich das übersehen haben das da keine dran
müssen.

Danke noch mal.

Gruß micha
Autor: Micha Joo (michady)
Datum: 26.12.2009 14:57

Hallo Allu,
kannst du mir noch etwas weiter helfen mit der Programmierung ?
ich komme nicht wirklich so mit den Gosub routinen zu recht.
Habe da mir ein kleines Test Button eingerichtet so wie ich gedacht habe
scheint es aber nicht zu wollen er geht nicht in die unterroutine rein,
mit solchen gosub Anweisungen habe ich noch nicht gearbeitet, was mache
ich da verkehrt.
So sieht die kleine Test Variante aus dem Code aus.


Es Solte über TEST ablaufen.

Gruß micha

######################################
_kalibrieren Alias 1 + 48 + 128
_texteingabe Alias 2 + 48 + 128
_delete Alias 3 + 48 + 128
_touch_werte_anzeigen Alias 4 + 48 + 128
_menue Alias 5 + 48 + 128
_test Alias 6 + 48 + 128
_zeichensatz_anzeigen Alias 7 + 48 + 128

Gosub Auswahl

Do

If Touch_meldet = Ja Then
   Touch_meldet = Erledigt

   Select Case F_taste
      Case _kalibrieren : Gosub Touch_kalibrieren
      Case _texteingabe : Gosub Zeicheneingabe
      Case _touch_werte_anzeigen : Gosub Touch_werte_anzeigen
      Case _test : Gosub Test
      Case _zeichensatz_anzeigen : Gosub Zeichensatz_anzeigen
   End Select

End If
Loop

####### weiter im Menü ############

Locate_zeile = 51
Locate_spalte = 0
'Muster = "01234567890123456789012"
Lcd_string = "  test"
Lcd_form_6 = "  (6)"
Gosub Lcd_write_string

########### und zum sprung ###########

Test:

Locate_zeile = 41
Locate_spalte = 0
Lcd_string = "  TEST  "
Lcd_form_6 = "(  5   )"
Gosub Lcd_write_string

Return
Autor: Hannes Lux (hannes)
Datum: 26.12.2009 17:51

> ich komme nicht wirklich so mit den Gosub routinen zu recht.

Warum Gosub? Bascom kann (wie auch QBASIC und Visual-BASIC) echte SUBs
und Funktionen verwalten. Deklariere einfach ordentliche SUBs und rufe
sie mit ihrem Namen auf. Gosub war vorgestern.

...
Autor: Alex D. (allu)
Datum: 26.12.2009 18:29

Hallo Micha,

schau mal unter:   Beitrag "Pollin 16080 Touch mit ATMEGA32 und BASCOM"
Dort findest Du meine Antwort zu Deiner Frage.

Gruß  Allu
Autor: ASM-Freak (Gast)
Datum: 26.12.2009 18:38

>Gosub war vorgestern

wie kommst du darauf ?
Irq-Routinen werden mit Gosub aufgerufen und in Assembler werden
Unterroutinen mit rjmp (Gosub / Return) aufgerufen.
SUBs machen nur Sinn, wenn Parameter übergeben werden sollen.
Ausserdem verbrauchen sie mehr Resourcen.
Autor: Hannes Lux (hannes)
Datum: 26.12.2009 19:14

ASM-Freak schrieb:
>>Gosub war vorgestern
>
> wie kommst du darauf ?

Weil aktuelle BASIC-Dialekte das Deklarieren von Funktionen und SUBs
ermöglichen, die es gestatten, das Programm besser (übersichtlicher) zu
strukturieren.

> Irq-Routinen werden mit Gosub aufgerufen

Na ich gehe davon aus, dass in Hochsprachen Interrupt-Service-Routinen
auf MC-Ebene aufgerufen werden, dazu wird wohl kein
Hochsprachenkonstrukt wie die BASIC-Anweisung "gosub" benutzt.

> und in Assembler werden
> Unterroutinen mit rjmp (Gosub / Return) aufgerufen.

Falsch, rjmp verwaltet keine Rücksprungadresse, da müsste man schon
rcall/call nehmen. Und nicht alles, was sich die Rücksprungadresse auf
den Stack legt, ist automatisch die BASIC-Anweisung "gosub". Im Übrigen
glaube ich nicht, dass Du mich über AVR-Assembler belehren musst.

> SUBs machen nur Sinn, wenn Parameter übergeben werden sollen.

Wieder falsch, bei Parameterübergabe und Rückgabe nimmt man eine
Funktion.

> Ausserdem verbrauchen sie mehr Resourcen.

Das ist jawohl überhaupt kein Argument. Wenn es um die Ressourcen geht,
dann programmiert man in Assembler. Wenn aber schon eine Hochsprache
benutzt wird, dann kann man sich auch Mühe geben, den Quelltext halbwegs
vernünftig zu strukturieren. ASM-Tipps sind hier ja wohl nicht gefragt,
sonst würde man das nicht in Bascom programmieren.

Und nein, ich bin kein Bascom-Freak, ich schreibe fast alle meiner
AVR-Programme in Assembler (und natürlich mit Interrupts). Allerdings
habe ich mich auch mit Bascom beschäftigt, weil ich ein paar angefangene
Bascom-Programme eines Freundes abgeändert, verbessert bzw.
fertiggestellt habe oder ihm zumindest andere (effizientere)
Problemlösungen gezeigt habe. BASIC an sich benutze ich seit über 20
Jahren, für AVRs halte ich es (Bascom) allerdings für nicht oder nur
bedingt brauchbar.

Achja, suche Dir einen anderen Nick, "ASM-Freak" passt wohl (noch) nicht
so recht.

...
Autor: Micha Joo (michady)
Datum: 27.12.2009 12:34

Hallo Leute,
bitte kein Stress wegen Gosub rutinen, ich hatte mich wohl etwas
verkehrt niedergeschrieben, ich komme schon mit den Gosub rotinen bisher
zurecht, aber hier beim Touch kann ich die Verknüpfungen nicht richtig
nachvollziehen das ist mein Problem, deswegen habe ich noch mal ein
kleines Stuck von meinen hinzugefügten Code rein gestellt.

Also jeder macht es etwas anders in der Programmierung und daher kommt
man nicht immer gleich dahinter, egal.

Danke für den Link Allu werde ihn mal durchschauen.

Gruß Micha
Autor: Sebastian R. (sebr)
Datum: 06.01.2010 00:02

Hat schon jemand ne Eagle Lib für das Display erstellt?
Autor: Mga (Gast)
Datum: 06.01.2010 19:05

Hallo,
ich habe gerade versucht das oben genannte Display mit einem Atmega8 mit
Assembler anzusprechen. So nun habe ich gedacht die Intialisierung würde
funktionieren, jedoch sind mir nun zweifel gekommen da ich nichts auf
dem display darstellen kann. Nun müsste ich wissen wie ich festellen
kann das die Intialisierung richtig abgelaufen ist.

Also ich habe das Display im Grafikmodus intialisiert wie kann ich
festellen ob dies erfolgreich war, derzeit habe ich einfach ein
schwaches Bild bei diesem viele Pixel an sind.
Autor: Sascha Weber (sascha-w)
Datum: 06.01.2010 21:49
Angehängte Dateien:

ja so sieht das aus wenn der Speicher noch nicht gelöscht wurde.

Ich hab mal paar Routinen angehangen zum Init, CLS und Pixel
setzen/löschen

Sascha
Autor: Frank (Gast)
Datum: 12.01.2010 17:32

Hallo,
habe mir auch so ein Touchdisplay zugelegt und mit der Software von
Benedikt ( danke dafür echt klasse Sache ) zum laufen gebracht.

Jetzt möchte ich gerne Buttons auf dem Touchdisplay anzeigen und dann
damit ein Menü erstellen mit dem ich einfach Ausgänge anwählen und somit
schalten kann.

Hat dafür jemand den kompletten code in c mit Ansteuerung vom Touch?
Also zu den Hexfiles, die hier im Forum vorgestellt wurden die
dazugehörigen programteile mein ich jetzt.

Schon mal Danke im Vorraus und echt super Forum hier. Werde mir auch
sofort einen Account erstellen ;-)
Autor: cn (Gast)
Datum: 13.01.2010 01:35

Frank, warte einfach mal ab, es wird schon noch einiges kommen, bzw.
solltest du alles, was du suchst auch schon sonstwo finden, und musst es
nur auf dein Projekt anpassen. Aber erwarte nicht, dass jemand für dich
fertige Sachen progt :)

Mal ne andere Frage: Bin seit 2 Stunden am tüfteln und komm nicht voran.
Ich wollts mal nach Datenblatt machen und nach dem Schreiben das
Busy-Flag abfragen. Aber wie ich mich auch drehe und wende, es will
nicht. Hat das schon mal jemand versucht und hats hinbekommen?

Das einzige was ich hierzu im Netz fand war folgendes:
http://mexlewiki.hs-heilbronn.de/UserFiles/File/Do...

ZITAT

/**
* Waits for the busy flag to clear, which should take
* around the maximum time for an instruction to complete.
* Note, LCD operation is kind of sensitive to this configuration. If the
delay
* is too fast, the LCD will miss some pixels when it is really put
through
* a stress test. This dela time seems to work great.
*/
void lcd_wait_busy(void)
{
_delay_us(3);
}
/**
* Older implementation of lcd_wait_busy() that checked the busy flag in
* hardware. I found that it always hanged after plotting a byte to the
screen,
* so I took up the delay version above.
*
void lcd_wait_busy(void) {
(...)
}*/

ZITAT ENDE

Also ist daran schon mal jemand gescheitert.

Mein Code dazu:

.def temp=r18
.equ LCD_DATA=PortD
.equ LCD_CTRL=PortB
.equ LCD_RS=0
.equ LCD_RW=1

(...)

LCD_BUSY:
 ldi temp, 0x00
 out LCD_DATA, temp   ; sicherstellen, dass alles 0 ist
 out DDRD, temp       ; Eingang
 out LCD_DATA, temp   ; keine Pullups
 sbi LCD_CTRL, LCD_RW ; lesen
 sbi LCD_CTRL, LCD_RS ; Instruction
LCD_BUSY_LOOP:
 rcall LCD_ENABLE
 sbic PIND,7          ; da liegt laut Datenblatt das Busy-Flag (busy=1)
 rjmp LCD_BUSY_LOOP
 ldi temp, 0xFF
 out DDRD, temp      ; wieder Ausgang
 ret
Autor: cn (Gast)
Datum: 13.01.2010 10:43

achso: wenn ich

 sbic PIND,7
 rjmp LCD_BUSY_LOOP

auskommentiere, läuft alles wunderbar. also scheint das display das
busy-flag nicht zu resetten, oder wie?
Autor: Alex D. (allu)
Datum: 13.01.2010 11:15

> rcall LCD_ENABLE
> sbic PIND,7          ; da liegt laut Datenblatt das Busy-Flag (busy=1)

Du kannst den Datenbus nur lesen, wenn Enable = 1 ist. Falls das bei
Deinen Programm nicht so ist, probier mal folgenden Ablauf:

Enable = 1
Warten bis Datenbus steht
sbic PIND,7
..
..
Enable = 0

Gruß
Allu
Autor: Sebastian M. (noobuntu)
Datum: 13.01.2010 13:43

bei mir hat das mit dem Auslesen der Busyflag auch nicht geklappt.
Weshalb ich einfach einen kleinen delay (ich glaub um die 10 uS)
eingebaut. Damit hat dann alles einwandfrei funktioniert.
Autor: A.Drei (allu) (Gast)
Datum: 13.01.2010 14:16
Angehängte Dateien:

Bei mir geht folgender Zauberspruch:

'---------------------------------------------------------------
' Ist das Display für einen neuen Befehl und Datenwert bereit ?
'---------------------------------------------------------------
      rjmp Write_2_Byte_20

Write_2_byte_10:
      dec   TEMP_1          ' Timeout, wenn Display defekt oder fehlt
      breq  Write_2_byte_98

      cbi  Control_Bus_e,E                        'Enable-Puls beenden

      nop
      nop
      nop                                                'warten  für
      nop                                                ' E passiv
      nop
      Nop
      nop

Write_2_byte_20:
      sbi  Control_Bus_e,E                     'Enable-Puls beginnt
      nop                                                   'warten
      nop                                                   'warten
      nop                                                   'warten
      nop                                                   'warten
      nop
      nop

      sbic Daten_Bus_in, Bussy                           'Fertisch ?
      rjmp Write_2_Byte_10

      nop
      cbi  Control_Bus_e,E                      'Enable-Puls beenden

'---------------------------------------------------------------
' Mit "Befehl" im Grafikcontroller das gewünschte Register wählen
'---------------------------------------------------------------

      cbi  Control_Bus_rw,RW                 'Write Signal aktivieren
      nop
         ... usw ...
Autor: Sascha Weber (sascha-w)
Datum: 13.01.2010 17:05

das EN kann während der gesamten Wartezeit stehen bleiben, die
Busyausgabe ist statisch. RW und RS muss auch H sein.

Sascha
Autor: wulf (Gast)
Datum: 14.01.2010 14:04

gibt es für das display mittlerweile C-Code für den ATmega32 bei dem die
komplette ansteuerung für das Display und das Touch vorhanden sind? am
besten wär ein Beispielprogramm... :)
Autor: Matze G. (maroni666)
Datum: 18.01.2010 21:35

Hallo zusammen,

ich habe ein Problem mit meinem Touch und zwar habe ich die Atmega8
Version von Benedikt.

Wenn ich allerdings versuche mein Touch zu kalibrieren passiert nichts.

Nur wenn ich gleichzeitig (bei upper left) links oben und unten drücke
springt er weiter.
Bei (lower right) kann ich dann oben und unten rechts gleichzeitig
drücken.
Dann bricht er ab mit der Meldung Try again.

Kann mir vielleicht jemand von Euch sagen was ich falsch mache bzw. was
ich noch versuchen kann oder kann es sein das mein Touch wirklich
hinüber ist. Ich habe das 2te. Touch auf dem Bild.

Gruß

Maroni
Autor: GefährlichesHalbwissen (Gast)
Datum: 18.01.2010 21:41

... ... schrieb:
> Aber was kann st du bei 7€ schon verlieren...

7 Euro
Autor: Matze G. (maroni666)
Datum: 18.01.2010 22:06

Danke für die Antwort.

Ich glaube nicht das mein zweites Touch auch nicht funktioniert. Bringt
nämlich den selben Fehler, vielleicht hat ja jemand noch einen Vorschlag
was ich kontrollieren kann bzw. eine Idee wodran dieser Fehler liegt.
Autor: Matze G. (maroni666)
Datum: 19.01.2010 17:40

Alsoich habe es wie folgt angeschlossen, aber bei beiden Displays
passiert der selber Fehler:

Y-  oben = Pin 23
Y+       = Pin 24
X+       = Pin 25
X- unten = Pin 26


Bin für fast jeden Tipp dankbar :)

Gruß

Matze
Autor: A.Drei (allu) (Gast)
Datum: 19.01.2010 19:51
Angehängte Dateien:

Falls Du mal das angehängte Programm probieren willst. Es sollte sofort
mit dem "Touchtest" beginnen. Angezeigte Messwerte (= Fein Y/X), in
etwa:

oben links die 0 -> 50/50   oben rechts die 2 -> 50/230
unten links die 7 -> 210/50 unten rechts das ß -> 210/230

Gruß  allu
Autor: Matze G. (maroni666)
Datum: 20.01.2010 21:27

Danke allu jetzt funzt es.

Es geht zwar jetzt aber es reagiert sehr sehr träge egal mit welchem
prog. kann man da noch etwas ändern? Wenn ja wie?

gruß matze
Autor: allu (Gast)
Datum: 20.01.2010 22:08

Wie hoch ist die Taktfrequenz? 8Mhz sollten es schon sein. Von "Natur"
aus steht der ATMega8 - meines Wissens - auf 1 Mhz. Das Programm ist auf
8 Mhz eingestellt.

Gruß  allu
Autor: Matze G. (maroni666)
Datum: 21.01.2010 22:25

Danke Allu,

hab die fuses richtig gesetzt und schon läuft es flüssig. Danke
Autor: kyrel (Gast)
Datum: 27.01.2010 19:04

Hallo zusammen,

heute ich mein Exemplar eingetrudelt und nach ersten schnellen Tests
meine ich, dass auch dieses in Ordnung zu sein scheint. Aber eine Frage
habe ich trotzdem, rein optischer Natur :) -> Auf dem Display befindet
sich eine Folie, die irgendwie mitgenommen aussieht, handelt sich bei
der um die übliche Display-Schutzfolie, die entfernt werden kann, oder
dient diese sogar der Touchfolie ? Die vermeindliche Folie hat paar
Kratzer und ist an einer Stelle nicht richtig fest.

Was meint ihr, kann ich diese ruhigen Gewissen abnehmen ?

Danke und einen schönen abend weiterhin

kyrel
Autor: Matze (Gast)
Datum: 27.01.2010 20:29

Hi,

Also bei mir war das nur ne Schutzfolie ohne Funktion. Wenn das bei Dir
auch der Fall sein sollte dann weg damit bzw. dann wenn Du das Display
schon ohne Schutzfolie betreiben willst.

Gruß  Matze
Autor: Sven B. (Gast)
Datum: 02.02.2010 08:07

Hi Leute!
Wenn ich erreichen möchte, dass die Touch-Asuwertung nur anspringt, wenn
gedrückt wurde, welchen Interrupt brauch ich da?

Hat evtl jemand nen Codeschnipsel in Assembler für mich?
Autor: gerd (Gast)
Datum: 02.02.2010 08:54

> Wenn ich erreichen möchte, dass die Touch-Asuwertung nur anspringt, wenn
> gedrückt wurde, welchen Interrupt brauch ich da?

Folge mal den Links aus diesem Beitrag von weiter oben:

Beitrag "Display mit Touchscreen bei Pollin?"

In der dort verlinkten Atmel Application Note steht was über die
Anwendung der Interrupts.

> Hat evtl jemand nen Codeschnipsel in Assembler für mich?

Der o.g. Artikel bezieht sich auf ein Beispielprogramm, welches
ebenfalls auf der Atmel Seite zu bekommen ist. Es ist zwar in C, aber
das geht von der Systematik her in die Richtung, die du angefragt hast.
Da ich schon die Frage danach antizipieren kann, hier auch gleich der
direkte Download-Link:

http://www.atmel.com/dyn/resources/prod_documents/AVR341.zip

BTW: Der C-Source ist für einen IAR Compiler mit entsprechenden
Headerfiles.. d.h. du wirst das nicht ohne Portierung durch den avr-gcc
jagen können.

Viel Spass!

- gerd
Autor: Sascha Weber (sascha-w)
Datum: 02.02.2010 18:32

@ Sven B.
> Wenn ich erreichen möchte, dass die Touch-Asuwertung nur anspringt, wenn
> gedrückt wurde, welchen Interrupt brauch ich da?
lege die eine Folie auf Low und einen Anschluss der anderen Folie mit
Pullup auf Eingang, wenn du Zeit hast dann polle den PIN der
entsprechenen Portleitung oder verwende ein Pinchange-INT

> Hat evtl jemand nen Codeschnipsel in Assembler für mich?
hast du die Auswertung schon in ASM umgesetzt? - habe hier eine
ASM-Lösung die ich auf einem tiny44 am laufen habe.

Sascha
Autor: Thomas Forster (igel)
Datum: 02.02.2010 20:57
Angehängte Dateien:

> Hat evtl jemand nen Codeschnipsel in Assembler für mich?

Hier, bitte.
Ist aber ein größeres Schnipsel, für einen Mega48.

Die Pinbelegung meines Touch ist von oben nach unten:
ADC3
ADC4
ADC5
ADC2


Thomas
Autor: Thomas Forster (igel)
Datum: 02.02.2010 21:00

Ups, ist zweimal der gleiche Code. Bitte den zweiten (oder wahlweise den
ersten) ignorieren.

Thomas
Autor: Sven B. (Gast)
Datum: 03.02.2010 14:10

Danke Leute!

Hab vor, die Abfrage durch PinChangeInt zu realisieren.
Ist nur das erste Mal, dass ich INterrupts verwende... wachse mit deinem
Projekt...
@Sascha:
Ja, Auswertung läuft soweit, nur halt bei jedem Programm durchlauf und
noch nicht bei höherem Takt, wird wohl am ADC liegen...
Autor: Andi (Gast)
Datum: 05.02.2010 20:05

Hallo,

Habe auch das Display und komme einfach mit dem Touch nicht zurecht.

Ich habe mal folgendes gemacht.

oben nach unten (Display connector unten Touch conector rechts)

Pin1 = Y-
Pin2 = y+
Pin3 = x+
Pin4 = x-

Ich hoffe das Stimmt

Messung mit Ohmmeter Pin1+2 und Pin 3+ Pin4 einmal 490Ohm und einmal 590
OHM.

Das sollte stimmen.

nun zum ADC

PIN1 = ADC3
PIN2 = ADC2
PIN3 = ADC1
PIN4 = ADC0

zum einlesen des X Wertes setzte ich PIN1 Ausgang und low PIN2 Ausgang
und High.
Dann lese ich über ADC0 ein.
Der ADC wert ist immer 460+-60 ob touch dran oder nicht.

habe den code aus RN Wissen.

channel wäre hier 0.



uint16_t readADC(uint8_t channel) {
  uint8_t i;
  uint16_t result = 0;

  // Den ADC aktivieren und Teilungsfaktor auf 64 stellen
  ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1);

  // Kanal des Multiplexers waehlen
  // Interne Referenzspannung verwenden (also 2,56 V)
  ADMUX = channel | (1<<REFS1) | (1<<REFS0);

  // Den ADC initialisieren und einen sog. Dummyreadout machen
  ADCSRA |= (1<<ADSC);
  while(ADCSRA & (1<<ADSC));

  // Jetzt 3x die analoge Spannung and Kanal channel auslesen
  // und dann Durchschnittswert ausrechnen.
  for(i=0; i<3; i++) {
    // Eine Wandlung
    ADCSRA |= (1<<ADSC);
    // Auf Ergebnis warten...
    while(ADCSRA & (1<<ADSC));

    result += ADCW;
  }

  // ADC wieder deaktivieren
  ADCSRA &= ~(1<<ADEN);

  result /= 3;

  return result;
}

int main(void) {
  uint16_t result = readADC(0);  //Auslesen der analogen Spannungen an
Pin 0,
          // also ADC0. In result steht das Ergebnis.
  return 0;
}

Bitte um Hilfe.

Besten Dank
Autor: Sascha Weber (sascha-w)
Datum: 05.02.2010 20:30

Hallo,

Anschluss sollte stimmen.

Aber mit der 2.56V Referenz wird das nicht's denn die Eingangsspannung
kann logischerweise zwischen 0 und 5V liegen, da diese Pegel ja durch
die Portpins vorgegeben sind.

ADCW liest wohl beide ADC-Register automatisch in der entsprechenden
Reihenfolge aus? (ich prog. in ASM)

Sascha
Autor: noobuntu (Gast)
Datum: 05.02.2010 21:29

Jop der gnu-cc Compilier macht das in der richtigen Reihenfolge. Man
muss nur drauf achten das man das Ergebniss in einer 16 Bit Variablen
speichert.
Autor: Andi (Gast)
Datum: 05.02.2010 22:26

Hallo,

Also muß ich die Interne Referenz raus nehmen.
In einen anderen Thread habe ich gelesen man soll erst muxen dann
aktivieren.
Werde es morgen mal probieren Danke.
Autor: Andi (Gast)
Datum: 06.02.2010 09:16

Hallo


Habe immer noch das Problem trotz externer ref das der ADC das selbe
anzeigt.
An den PIN A0 mit den Oszi messe zeigt er mir 0Volt bei angeschlossen
Touch wenn ich mit dem Finger von links nach rechts streiche geht er
linear bus af 5V so soll es doch sein.

Habe auch mal ein Poti an den ADC gehangen der Oszi zeigt das gleiche
von 0 bis 5V aber der ADC nicht er bleibt bei 460+-60 ob was dran ist
oder nicht.

Also gehe ich davon aus das das Touch geht.

Danke

Andi
Autor: Andi (Gast)
Datum: 06.02.2010 10:08
Angehängte Dateien:

Hallo

Hier mal mein code.Der soll erstmal nur den ADC Wert lesen.
Alles andere folgt wenn das denn geht.

Atmega 128 16MHZ


Danke

Vieleicht habt Ihr noch ne Idee.

An den Ports kommt alles an also lötunterbrechungen kann man
ausschließen.
AREF hat 5V.
Autor: Andi (Gast)
Datum: 06.02.2010 19:39

Hallo,

Problem gefunden

AD ist nicht gleich ADC.

Port A beim ATemga 128 sind AD Ports ich benötige aber ADC aslo PORT F.

gesagt getan und nun gehts.

Danke

andi
Autor: Robert (Gast)
Datum: 07.02.2010 16:30

Hallo!
Habe mir auch das Display gekauft und gleich angeschlossen. Ohne
Ansteuerung zeigt es manchmal gar nichts, manchmal einen Strich in der
Mitte - scheint also zumindest zu funktionieren.
Nun habe ich versucht den Code von Benedikt zu verwenden - jedoch kann
ich diesen nicht compilieren mit WinAVR, ich bekomme folgenden Fehler:
Linking: main.elf
avr-gcc -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields
-fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o
-std=gnu99 main.o lc7981.o   --output main.elf -Wl,-Map=main.map,--cref
-lmega_intmath -lm
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe:
cannot find -lmega_intmath
Womit hängt das zusammen??? (ich habe im Makefile nur die MCU und den
Programmer geändert und im Programm 16Mhz eingetragen. Ich verwende
einen Atmega32 @ 16Mhz.
Da ich den Fehler nicht beheben konnte, habe ich das Programm von
FrozenEskimo genommen, die Ports/Pins, MCU und Takrate geändert - das
ließ sich auch flashen, jedoch zeigt das Display danach nichts mehr an
(bevor das Programm drauf war, waren de wenigstens ab und zu noch ein
paar Striche oder sowas). Habe schon ein wenig die Wartezeiten im
Programm angepasst, jedoch ohne Ergebnis.
Hat jemand eine Idee? Würde gerne das Programm von Benedikt zum laufen
bringen.

MfG,
Robert
Autor: David Madl (md2k7)
Datum: 07.02.2010 16:43

> c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe:
cannot find -lmega_intmath

mega_intmath scheint eine Library von Benedikt zu sein, die allerdings
(soweit ich auf die Schnelle gesehen habe) nicht verwendet, sondern nur
dazugelinkt wird.

Ergo: -lmega_intmath im Makefile löschen.

also aus Makefile, Zeile 99:
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref -lmega_intmath
mach
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref

Gruß
David
Autor: Robert (Gast)
Datum: 07.02.2010 18:45

Danke^^
War vorns über die Suche im Makefile auch auf diese Zeile gestoßen.
Jetzt kann ich das Programm compilieren ;)
Leider zeigt das Display aber nichts an. Nach langem Suchen nach dem
Fehler ist mir jetzt etwas aufgefallen:
Wenn ich RS nicht anschließe und den MC resette, dann zeigt das LCD
etwas an (meist einfach nur grau, da der Controller ja keine Befehle vom
MC empfangen hat und somit alles, was kommt als Daten interpretiert -
RS=0). Wenn ich aber RS wieder anschließe, dann zeigt das Display gar
nichts an. Könnte es sein, dass ich die Wartezeiten ändern muss oder ist
das Display möglicherweise defekt? Kennt jemand solche Probleme?
mfg
Autor: Sven B. (svenba)
Datum: 08.02.2010 11:33

Hallo! Bin dabei, die Touchaktivierung per Pin Change Interrupt zu
realisieren. Ich benutze einen AtMega644 ( Datenblatt:
http://www.atmel.com/dyn/resources/prod_documents/... )und bin
mir jetzt nicht sicher, welche Register ich jetzt für den Interrupt
nutzen muss. Im Netz findet man immer nur Beiträge zu den StandartPins
INT0 / INT1.
Ich nutze aber den Interrupt an Pin PA4 (also PCINT4).

Also muss ich wohl in PCICR Bit 0 setzen, um PCINT0 bis 7 zu wählen.
Dann muss ich in PCMSK0 Bit 4 setzen,um PCINT4 zu wählen.
Irgendwann muss ich wohl SEI senden und in der Vektorenliste mein
Unterprogramm eintragen.
Ist das soweit richtig?
Wenn ich das ganze so betreibe sehe ich, das der Interrupt ständig
auslöst(Hab ne Displayausgabe in das Unterprogramm geschrieben).
Hab natürlich als erstes eine Touchfolie auf Masse gelegt und den
"nichtInterrupt"Pin der anderen auf Pull-Up.
Muss ich noch weitere Register aktivieren ? Bin da grad ratlos.
Wo lege ich denn nun die auslösende Flanke fest??
Ich programmiere in Assembler.
Hilfe!!!
Autor: Sven B. (svenba)
Datum: 11.02.2010 10:23

Kann mir hier keiner helfen?
Hab bis jetzt folgendes:
; Erst auswählen welcher Int(0 bis 2) mit High.
;   hier: PCInt0 weil Pin für Touch an PA4 = PCInt4 = INT0
        lds    temp1,EIMSK
        sbr    temp1, 0<< INT2 | 0<<INT1 | 1<<INT0
        sts    EIMSK,temp1
;  Flanke H/L, L/H oder Low Pegel einstellen 
        lds    temp1,EICRA
        sbr    temp1,  0<<ISC01 | 0<<ISC00  ; Low Level löst Int aus
        sts    EICRA,temp1      
      
    /*    lds    temp1,EIFR
        sbr    temp1, 1<<INTF2 | 1<<INTF1 | 1<<INTF0
        sts    EIFR,temp1
*/
        
; Welche Pin-Gruppe?
        lds temp1, pcicr
        sbr temp1, 1 << PCIE0
        sts pcicr, temp1
;Welcher Pin in Gruppe genau?
        lds temp1, pcmsk0
        sbr temp1, 1 << pcINT4    ; PA4 als Auslöser
        sts pcmsk0, temp1
        
      ;  sei  ; Alle Interrupts an
Touch_ruhe:
    
        sbi  Touch_DDR, Y_minus  ; alles auf Ausgang
        sbi  Touch_DDR, Y_plus
       sbi  Touch_DDR, X_plus
      cbi  Touch_DDR, X_minus    ; Interruptauslöser !!
???????????????????????????
        cbi  Touch_Control, Y_minus  ; Y Auf 0V
        cbi  Touch_Control, Y_plus  
        sbi  Touch_Control, X_Plus    ; Xplus auf High
      ;  cbi  Touch_control ,X_minus; pullup an
Autor: Hab 3 Display´s (Gast)
Datum: 13.02.2010 09:58

Guten Morgen ihr Faschingsnarren! ;-)

Hab mir vor einiger Zeit auch drei Displays bestellt, bin jetzt erst
daugekommen diese zu testen, aber es waren alle drei in schwarzen Tüten,
und total unverlötet! Demnach funktionieren auch alle!

Jetzt zu meiner Frage, hab das Test-HEX von allu:

MEGA8_8MHZ_TOUCHTEST.Hex

Gibt es für diese HEX auch einen Quellcode? der auch die Symbole zeigt,
oder einfach mal das ganze Programm?
Vorzugsweiße in C!

Danke euch schonmal im Vorraus!
Guten Morgen noch!
Bastler
Autor: allu (Gast)
Datum: 13.02.2010 23:27

Autor: Hobby-Bastler (Gast)
Datum: 14.02.2010 10:34

Hey allu,
danke schonmal für den Code, werd ihn gleich mal auf mein Steckbrett
laden! Sieht zur Zeit noch ziemlich wirr aus, aber funktionieren tut es!

Jetzt zum Code, werd ihn mir mal etwas ansehen, hab allerdings von
Bascom keine Ahnung, hab damit also auch noch nie was gemacht. Hat den
noch nie jemand mal die Routinen schön geschrieben und die Ports in
einen Defines.h Header gelegt?
Wär mal ne Möglichkeit, um das Display überall einbinen zu können!

Aber Danke schonmal!

Bastler
Autor: Hab 3 Display´s (Gast)
Datum: 14.02.2010 10:51

EDIT: Also ich wrde ungern BASCOM lernen, denn das ist schon was ganz
anderes wie C. Ich versteh eh nicht, warum man sowas in BASCOM macht,
das geht doch in C wehsentlich einfacher oder?
Autor: Hannes Lux (hannes)
Datum: 14.02.2010 10:58

> das geht doch in C wehsentlich einfacher oder?

Nein, in ASM ist es einfacher... - Zumindest für mich... ;-)

Denn es kommt immer darauf an, was man kann und was man gewöhnt ist.
Basic kann ich zwar auch, es ist in Form von Bascom aber nicht für
zeitkritische Dinge auf AVRs geeignet, es nutzt die knappen Ressourcen
einfach zu verschwenderisch. C kann und will ich nicht. Da bleibt nur
ASM, was den Vorteil hat, eindeutig (sogar eineindeutig) zu sein, jedes
Mnemonic entspricht 1 zu 1 einem Maschinenbefehl.

...
Autor: ML (Gast)
Datum: 14.02.2010 11:22
Angehängte Dateien:

Vielen Dank,
ich habe mir das LCD bei Neuhold besorgt, touch und co funktioniert
wunderbar, als kleine Draufgabe habe ich einen .PBM -> LCD Converter
geschrieben.

Damit ist es möglich Grafiken in Paint/Photshop zu bearbeiten und direkt
auf das LCD zu senden. Da PBM sehr gut komprimiert (1 bit pro pixel),
werden die grafik Bibliotheken sehr klein!

mfg ML
Autor: Hobby-Bastler (Gast)
Datum: 14.02.2010 18:43

Okay, hast ja recht, aber so im Zusamenhang zu Umsetzung und zur
Routinen find ich C komfortabler als ASM weil es halt einfach eine
wunderschöne Sprache ist.
Aber so nen richtigen C-Source hab ich jetztoutch Auswertung wäre, wär
das echt super!

Guten Abend
Bastler
Autor: Sven B. (svenba)
Datum: 16.02.2010 21:13

Hi!
Hat jemand nen Schnellschuss für mich? Woran kann es liegen, wenn der
Interrupt zum Touch-wecken immer wieder anspringt und das Hauptprogramm
garnicht erst wieder zum arbeiten frei gibt?
Hier meine ISR:
touch_beruehrt:

          push temp1
          in temp1, sreg
          push temp1

          rcall touch_speichern_x
          rcall touch_speichern_y
          rcall touch_auswerten
          
          pop temp1
          out sreg, temp1
          pop temp1
          reti
So wird das Touch in Ruhe geschaltet:
Touch_ruhe:
    
        sbi  Touch_DDR, Y_minus  ; alles auf Ausgang
        sbi  Touch_DDR, Y_plus
       sbi  Touch_DDR, X_plus
      cbi  Touch_DDR, X_minus    ; Interruptauslöser !!

        cbi  Touch_Control, Y_minus  ; Y Auf 0V
        ;cbi  Touch_Control, Y_plus  
        ;sbi  Touch_Control, X_Plus    ; Xplus auf High
        cbi  Touch_control ,X_minus; pullup an
    

Hilfe, rauf mir langsam die Haare...
Autor: Hannes Lux (hannes)
Datum: 16.02.2010 23:18

> Hilfe, rauf mir langsam die Haare...

Warum den eigentlich im Ext.-Interrupt??

Warum nicht Polling im Timer-Interrupt, z.B. alle 1 ms?
Und dann als Statemachine.

- Im Ruhezustand auf Berührung (Schluss der beiden Widerstandsbahnen)
prüfen. War keine Berührung, dann Statuszähler auf Startwert stellen.
War Berührung, dann Statuszähler erhöhen. Erreicht der Statuszähler die
Prellschwelle, dann Portpins und ADMUX auf X-Messung einstellen.

- Beim nächsten Timer-Int. dann (gemäß Statuszählerstand) den ADC-Wert
als X-Wert speichern, Portpins und ADMUX auf Y-Messung stellen.

- Beim nächsten Timer-Int. (gemäß Statuszählerstand) ADC-Wert als Y-Wert
speichern und Portpins wieder auf Berühriungspolling stellen.

- Ist beim nächsten Timer-Int. die Berührung noch da, dann einen Merker
setzen, an dem die Mainloop erkennt, dass eine Berührung stattfand und
die Koordinaten gesichert sind. Dann den Statuszähler wieder auf Start
stellen und von vorn beginnen.

Dies kostet kaum Rechenzeit, da nirgends gewartet werden muss. Bei
Deinem Konzept löst jeder Störimpuls (z.B. Licht ausschalten) einen
Interrupt aus, in dem beide ADC-Mess-Konstellationen vorbereitet und
abgewartet werden müssen. Dies ist Gift für eine ISR, denn dies dauert
viel zu lange. Es wird viel zuviel Rechenzeit vertrödelt, um zweimal auf
das Ergebnis des ADC zu warten. Da ist es doch bedeutend effizienter, in
der ADC-Wandlungszeit zur Mainloop zurückzukehren und sich dort um
andere Aufgaben zu kümmern.

Und nein, ich habe es noch nicht realisiert, aber so in etwa werde ich
herangehen, wenn ich meine vorrätigen (und mit Benedikts Testprogramm
erfolgreich getesteten) LCDs einsetzen werde.

...
Autor: Sven B. (svenba)
Datum: 17.02.2010 07:04

Hi!
Danke für die Antwort!
Hatte hier schon oft gelesen, dass viele über den ext.Int. gehen und hab
mich deshalb dafür entschieden.
Dein Konzept sieht aber wirklich plausibel aus, werde versuchen, das so
um zu setzen, nach zwei Wochen ohne vernünftiges Resultat ist mir ein
neuer Ansatz ganz Recht!
Welchen Wert (ms) würdest du als Prellschwelle verwenden?

Sven
Autor: Hannes Lux (hannes)
Datum: 17.02.2010 09:05

Sven B. schrieb:
> Hi!
> Danke für die Antwort!
> Hatte hier schon oft gelesen, dass viele über den ext.Int. gehen und hab
> mich deshalb dafür entschieden.

Das würde ich nicht überbewerten. Es gibt auch immer wieder Leute, die
meinen, ihre Tasten per ext.-Interrupt einlesen zu müssen.

> Dein Konzept sieht aber wirklich plausibel aus, werde versuchen, das so
> um zu setzen, nach zwei Wochen ohne vernünftiges Resultat ist mir ein
> neuer Ansatz ganz Recht!

Wie gesagt, ich habe es noch nicht realisiert, es existiert also noch
keinerlei Erfahrung damit.

> Welchen Wert (ms) würdest du als Prellschwelle verwenden?

Da muss ein Kompromiss gefunden werden. Zu schnell könnte zu Störungen
führen, zu langsam beeinträchtigt die Grafikeingabe (malen, schreiben).
Finde es raus. Man kann den Statuszähler ja rückwärts laufen lassen,
dann kann man die Prellanzahl durch Variation des Startwertes
einstellen, ohne den eigentlichen Code (welcher Statuszählerwert welchen
Job erledigt) dabei nicht zu ändern.

Auch die 1 ms ISR-Rate ist erstmal aus der Luft gegriffen und kann
variiert werden. Die Grenze nach unten ist das ADC-Tempo, der ADC sollte
in diesem Intervall mindestens zwei Wandlungen geschafft haben, so dass
die erste (ungenaue) Wandlung überschrieben ist und nicht erst per
Programm ausgefiltert (unterdrückt, weggeworfen) werden muss. Die Grenze
nach oben ist die gewünschte Geschwindigkeit der Toucheingabe. Da aber
(fast) jedem Programm einen Zeittakt braucht, lohnt es sich, einen
glatten Wert zu nehmen, aus dem man nebenher noch die Systemzeit
ableiten kann.

>
> Sven

...
Autor: Sven B. (Gast)
Datum: 18.02.2010 10:30

Yippie!
Du bist mein Held der Woche!!

Die erste Routine zur Timer gesteuerten Abfrage läuft!
Endlich!

Nur leider misst er nur vernünftige Werte bei niederigem Takt, meine
Schaltung soll aber auf 20MHz laufen.Da kommt immer nur der "Min.Wert".
Hat jemand ne Idee?
ADC Prescaler ist schon so hoch wie möglich und meine sonstigen
Messwertaufnahmen gehen damitz einwandfrei...

Touch-debouncing?? Aber wie?
Autor: allu (Gast)
Datum: 18.02.2010 17:56

Versuch mal, messen und sofort nochmal messen und nur den 2. Messwert
auswerten.
Gruß   allu
Autor: Sven B. (Gast)
Datum: 18.02.2010 18:25

Hi!
Danke, habs schon mit Dummy-Messungen bis hoch auf 10 versucht.
Ausserdem hab ich an allen möglichen Stellen delays eingefügt usw, er
misst immer nur max Werte... Hab mein Display/Touch ber Flachband (ca.
5cm) an die uC-Platine angeschlossen, hab das Gefühl, dass die
verschiedenen Signal sich da stören.?.

Ach ja, hier mal meine erst (leicht veränderte) Variante der
Timer-Touch- ISR: (noch mit Ausgabebefehlen zum überprüfen)
touch_timer:
    push temp1
    in temp1, sreg
    push temp1
    push adhigh
    push temp4
    push zl
    push zh

    clr temp2
    z_laden Touchstatus
    ld adhigh, z    ; Statuszähler

; Ist X- wirklich Low?
    in temp1, pina
    ldi temp2, 1<<x_minus
    andi temp1, 0b00010000
    cpi temp1, 0b00010000
    breq Touch_reset
    ;-----------------------------------------------  
; 20 mal während Timer gedrückt?
        
    cpi adhigh, 20
    breq Schwelle_eins

    cpi adhigh, 25
    breq Schwelle_zwei

    cpi adhigh, 30
    breq Schwelle_drei

; Schwelle erreicht:
Schwelle:
    inc adhigh
    st z, adhigh
    rjmp Timer_ende

Schwelle_eins:      ; X- speichern
    rcall touch_speichern_x  ; XWert in ZL(Touchwerte)
    z_laden Touchwerte
    ldi disdata1, 0x0c
    ldi disdata2, 0x53
    rcall sende_daten
    ldi disdata2, 0x31
    rcall sende_daten

    ld disdata2, z
    rcall sende_daten
    ;;;;;;;;
    z_laden Touchstatus
    inc adhigh
    st z, adhigh
    rjmp Timer_ende
Schwelle_zwei:      ; Y-speichern
    rcall touch_speichern_y  ; Y-Wert in ZL+1(Touchwerte)  
    ldi disdata1, 0x0c
    ldi disdata2, 0x53
    rcall sende_daten
    ldi disdata2, 0x32
    rcall sende_daten
    ;;;;;;;;
          
    inc adhigh
    st z, adhigh
    rjmp Timer_ende
Schwelle_drei:  
    ldi disdata1, 0x0c
    ldi disdata2, 0x53
    rcall sende_daten
    ldi disdata2, 0x33
    rcall sende_daten  
    rcall touch_auswerten
Touch_reset:  
    clr adhigh
    st z, adhigh

Timer_ende:  
    pop zh
    pop zl
    pop temp4
    pop adhigh        
    pop temp1
    out sreg, temp1
    pop temp1
          
          
    reti
Autor: allu (Gast)
Datum: 18.02.2010 18:59

Wie ich die Berührungs- und Positionerkennung für meinen Touch gelöst
habe, hatte ich oben schon mal kurz beschrieben:
Beitrag "Display mit Touchscreen bei Pollin?".

Zur Zeit babe ich den IRQ auf 20msec Zeitabstand eingestellt. Nach
meinen Versuchen reicht eine Dummy-Messung. Dann sollten sich auch 5cm
Flachbandleitung beruhigt haben. Während den beiden Messungen dürfen
aber die Portleitungen zum Touch nicht verändert werden.

Gruß   allu
Autor: Sascha Weber (sascha-w)
Datum: 18.02.2010 21:05

@ Sven B.

zeig mal den Rest des Programms: ADC starten/auslesen, Touchports
einstellen!

Displayausgaben in der ISR - gruselig.

Sascha
Autor: Hannes Lux (hannes)
Datum: 18.02.2010 21:25

Deshalb halte ich mich ja zurück, das ist nicht das, was ich empfohlen
hatte...

...
Autor: Sven B. (Gast)
Datum: 18.02.2010 22:13
Angehängte Dateien:

Hi Leute!
Natürlich fliegen die Displayausgaben raus, hatte ich doch oben auch
geschrieben. Nach zwei Wochen vergeblicher Liebesmühe wird man mir wohl
ein bißchen sichtbare Erfolgskontrolle durchgehen lassen.
Ausserdem ging es mir hier erstmal darum, etwas reagierendes hin zu
kriegen, deswegen hab ich den Vorschlag von Hannes nicht 100% umgesetzt,
sondern arbeite mich Stück für Stück heran!
Hier mal noch ein bißchen Code;

Touch_ruhe:
        sbi  Touch_DDR, Y_minus  ; alles auf Ausgang
        sbi  Touch_DDR, Y_plus
       cbi  Touch_DDR, X_plus
  cbi  Touch_DDR, X_minus    ; Interruptauslöser !!

        cbi  Touch_Control, Y_minus  ; Y Auf 0V
        cbi  Touch_Control, Y_plus  
        sbi  Touch_control ,X_minus; pullup an
    
  ret
Die Init für meinen ADC habe ich so aus meinem funktionierenden Programm
übernommen, genau wie die Messabläufe.
Aber hier mal die X-Messumschaltung;
 Touch_speichern_X:
;hier X-Messung
  push temp1
  push temp2
  push zl
  push zh

  z_laden Touchwerte

        cbi   Touch_DDR, Y_plus  ;Y auf Input stellen
        cbi   Touch_DDR, Y_minus
        sbi   Touch_DDR, x_minus  
        sbi   Touch_DDR, x_plus

        sbi   touch_control, x_plus
        cbi   Touch_Control, X_minus ;X bestromen
          
        ldi  Temp1, (0<<ADEN)
        sts Adcsra , Temp1
    
        ldi   Temp1, 0b01100010  ;auf Eingang Y- stellen
        sts  Admux , Temp1
    
        ldi  Temp1, (1<<ADEN)
        sts Adcsra , Temp1
    
        rcall Touch_messen

       st z, adlow  ; X-Wert in ZL(Touchwerte) gespeichert  
        
  pop zh
  pop zl
  pop temp2
  pop temp1
  ret
Touch_speichern_Y sieht genau so aus, nur wird der Wert in Z+1
gespeichert und natürlich vorher die Pins umgeschaltet.
Touch_messen:
  push temp1
  push temp2      
  ldi temp2, 3  ; x-mal dummy messen
messen:
  lds   temp1, adcsra
  sbr     temp1,(1<<ADSC)
  sts     ADCSRA, temp1        ; den ADC starten    
warten_adc2:
  lds   temp1, adcsra
  sbrc     temp1, ADSC        ; fertig?
  rjmp     warten_adc2
   
; ADC einlesen:
  lds      adlow, ADCL
  lds      adlow, ADCH
  dec temp2
  brne messen
  rcall touch_ruhe
  pop temp2
  pop temp1
  ret     ; In ADLOW steht das Ergebnis
Autor: Sven B. (svenba)
Datum: 18.02.2010 22:20

Oh!
Die angehängte Datei könnt ihr IGNORIEREN, hatte gedacht, die wäre nicht
angenommen worden. Das meiste ist nur Baustelle der letzten Tage...
Autor: Hannes Lux (hannes)
Datum: 19.02.2010 09:32

Lies Dir noch mal mein Konzept durch.

Ich schlug vor, eine ADC-Messung nur vorzubereiten (Portpins setzen,
Messquelle auswählen) und dann die ISR zu verlassen. Die Messung (egal
ob ADC oder nur Berührung) erfolgt dann im nächsten Interrupt, danach
wird die nächste Messung vorbereitet. Zwischen Vorbereitung und Messung
vergeht also immer die Zeit eines Timer-ISR-Intervalls, in der aber die
CPU nicht wartet, sondern Jobs der Mainloop abarbeiten kann. Der ADC
klappert derweil im Hintergrund (per Hardware) einige Wandlungen durch,
wobei es auch darauf ankommt, dass er mindestens zwei Wandlungen
schafft, damit das erste fehlerhafte Ergebnis überschrieben (entsorgt)
wird und ein sinnvolles Ergebnis erscheint.

Und was machst Du?

Du rufst in der ISR Unterprogramme auf, die erst jetzt die Ports
konfigurieren, die ADC-Quelle auswählen und auch noch sofort das
Ergebnis liefern sollen... Das kann doch gar nicht funktionieren, der
ADC braucht doch auch seine Zeit zum arbeiten. Du erzeugst doch damit in
der ISR elend lange Busywaits. Und dabei ist es doch so einfach, etwas
vorausschauend zu planen...

Vom LCD-Zugriff möchte ich nicht reden, mit meinem LCD-Treiber ist das
kein Problem, der führt einen Bildschirmspeicher im SRAM, was die
Zugriffe extrem beschleunigt. An das LCD übertragen wird der Inhalt dann
byteweise in einem per Timer synchronisierten Job der Mainloop. Damit
darf ich dann auch in der ISR ganze Texte ausgeben, ohne dass ein
Timing-Problem entsteht. Aber das ist nun wieder eine andere Baustelle.

...
Autor: Sven B. (svenba)
Datum: 19.02.2010 22:37

Danke für die kritische Antwort.
Ich beschäftige mich erst seit letztem August mit uC,daher sind mir
einige Dinge einfach noch nicht so klar.

Ich habe jetzt also die Befehle, die ich erst per rcall aufgerufen hatte
direkt in die "Schleifen" geschrieben und halte mich an die von dir
vorgeschlagene Reihenfolge.

Den ADC lasse ich dann also im Free Run laufen und kümmere mich nicht
mehr unbedingt um das Busy-Flag, richtig?

Mein Hauptprogramm ist ein Oszilloskop auf einem zweiten, grösseren
GLCD, wobei ich erst 255 Werte mit ADC speichere und danach auf dem GLCD
ausgeben lasse, usw, das funktioniert bis jetzt alles super.

Was würde jetzt passieren, wenn der "TouchADC" im Free Run anläuft, die
ISR
zurück springt und dann der Punkt kommt, wo ich die 255 Werte des
anderen Portpins über ADC hole und während dieser Zeit die Interrupts
sperre?

Kann ich dem ADC nach Start einer Wandlung eines Eingangs umschalten auf
Wandlung von zwei Eingängen?
Evtl über "laden ADC-Register -- setzen High für neuen Eingang ---
speichern in Register" ?

Schönes Wochenende wünsch ich euch!
Autor: Hannes Lux (hannes)
Datum: 20.02.2010 09:14

Sven B. schrieb:
> Danke für die kritische Antwort.

Sorry, manchmal bin ich da recht direkt...

> Ich beschäftige mich erst seit letztem August mit uC,daher sind mir
> einige Dinge einfach noch nicht so klar.

Das ist normal.

>
> Ich habe jetzt also die Befehle, die ich erst per rcall aufgerufen hatte
> direkt in die "Schleifen" geschrieben und halte mich an die von dir
> vorgeschlagene Reihenfolge.

Das allein ist es nicht, das würde weiterhin Busywaits bewirken.

>
> Den ADC lasse ich dann also im Free Run laufen und kümmere mich nicht
> mehr unbedingt um das Busy-Flag, richtig?

Das wäre richtig, wenn der ADC sich nur um den Touch kümmern bräuchte.
Einfach das Abfrage-Intervall so hoch legen, dass darin mindestens zwei
Wandlungen erfolgen.

>
> Mein Hauptprogramm ist ein Oszilloskop auf einem zweiten, grösseren
> GLCD, wobei ich erst 255 Werte mit ADC speichere und danach auf dem GLCD
> ausgeben lasse, usw, das funktioniert bis jetzt alles super.

Aha, dann ist ja der ADC bereits voll ausgebucht. Dann sollte man
unbedingt den ADC-Complete-Interrupt nutzen, um die maximale Samplerate
nutzen zu können und nebenher noch etwas Rechenzeit für andere Aufgaben
zu haben.

>
> Was würde jetzt passieren, wenn der "TouchADC" im Free Run anläuft, die
> ISR
> zurück springt und dann der Punkt kommt, wo ich die 255 Werte des
> anderen Portpins über ADC hole und während dieser Zeit die Interrupts
> sperre?

Dies ist kein gutes Konzept. Wenn der ADC eine Quelle (also ohne
Quellen-Umschaltung) mit maximaler Samplerate abtasten soll, dann nutzt
man den ADC-Complete-Interrupt und liest die Messwerte in ein Array ein.
Die ISR wird dabei so kurz, dass die Mainloop nebenher noch andere
Arbeiten erledigen kann.

Übrigens halte ich den ADC des AVRs für etwas zu langsam für ein Gerät,
dass Oszilloskop genannt werden darf. Für einen Kanal kommt man nicht
viel höher als 15 kHz Samplerate (wenn man sich an das Datenblatt hält,
also den ADC-Takt nicht über 200 kHz wählt), bei zwei Kanälen ist es
dann nur noch 1/4 davon je Kanal, da ja die jeweils erste Messung nicht
so gut ist.

>
> Kann ich dem ADC nach Start einer Wandlung eines Eingangs umschalten auf
> Wandlung von zwei Eingängen?

Du solltest Dir im Datenblatt nochmal den Aufbau, die Arbeitsweise und
die Timingdiagramme des ADCs genauer ansehen.

> Evtl über "laden ADC-Register -- setzen High für neuen Eingang ---
> speichern in Register" ?

Das verstehe ich jetzt nicht, ADC-Register ist doch readonly.

Falls Du Admux meinst, sicher kann man das ändern, aber bitte nicht
irgendwann während der Messung, sondern erst nach der Messung. Z.B. in
der ADC-ISR: Messwert holen und sichern, ADMUX auf nächste ADC-Quelle
einstellen, ADC wieder starten, im Hauptprogramm weiter arbeiten.

>
> Schönes Wochenende wünsch ich euch!

Danke, Dir auch, die Sonne scheint ja bereits...

...
Autor: Sven B. (svenba)
Datum: 20.02.2010 10:42

Hannes Lux schrieb:

> Übrigens halte ich den ADC des