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
>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
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.
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
Hatte ich auch. Gelöst habe ich es, indem ich portsmacro.h in den Ordner include verschoben habe.
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.
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.
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.
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).
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
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.
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
Anbei mein Bild, und meine Fuse Einstellungen. Ich hoffe jemand kann mir weiterhelfen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.