Hallo, habe ein Projekt mit einem GLCD und HD61830 auf dem Testboard stecken. Mit einem Atmega128 funktioniert es einwandfrei. Nun habe ich anstatt dem Atmega128 einen Atmega32 dran und es funktioniert nichts mehr. Im Programm habe ich lediglich das "#include<mega128.h>" auf "#include<mega32.h>" geändert, Ports sind gleich geblieben. Frequenz, Spannungsversorgung usw. ist ebenfalls gleich. Aber warum kann ich Programm und Hardware nicht wie für den mega128 übernehmen?
habe als Dataport den PortC Bit0-Bit7 und als Controlport den PortB Bit0-Bit4 genutzt. (Beitrag "HD61830 Ansteuerung" bis auf kleine Änderungen quasi dieser code) JTAG ist an PortC, habe JTAGEN in den Fuses deaktiviert. Jetzt sieht man zumindest ein "Rauschen" auf dem Display. Gibt es noch etwas anderes was an den Ports kollidieren könnte? Bzw. muss ich JTAG anders abschalten?
Andre schrieb: > Im Programm habe ich lediglich das "#include<mega128.h>" auf > "#include<mega32.h>" geändert, Ports sind gleich geblieben. Welche Entwicklungsumgebung verwendest du? Doch nicht etwa avr-gcc(Atmel studio und konsorten)? Falls doch: grober Fehler. Immer avr/io.h inkludieren und mit den Typ mit einem Compilerflag definieren. Falls du etwas anderes verwendest, ignoriert bitte alle diesen teil meines Beitrags. Wenn JTAG in den fuses aus ist, dann reicht das völlig. Etwas anderes gibt es auf den verwendeten Ports nicht mehr, das stören könnte, es sei denn du hast es im Code explizit eingeschltet. Gehen andere Teile des Codes? Alle Compilereinstellungen richtig? Hardware in Ordnung? Lass doch mal eine LED blinken. Cheers
Ich nutze CodevisionAVR und habe stdio.h drin. avr/io.h brauche ich da nicht, oder? Etwas anderes nutze ich auf den Ports auch nicht. Kein I2C, kein SPI, oder sonst was. Nur IOs für das Display. Ausser.... ISP was sich zwar nicht mit den Bits überschneidet aber auch auf PortB liegt. Werde gleich mal einen anderen Port versuchen. LED Blinken funktioniert. Compiler und Hardware sollte auch ok sein.
okay, am ISP liegt wohl auch nicht. Habe den Port gewechselt und das selbe Problem. Den mega128 programmiere ich über USB mit Bootloader, den mega32 über ISP. Kann das was mit meinem Problem zutun haben?
1 | ATmega128 ATmega32 |
2 | |
3 | Flash 128k 32k |
4 | EEPROM 4k 1k |
5 | SRAM 4k 2k |
Passt der Speicherbedarf überhaupt zum m32?
:
Bearbeitet durch User
Magnus M. schrieb: > Passt der Speicherbedarf überhaupt zum m32? das wäre dan der nächste grosse punkt. Avr-size mal laufen lassen kann aufschlussreich sein. Aber man kann es auch grob abschätzen, problematisch wird es ja nur bei grossen arrays wie fonts und frame buffern. CodeVisionAVR kenne ich nicht, da kann ich nichts dazu sagen. Ich hätte erwartet, dass die die libraries die selben sind. Aber das kann genau so gut ganz anders sein, gerade bei den hardwareabhängigen. Andre schrieb: > Den mega128 programmiere ich über USB mit Bootloader, den mega32 über > ISP. > Kann das was mit meinem Problem zutun haben? eigentlich nicht, nein
:
Bearbeitet durch User
Ahh :) Beim überprüfen der Größe (beim compilieren mit Codevision) ist mir aufgefallen, dass der Gesamt-verfügbare Speicher noch für den mega128 angezeigt wird. Mann muss in Codevision also nicht nur den passenden header für den mc zufügen sondern auch in den compiler Einstellungen den richtigen mc auswählen. Danke für eure Hilfe! Nun funktioniert es :)
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.