mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LC7981 C - Code umschreiben?


Autor: Matze G. (maroni666)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich würde gerne wissen, ob es möglich ist den Code so umzuändern das 
dieser auch auf einem Atmega8 laufen würde.

Wenn das möglich ist würde ich mich freuen wenn Ihr mir ein paar Tipps 
geben könntet was ich dann alles zu beachten habe bzw. wo ich überall 
Einstellungen ändern muss.

Habe es schon ein wenig versucht aber ohne Erfolg. Bin angefangen in der 
MFile die MCU einzustellen. Und dann habe ich versucht mittels AVR 
STudio weitere Einstellungen zu ändern.

Bin noch dabei mich in die Materie der Atmega’s und Co. Weiter 
einzuarbeiten.

Gruß Matze und schon mal vorab Danke

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich würde gerne wissen, ob es möglich ist den Code so umzuändern das
>dieser auch auf einem Atmega8 laufen würde.
AVR Memory Usage
----------------
Device: atmega16

Program:   14884 bytes (90.8% Full)
(.text + .data + .bootloader)

Kein Problem, du musst den Code nur auf ca. die Hälfte verkleinern. 
Welche Hälfte drin bleiben kann, musst du allerdings selber rausfinden.

Vermutlich sind die Fonts die größten Speicherfresser, die müssen dann 
halt raus. Der Rest ist simpel, Mega8 und Mega32 sind ziemlich verwandt, 
einfach für den Mega8 kompilieren, bei Fehlern beide Datenblätter 
konsultieren, und den Code anpassen.

Oliver

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Code in deinem Anhang ist für den Atmega32. Bei meinem älteren 
WinAVR (2007) und -Os Einstellung kommt raus:

AVR Memory Usage
----------------
Device: atmega32

Program:   15052 bytes (45.9% Full)
(.text + .data + .bootloader)

Data:         31 bytes (1.5% Full)
(.data + .bss + .noinit)

EEPROM:       16 bytes (1.6% Full)
(.eeprom)

Der Program Teil passt nicht in das Flash eines Atmega8, Zusätzlich wird 
in den adc-Routinen für den Touchscreen der Compare Match Modus des 
Timer0 benutzt. Den kennt der Atmega6 nicht. Ich würde mir einen 
Atmega32 beschaffen. In 2-3 Tagen kann der doch da sein.

Autor: Matze G. (maroni666)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK danke für die Hilfe. Scheint wirklich einfacher zu sein mit nem 32er.

Der ist ja auch vorhanden ich dachte nur das würde durch abspecken mit 
nem 8er gehen. Ist aber doch zu aufwendig.

Mit dem 32er habe ich im AVR Studio das Problem das ich beim Builden 
immer diese Meldung bekomme:

In file included from ../main.c:12:
../include/lc7981.h:37:24: error: portsmacro.h: No such file or 
directory
make: *** [main.o] Error 1
Build failed with 1 errors and 0 warnings...


vielleicht könnt Ihr mir sagen warum.

Gruß Matze

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hatte ich auch. Gelöst habe ich es, indem ich portsmacro.h in den Ordner 
include verschoben habe.

Autor: Matze G. (maroni666)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hatte ich auch gedacht aber jetzt bekomme ich 90 errors angefangen 
mit :

C:\Dokumente und 
Einstellungen\Hermann\Desktop\dis2\roboter32\default/../main.c:36: 
undefined reference to `lcd_init'


Fehler 90
C:\Dokumente und 
Einstellungen\Hermann\Desktop\dis2\roboter32\default/../writing_demo.c:1 
26:  undefined reference to `touch_debounce_off'
make: *** [eee.elf] Error 1
Build failed with 90 errors and 2 warnings...


Darum habe ich erstmal gefragt weil ich das mit der Datei verschieben 
auch schon getestet habe.

Autor: Stefan B. (stefan) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wahrscheinlich hast du nicht alle relevanten Dateien im Projekt. Bei mir 
sieht es wie oben aus.

Projektoptionen sind Atmega32, 8000000Hz, -Os
Custom Options ADD: -std=gnu99

AVR Studio hat glcd_matze_gw.c selbst angelegt und ich habe main.c in 
dieses zu Beginn leere glcd_matze_gw.c eingefügt.

Autor: Matze G. (maroni666)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke hatte eine Datei vergessen.

Ich habe meine Schaltung wie in dem Bild aufgebaut nur ohne den Pin 12 
und 13 aber wenn ich mich richtig informiert habe brauche ich die ja 
nicht unbedingt oder. Also ohne Kondensator beschaltet bzw. sind die 
PINs nicht beschaltet bei mir.

Aber leider bleibt mein Display schwarz. Kontrast lässt sich regeln mit 
nem Atmega8 funktioniert das Display.

Waran kann das noch liegen? was kann ich ändern bzw. noch testen.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AREF an Vcc ist keine gute Idee.

100nF Kondensatoren jeweils zwischen 10-11 und 30-31 wären eine gute 
Idee.

An AVR ISP muss in deiner Schaltung was angeschlossen sein:
* die Stromversorgung
* etwas, das RESET uf HIGH zieht, da sonst der Atmega8 nicht läuft

Gemäß touch.h ist dein Touchscreen falsch angeschlossen.

Wie sieht es mit der JTAG Fuse bei deinem Atmega32 aus? Die muss 
disabled sein, weil du Pins des JTAG-Ports für dein Display benutzen 
willst.

Wenn du mit Pin 12-13 den Quarz meinst: Denke daran den Atmega32 von den 
Default 1 MHz auf 8 MHz zu fusen (Bedeutung der CKDIV8 Fuse ansehen).

Autor: Matze G. (maroni666)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, warte auf meine Bestellung dann werde ich mich wieder melden.

Kannst Du oder jemand anders mir noch einen Tipp oder Forenbeitrag 
geben/zeigen wie ich die Eingabe auf dem Touch auswerten kann, damit ich 
damit dann einen Port bzw. eine Led ein/aus schalten kann.

Gruß Matze

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, da bin ich wirklich überfragt. Eine Abfrage eines Touchscreens 
habe ich noch nicht programmiert. Insgesamt habe ich noch nix praktisch 
mit ADC gemacht. Mein derzeitiges Opfer ist ein Attiny2313 (hält sich 
tapfer!) und der hat kein ADC. Ich sollte mal wechseln, denn das Ding 
mit dem ADC will ich selbst auch mal lernen und verstehen.

Autor: Matze G. (maroni666)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

jetzt habe ich es hinbekommen, das ich zumindest schonmal etwas auf dem 
Display sehen kann, aber das was angezeigt wird ist sehr verschwommen. 
Man kann ein Hello World erahnen und unten die Buchstaben von A-Z.

Foto folgt noch.

Vielleicht hatte jemand das gleiche Problem und kann mir weiter helfen.

Gruß

Matze

Autor: Matze G. (maroni666)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei mein Bild,

und meine Fuse Einstellungen.

Ich hoffe jemand kann mir weiterhelfen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.