Forum: Mikrocontroller und Digitale Elektronik Display mit Touchscreen bei Pollin?


von Micha J. (michady)


Angehängte Dateien:

Lesenswert?

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

von Allu (Gast)


Lesenswert?

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

von Sebastian R. (sebr)


Lesenswert?

Hat denn schon jemand das Display in nem fertigen Projekt verwendet? 
Würde mich interessieren.

von Micha J. (michady)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

> 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 "Re: Display mit Touchscreen bei Pollin?"
Die Anschlussbelegung findet man hier:
Beitrag "Re: Display mit Touchscreen bei Pollin?"

...

von Meik D. (meik)


Angehängte Dateien:

Lesenswert?

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

von Meik D. (meik)


Angehängte Dateien:

Lesenswert?

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

von Sven B. (svenba)


Lesenswert?

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

von Allu (Gast)


Lesenswert?

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

von Allu (Gast)


Lesenswert?

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

von Micha J. (michady)


Lesenswert?

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

gruß Micha

von Roland P. (pram)


Angehängte Dateien:

Lesenswert?

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

von Sven B. (svenba)


Lesenswert?

@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?

von Allu (Gast)


Angehängte Dateien:

Lesenswert?

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

von Micha J. (michady)


Lesenswert?

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

von Micha J. (michady)


Lesenswert?

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

von allu (Gast)


Lesenswert?

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

von Micha J. (michady)


Lesenswert?

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

von Hardy (Gast)


Lesenswert?

Hallo zusammen!

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


Besten Dank im vorraus...

von Chris (Gast)


Lesenswert?

Gar nicht

von Sven B. (svenba)


Lesenswert?

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.

von Jan H. (cyno)


Lesenswert?

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

von Sven b. (Gast)


Lesenswert?

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...

von Matthias R. (mons)


Lesenswert?

Habt ihr schon was für die C-Control Pro?
(Programmtext)

von Thorsten E. (nietzsche)


Lesenswert?

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

Habe gerade mal spaßeshalber bei Farnell geschaut... 
Mindestbestellmenge: 1,2k :D

von Frank R. (frankies)


Lesenswert?

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

von Sebastian R. (sebr)


Lesenswert?

Welchen Inverter verwendest du denn?
Mit dem "EL-Inverter 08" von Reichelt habe ich keine Probleme. Keine 
Geräusche und Kontrast auch OK

von Frank R. (frankies)


Lesenswert?

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

von Sven B. (svenba)


Lesenswert?

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 ;-)

von Sebastian R. (sebr)


Lesenswert?

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 :)

von J. K. (rooot)


Lesenswert?

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

von Thorsten E. (nietzsche)


Lesenswert?

Könnte ich ein Bild sehen?

von Juppi J. (juppii)


Lesenswert?


von Hannes L. (hannes)


Lesenswert?

Juppi J. schrieb:
> Beitrag "Re: 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. ;-)

...

von J. K. (rooot)


Angehängte Dateien:

Lesenswert?

Hier zwei Bilder von meiner Konstruktion.

Hoffe man kann genug erkennen.

von Timmo H. (masterfx)


Lesenswert?

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...

von Hannes L. (hannes)


Lesenswert?

> 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.

...

von NrDesign (Gast)


Lesenswert?

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

von J. K. (rooot)


Lesenswert?

>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

von Sven B. (svenba)


Lesenswert?

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??

von J. K. (rooot)


Lesenswert?

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

von J. K. (rooot)


Lesenswert?

Nachtrag:
wer mittels Timer das Signal erzeugen will:
http://www.elektronik-kompendium.de/sites/slt/0310131.htm

von Thomas H. (microtom)


Angehängte Dateien:

Lesenswert?

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

von Sven B. (svenba)


Lesenswert?

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!!

von Thomas H. (microtom)


Angehängte Dateien:

Lesenswert?

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).
1
$regfile = "m32def.DAT"
2
$crystal = 8000000
3
$baud = 19200
4
$hwstack = 64
5
$swstack = 256
6
$framesize = 84
7
8
9
'PortPins zum Display 16080 festlegen und initialisieren
10
11
12
Daten_bus_out Alias Portd
13
Daten_bus_in Alias Pind
14
Daten_ddr Alias Ddrb
15
Auf_input_stellen Alias &H00
16
Auf_output_stellen Alias &HFF
17
Bussy Alias 7
18
19
20
Touch_control Alias Porta
21
Touch_ddr Alias Ddrc

Danke
Gruß und schönes Wochenende
Thomas

von Thomas H. (microtom)


Lesenswert?

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

von allu (Gast)


Lesenswert?

Hallo Thomas

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

Gruß   allu

von allu (Gast)


Lesenswert?

Für das Display habe ich aus Verarbeitungszeitgründen Assemblerroutinen 
programmiert, deshalb zusätzlich die Datenrichtungsregister im 
Bascom-Teil.

von Thomas H. (microtom)


Lesenswert?

Musst entschuldigen, falls ich ein wenig zu "anfängerrisch" frage, aber 
sind das nicht die zwei Beiden hier:
1
Daten_bus_out Alias Portd
2
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

von allu (Gast)


Lesenswert?

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

von Thomas H. (microtom)


Lesenswert?

Hab ich inzwischen gemacht
1
Daten_bus_out Alias Portd
2
Daten_bus_in Alias Pind
3
Daten_ddr Alias Ddrd
4
Auf_input_stellen Alias &H00
5
Auf_output_stellen Alias &HFF
6
Bussy Alias 7
7
8
9
10
Touch_control Alias Porta
11
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

von Hannes L. (hannes)


Lesenswert?

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

...

von allu (Gast)


Lesenswert?

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.

von Thomas H. (microtom)


Lesenswert?

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!

von allu (Gast)


Lesenswert?

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

Gruß  allu

von Sven B. (svenba)


Lesenswert?

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

von Thomas H. (microtom)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

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... ;-)

...

von Sven B. (svenba)


Lesenswert?

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...

von Thomas H. (microtom)


Lesenswert?

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

~Thomas

von Philipp D. (arcon)


Angehängte Dateien:

Lesenswert?

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)

von Sven B. (svenba)


Lesenswert?

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-Tutorial:_Equipment )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!!

von Timmo H. (masterfx)


Angehängte Dateien:

Lesenswert?

Mein ist da und lief dank Benedikts Quellcode auf anhieb

von Philipp D. (arcon)


Lesenswert?

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 ...

von Timmo H. (masterfx)


Lesenswert?

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?

von Sigint 112 (sigint)


Lesenswert?

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

von Philipp D. (arcon)


Lesenswert?

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

Super !!!
Gleich ausprobieren!

lg

von Sebastian S. (bachelor)


Lesenswert?

Hi Leute,

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

Gruß Sebastian

von igel (Gast)


Lesenswert?

Meiner pfeift kaum hörbar. Bei Nebengeräuschen (Radio, PC,etc.) fällt 
das nicht mehr auf.

von Sebastian R. (sebr)


Lesenswert?

Bei mir ist der EL08 unhörbar

von Sebastian S. (bachelor)


Lesenswert?

Danke!

Dann werd ich mal bei Reichelt nachfragen!

Gruß Sebastian

von Tobias T. (Firma: codes4web) (roverfreak)


Angehängte Dateien:

Lesenswert?

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

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Thomas H. (microtom)


Lesenswert?

Hi,

Folienleiter rechts von Display, dann:

Y_minus
Y_plus
X_plus
X_minus

Gruß
Thomas

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

Danke, sonst eine Idee warum mein DIsplay nichts anzeigt?

von Thomas H. (microtom)


Lesenswert?

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

von Tobias T. (Firma: codes4web) (roverfreak)


Angehängte Dateien:

Lesenswert?

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-Tutorial:_Equipment

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

Als Software nehme ich "TOUCH_TEST_1.HEX" von ALLU:
Beitrag "Re: 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

von Thomas H. (microtom)


Lesenswert?

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

von Timmo H. (masterfx)


Lesenswert?

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.

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Sven B. (svenba)


Lesenswert?

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!!

von Alex D. (allu)


Lesenswert?

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

von Sascha W. (sascha-w)


Lesenswert?

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

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Alex D. (allu)


Lesenswert?

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

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

> 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.

...

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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 ..

von allu (Gast)


Lesenswert?

Versuchsweise den Programmieradapter abziehen. 10 kOhm von Reset nach 
+5V gelegt? Welche Pins meinst Du, vom Prozessor oder Display?

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von allu (Gast)


Lesenswert?

Watchdog : Vielleicht WDTON-Fuse gesetzt ?

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Thomas H. (microtom)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

Schuss ins Blaue:

Abblock-Kondensatoren am AVR und LCD vergessen...

...

von Thomas H. (microtom)


Lesenswert?

Noch ein Schuss ins Blaue....

JTAG-FUSE deaktiviert?

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

> 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.

...

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Thomas H. (microtom)


Lesenswert?

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

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

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.

...

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

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".

...

von Hannes L. (hannes)


Lesenswert?

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.

...

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von M. S. (bugles)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

Aus dem Datenblatt des LC7981.

von M. S. (bugles)


Lesenswert?

hmpf danke ..

von Tobias T. (Firma: codes4web) (roverfreak)


Angehängte Dateien:

Lesenswert?

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

von Sven B. (svenba)


Lesenswert?

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!!

von M. S. (bugles)


Lesenswert?

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.

von M. S. (bugles)


Lesenswert?

Hm hat wer von euchen einen blinkendne Cursor im Bild ? soweit läuft 
alles nur ich bekomme den Cursor nicht hin.

von M. S. (bugles)


Lesenswert?

Habs hinbekommen Cp=Vp gesetzt , cp soll wohl nicht kleiner sein sonst 
wird der cursor nicht angezeigt

von Wolfgang-G (Gast)


Lesenswert?

@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

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von M. S. (bugles)


Lesenswert?

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 ? ????

von Benedikt K. (benedikt)


Lesenswert?

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)

von Micha J. (michady)


Angehängte Dateien:

Lesenswert?

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

von Sascha W. (sascha-w)


Lesenswert?

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

von Micha J. (michady)


Lesenswert?

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

von Micha J. (michady)


Lesenswert?

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

mfg

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Tobias T. (Firma: codes4web) (roverfreak)


Angehängte Dateien:

Lesenswert?

1
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

von Micha J. (michady)


Lesenswert?

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

von John S. (linux_80)


Lesenswert?

Wenn dieser Balken durchläuft, dann ist der Kontroller am LCD noch nicht 
initialisiert, also nur an die Stromversorgung angeschlossen.

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

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

von Thomas F. (igel)


Lesenswert?

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

von John S. (linux_80)


Lesenswert?

@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.

von Thomas F. (igel)


Lesenswert?

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

von Tobias T. (Firma: codes4web) (roverfreak)


Angehängte Dateien:

Lesenswert?

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

von Tobias T. (Firma: codes4web) (roverfreak)


Lesenswert?

Habe es hinbekommen !!!
1
void lcd_setpixel(unsigned char x, unsigned char y)
2
{
3
  if ((x>=160)||(y>=80))
4
    return;
5
  lcd_setadress(x/8,y);
6
  lcd_writecom(0x0F);
7
  lcd_writedat(x&7);
8
9
  lcd_writecom(0x0F); //<== Mit dieser Zeile funktioniert es!
10
}

Lg
Tobias

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Kann man eigentlich den Touchscreen auch ohne Display nutzen?
Also ohne das Display mit Strom zu versorgen?
mit freundlichen Grüßen,
Valentin

von R. M. (rmax)


Lesenswert?

Ja, das Touchscreen ist ja komplett passiv.

von K. J. (Gast)


Lesenswert?

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 ?

von John S. (linux_80)


Lesenswert?

Hi,

die Display-Daten selber müssen danach ins Register 0x0c
so wie bei den Adressdaten auch.

von K. J. (Gast)


Lesenswert?

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.

von Micha J. (michady)


Lesenswert?

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

von Meik D. (meik)


Lesenswert?

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

von Alex D. (allu)


Lesenswert?

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

von K. J. (Gast)


Angehängte Dateien:

Lesenswert?

@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

von Micha J. (michady)


Lesenswert?

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

von Alex D. (allu)


Lesenswert?

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

von allu (Gast)


Lesenswert?

Sorry, natürlich: Ecke rechts unten ....

von Micha J. (michady)


Lesenswert?

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

von Micha J. (michady)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

> 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.

...

von Alex D. (allu)


Lesenswert?

Hallo Micha,

schau mal unter:   Beitrag "Re: Pollin 16080 Touch mit ATMEGA32 und BASCOM"
Dort findest Du meine Antwort zu Deiner Frage.

Gruß  Allu

von ASM-Freak (Gast)


Lesenswert?

>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.

von Hannes L. (hannes)


Lesenswert?

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.

...

von Micha J. (michady)


Lesenswert?

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

von Sebastian R. (sebr)


Lesenswert?

Hat schon jemand ne Eagle Lib für das Display erstellt?

von Mga (Gast)


Lesenswert?

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.

von Sascha W. (sascha-w)


Angehängte Dateien:

Lesenswert?

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

von Frank (Gast)


Lesenswert?

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 ;-)

von cn (Gast)


Lesenswert?

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/Doku%20LCD-Graphikanzeige.pdf

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

von cn (Gast)


Lesenswert?

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?

von Alex D. (allu)


Lesenswert?

> 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

von Sebastian M. (noobuntu)


Lesenswert?

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.

von A.Drei (allu) (Gast)


Angehängte Dateien:

Lesenswert?

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 ...

von Sascha W. (sascha-w)


Lesenswert?

das EN kann während der gesamten Wartezeit stehen bleiben, die 
Busyausgabe ist statisch. RW und RS muss auch H sein.

Sascha

von wulf (Gast)


Lesenswert?

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... :)

von Matze G. (maroni666)


Lesenswert?

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

von GefährlichesHalbwissen (Gast)


Lesenswert?

... ... schrieb:
> Aber was kann st du bei 7€ schon verlieren...

7 Euro

von Matze G. (maroni666)


Lesenswert?

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.

von Matze G. (maroni666)


Lesenswert?

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

von A.Drei (allu) (Gast)


Angehängte Dateien:

Lesenswert?

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

von Matze G. (maroni666)


Lesenswert?

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

von allu (Gast)


Lesenswert?

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

von Matze G. (maroni666)


Lesenswert?

Danke Allu,

hab die fuses richtig gesetzt und schon läuft es flüssig. Danke

von kyrel (Gast)


Lesenswert?

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

von Matze (Gast)


Lesenswert?

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

von Sven B. (Gast)


Lesenswert?

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?

von gerd (Gast)


Lesenswert?

> 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 "Re: 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

von Sascha W. (sascha-w)


Lesenswert?

@ 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

von Thomas F. (igel)


Angehängte Dateien:

Lesenswert?

> 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

von Thomas F. (igel)


Lesenswert?

Ups, ist zweimal der gleiche Code. Bitte den zweiten (oder wahlweise den 
ersten) ignorieren.

Thomas

von Sven B. (Gast)


Lesenswert?

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...

von Andi (Gast)


Lesenswert?

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

von Sascha W. (sascha-w)


Lesenswert?

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

von noobuntu (Gast)


Lesenswert?

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.

von Andi (Gast)


Lesenswert?

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.

von Andi (Gast)


Lesenswert?

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

von Andi (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Andi (Gast)


Lesenswert?

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

von Robert (Gast)


Lesenswert?

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

von David M. (md2k7)


Lesenswert?

> 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:
1
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref -lmega_intmath
mach
1
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref

Gruß
David

von Robert (Gast)


Lesenswert?

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

von Sven B. (svenba)


Lesenswert?

Hallo! Bin dabei, die Touchaktivierung per Pin Change Interrupt zu 
realisieren. Ich benutze einen AtMega644 ( Datenblatt: 
http://www.atmel.com/dyn/resources/prod_documents/doc8011.pdf )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!!!

von Sven B. (svenba)


Lesenswert?

Kann mir hier keiner helfen?
Hab bis jetzt folgendes:
1
; Erst auswählen welcher Int(0 bis 2) mit High.
2
;   hier: PCInt0 weil Pin für Touch an PA4 = PCInt4 = INT0
3
        lds    temp1,EIMSK
4
        sbr    temp1, 0<< INT2 | 0<<INT1 | 1<<INT0
5
        sts    EIMSK,temp1
6
;  Flanke H/L, L/H oder Low Pegel einstellen 
7
        lds    temp1,EICRA
8
        sbr    temp1,  0<<ISC01 | 0<<ISC00  ; Low Level löst Int aus
9
        sts    EICRA,temp1      
10
      
11
    /*    lds    temp1,EIFR
12
        sbr    temp1, 1<<INTF2 | 1<<INTF1 | 1<<INTF0
13
        sts    EIFR,temp1
14
*/
15
        
16
; Welche Pin-Gruppe?
17
        lds temp1, pcicr
18
        sbr temp1, 1 << PCIE0
19
        sts pcicr, temp1
20
;Welcher Pin in Gruppe genau?
21
        lds temp1, pcmsk0
22
        sbr temp1, 1 << pcINT4    ; PA4 als Auslöser
23
        sts pcmsk0, temp1
24
        
25
      ;  sei  ; Alle Interrupts an
26
Touch_ruhe:
27
    
28
        sbi  Touch_DDR, Y_minus  ; alles auf Ausgang
29
        sbi  Touch_DDR, Y_plus
30
       sbi  Touch_DDR, X_plus
31
      cbi  Touch_DDR, X_minus    ; Interruptauslöser !!
32
???????????????????????????
33
        cbi  Touch_Control, Y_minus  ; Y Auf 0V
34
        cbi  Touch_Control, Y_plus  
35
        sbi  Touch_Control, X_Plus    ; Xplus auf High
36
      ;  cbi  Touch_control ,X_minus; pullup an

von Hab 3 Display´s (Gast)


Lesenswert?

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

von allu (Gast)


Lesenswert?


von Hobby-Bastler (Gast)


Lesenswert?

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

von Hab 3 Display´s (Gast)


Lesenswert?

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?

von Hannes L. (hannes)


Lesenswert?

> 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.

...

von ML (Gast)


Angehängte Dateien:

Lesenswert?

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

von Hobby-Bastler (Gast)


Lesenswert?

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

von Sven B. (svenba)


Lesenswert?

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:
1
touch_beruehrt:
2
3
          push temp1
4
          in temp1, sreg
5
          push temp1
6
7
          rcall touch_speichern_x
8
          rcall touch_speichern_y
9
          rcall touch_auswerten
10
          
11
          pop temp1
12
          out sreg, temp1
13
          pop temp1
14
          reti
So wird das Touch in Ruhe geschaltet:
1
Touch_ruhe:
2
    
3
        sbi  Touch_DDR, Y_minus  ; alles auf Ausgang
4
        sbi  Touch_DDR, Y_plus
5
       sbi  Touch_DDR, X_plus
6
      cbi  Touch_DDR, X_minus    ; Interruptauslöser !!
7
8
        cbi  Touch_Control, Y_minus  ; Y Auf 0V
9
        ;cbi  Touch_Control, Y_plus  
10
        ;sbi  Touch_Control, X_Plus    ; Xplus auf High
11
        cbi  Touch_control ,X_minus; pullup an

Hilfe, rauf mir langsam die Haare...

von Hannes L. (hannes)


Lesenswert?

> 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.

...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.