Atmega8 Speicher zu klein

(Firma: Privat) #2298497
Lesenswert?

Moin Forum,

bin neu hier im Forum und hoffe Ihr könnt mir weiterhelfen.
Also....
Mir hat jemand eine Schaltung gebaut auf welcher ein Atmega8 verbaut 
ist.
Nun habe ich das Problem das ich die 8kb Grenze erreicht habe und mein 
Programm ist noch nicht ganz fertig :-)
Kann ich den Atmega8 einfach auslöten und einen Atmega16 einbauen??
Oder kann ich den Speicher erweitern ?

Vielen Vielen dank für Eure Hilfe.

So long

Brainy
Gast #2298509
Lesenswert?

naja, der Atmega16 ist ja nicht zum ATmega8 pinkompatibel, der hat noch 
nichtmal das selber Gehaeuse. Ich wuerde daher eher zu einem 
Atmega168(16kB) oder Atmega328(32kB) raten. Soweit ich weiss sind die 
alle pinkompatibel, ggf. einfach in der Parametric Search bei Atmel 
nachsehen ;-)
#2298516
Lesenswert?

Ohne dich da jetzt irgendwie angreifen zu wollen oder ähnliches...

Ich weiß ja nicht wie viel Erfahrung du im der Programmierung von µCs 
hast, aber kann es vielleicht sein, dass du entweder ziemlichen 
Spaghetticode produzierst oder anderweitg Platz verschwendest?

Ich weiß ja auch nicht wie umfangreich dein Projekt ist, aber in die 
8kb bekommt man schon das ein oder andere rein :)

Sag doch mal was du da baust / programmierst...
(Firma: Privat) #2298550
Lesenswert?

Moin Moin,

erstmal vielen Dank für die vielen und raschen Antworten.
Ich habe einen Kameradolly gebaut der mit einem Schrittmotor gesteuert 
wird.

Hauptsächlich steuert der Atmega den Schrittmotor und die den Auslöser.

Im Programm kann man verschiedene Punkte auswählen.
Automatisch  Manuell  Links  Rechts  Endschalter / Umkehr bei 
Endschalter / Geschwindigkeit wird mit Poti gesteuert.

Alle "Menüpunkte" werden im Display angezeigt. Und alles 
Idiotensicher..... Welcher Taster macht was.

Ich könnte wohl viel Platz im Programm sparen wenn ich die 
Variablenbezeichung abkürzt.

Also nicht mehr Anzeigewert1 sondern AZW1.

War halt am Anfang etwas übersichtlicher.

Danke nochmals. Aber bevor ich einen Atmega einbaue der nicht 100% 
kompatibel ist lass ich es so und verkleiner das Programm.

Vielen Dank

So long

Brainy
#2298559
Lesenswert?

Martin Goerke schrieb:
> Ich könnte wohl viel Platz im Programm sparen wenn ich die
> Variablenbezeichung abkürzt.
>
> Also nicht mehr Anzeigewert1 sondern AZW1.

Das Spart keinen Platz. Nachdem der Compiler an deinem Code war, sind 
die Variablennamen alle Weg, die kommen nicht in den Atmega...


Befürchtung: Schätzt du deine Programmgröße an der Dateigröße deines 
.c-Sourcecodes ein?
Gast #2298584
Lesenswert?

Tach auch,

Martin Goerke schrieb:
>Nein, das Kompilierte Programm ist 8KB groß.
>Darum bleibt die Steuerung wohl auch bei enem bestimmten Punkt stehen,
>weil der Rest fehlt ?

Das kann ich mir beim besten Willen nicht vorstellen. Während des 
Proggens kann man prüfen ob Kompilat und gespeichertes Programm 
identisch sind. Sollte das Prog nicht komplett auf dem IC sein --> 
Fehlermeldung. Meine Vermutung: Während der Laufzeit wird Speicher für 
Operationen benötigt der nicht mehr vorhanden/verfügbar ist, der 
klassische Buffer Overflow.




Gruß diskman
Gast #2298585
Lesenswert?

Hallo,

welches Programmfile ist 8K groß? Das .hex? Da wäre Faktor 2,x völlig 
normal, weil der Code als Ascii-Hex gespeichert wird.
Gibt der Bascom-Compiler denn keine Warnung aus, wenn das Codelimit 
erreicht ist?
Gast #2298586
Lesenswert?

Hi

>Stimmt auf etwas über 4kb aber mein kompiliertes Programm hat dann
>trotzdem mehr als 8 KB.
>Irgendwie komisch ?!?!?!?!?

Wenn du das Hex-File meinst, das ist ca. 2,3x grösser als der 
eigentliche Code.

MfG Spess
(Firma: Privat) #2298606
Lesenswert?

Ok, dann hier mal mein Programm. Aber NICHT lachen :-)

Das Programm habe ich angehängt, ist aber noch nicht fertig. Da im Teil 
"Fahren" was nicht stimmt.

In dem Teil hier bliebt die Steuerung stehen.

...
Fahren:
Do

Gosub Berechnen

Loop
...

Die Steuerung spring hier her und dann parkt sie.
Wenn ich hier noch Do einen Goto einfüge sprint er dorthin.
Ansonsten wars das.

Danke für Eure Hilfe.

So long

Brainy
Angehängte Dateien:
(Firma: Privat) #2298636
Lesenswert?

Hallo,
danke für den Tip.
Ich habe eben grad den Fehler gefunden.
Es Reicht nicht in "Fahren" nur ein Gosub zu Berechnen ich muss den Wert 
auch anzeigen lassen.

Jetzt geht es weiter.

Achso..... beim Flashen zeig er 2904 von 8902 an, sollte also reichen.

So long

Brainy

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren