Forum: Compiler & IDEs ATmega64 und AVR-GCC: Compiler macht Murks


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jochen F. (jamesy)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bin gerade am Haare ausraufen. Seit mehreren Wochen komme ich mit 
einem Projekt mit ATmega64 nicht weiter. Ich habe das 
Atmelstudio7-Projekt als ZIP angehängt.
Im Grunde geht es bisher um einfaches Bit-Banging zum Initialisieren von 
D/A-Wandlern (seriell). Wie ich es auch anstelle, aus der Sub wr_voltdac 
kommt er nicht mehr zurück, sondern initialisiert nach einer Weile neu, 
der Zyklus geht von vorne los. Wie man sieht, habe ich jede Menge 
probiert, aber ich übersehe wohl etwas Grundlegendes. Es kann doch nicht 
sein, daß ich aus einer aufwärts zählenden FOR-Schleife die 24 Impulse 
des Clock bekomme und abwärts zählend eine Dauerkette, zum Beispiel. Die 
nicht veränderte Routine ist wr_sampdac, da kann man die ursprüngliche 
Idee ablesen. Im LSS-File taucht Code auf, der nie aufgerufen wird, aber 
welcher, der ausgeführt werden wird, taucht teilweise nicht auf.
Da extrem viele Personen mit AVR-GCC produktiv schaffen (ich ab und an 
seit 11 Jahren), kann es im Grunde nicht der Compiler sein. Aber wo 
biege ich falsch ab? Was übersehe ich?
Gruß, Jochen DH6FAZ

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Jochen F. schrieb:
> der Sub wr_voltdac kommt er nicht mehr zurück

http://nongnu.org/avr-libc/user-manual/FAQ.html#faq_fuses

(ATmega64 ist in jeglicher Hinsicht der kleine Bruder des ATmega128.)

von Jochen F. (jamesy)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,
vielen Dank. Also doch Anfängerfehler von mir!
Sonst habe ich eigentlich immer den ATMega 48 verwendet.
73 de DH6FAZ

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Jochen F. schrieb:
> Also doch Anfängerfehler von mir!

Naja, mittlerweile ist die M103C-Fuse eher ein Überbleibsel aus sehr
lange zurückliegender Zeit.  Insofern nicht unverständlich, dass man
bei einem ATmega64 da nicht gleich drauf kommt.

von Oliver S. (oliverso)


Bewertung
0 lesenswert
nicht lesenswert
Wobei die Frage doch eher lauten sollte: Warum überhaupt noch ein 
Mega64?

Oliver

von Jochen F. (jamesy)


Bewertung
0 lesenswert
nicht lesenswert
Was hätte ich nehmen sollen? Der läßt sich (noch) löten und hat 64K bzw 
im gleichen Gehäuse 128K Programmspeicher. Den IC hat mein Vorgänger auf 
der Position gewählt, ist 10 Jahre her.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Jochen F. schrieb:
> Der läßt sich (noch) löten und hat 64K bzw im gleichen Gehäuse 128K
> Programmspeicher.

ATmega1281 hat auch das gleiche Gehäuse und komplett kompatibles
Pinout, ist aber in mancher Hinsicht eine Runde moderner.

Ist aber egal, wenn der 64er es tut, als ATmega64A ist er nach wie
vor im Programm bei Microchip.

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]
  • [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.