LC7981 C - Code umschreiben?

OP #1568524
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
Angehängte Dateien:
Gast
>ich würde gerne wissen, ob es möglich ist den Code so umzuändern das
>dieser auch auf einem Atmega8 laufen würde.
1
AVR Memory Usage
2
----------------
3
Device: atmega16
4

5
Program:   14884 bytes (90.8% Full)
6
(.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
Persönliche Seite
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.
OP
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
OP
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.
OP
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.
Angehängte Dateien:
Persönliche Seite
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).
OP
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
Persönliche Seite
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.
OP
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.