Hallo, ich habe hier einen Mega32 am laufen und nun braucht mein Programm welches ich in Bascom geschrieben habe zuviel Platz im Chip. Die Platine habe ich schon fertig, daher bin ich auf DIL40 begrenzt. Ich habe meine Sachen in Abschnitten aufgebaut und alle einzelln getestet(Zeit, Temp, Menü usw...) Nun habe ich alles zusammenkopiert und mein Programm kompiliert ohne Fehler durch. Nur leider sagt er mir, das mein Programmcode für den Chip zu gross ist. Mega32 ist eingestellt. Was kann ich machen, damit ich mein Code in den Chip bekomme? Bräuchte fast den doppelten Speicher, da Bascom sagt, das der Code 186% vom verfügbaren Speicher braucht. Oder... ??? mfG
Der Mega64 ist nicht kompatibel, der ist im TQFP64. Mega644/Mega644P sind genau richtig.
Gute Frage... Mein Programmcode ist zu gross. Den Mega64 finde ich aber nicht als DIL40 Und ich weis nicht, ob der 644 in DIL40 mit halb soviel Eeprom und RAM ausreicht. Vom Flash-Memory hat der doppelt soviel wie der Mega32.
Verguckt? Der Mega644/Mega644P hat genau wie der Mega64 doppelt so viel FLASH/SRAM/EEPROM wie der Mega32 - 64K/4K/2K.
Bei Reichelt ist der 644 mit 64kB Flash 512Eeprom und 1kBRam angegeben. Wo bekomme ich einen 644x mit Dil40 und 64K/4K/2K?
Na, von Reichelt? Ist doch egal was die schreiben, was zählt ist, was im Datenblatt steht. Und ansonsten CSD, Artikel-Nummer 30174. Edit: Du hast in den Papier-Katalog gesehen, nicht wahr? Der ist sowieso reichlich mit Fehlern gespickt.
das was bei Reichelt steht muss ncht immer stimmen. Den Mega644 gibts nur in der einen von ATMEL angegebenen Version. Reichelt bekommt keine 2te Wahl mit weniger Speicher geliefert !!!!
Wenn du noch mehr Speicher brauchst, musst du auf den ATmega1284P warten: 128 KiB ROM und 16 KiB SRAM. Der ist im neuen RZRAVEN drin.
Quark, bei Reichelt steht da genau garnix zu. Nur im dortigen Datenblatt, und da dann die korrekte Angabe... Augen auf! Btw: Deine Frage hättest du dir auch locker mit einem Blick ins Datenblatt des 32er und mit etwas nachdenken, des 644 beantworten können...
EDIT: Grade gesehen das du dich wohl auf den Blätterkatalog beziehst, in dem es tatsächlich falsch steht. Der 644 hat korrekterweise 64K Flash, 4K SRAM und 2K EEPROM. Ansonsten: http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC#760
Also nehme ich den hier: http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A363;GROUPID=2959;ARTICLE=68176;START=0;SORT=-preis;OFFSET=16;SID=22FarvjdS4ARYAAGkyNSc1e3c2594e8d5d5a8cb2e7b3ed65034c2 Aber was mache ich mit dem Quarz, ich habe einen 8Mhz dran. Läuft der da auch ???
Roland Praml wrote:
> Evtl könnte man aber auch den Code optimieren...
Das sowiso. In C würde ich erstmal -Os reinmachen aber Bascom...
Eh so ne Seuche...
Wie bitte verbrät man 60KB Speicher?
Den Code habe ich schon geschrumpft. Das meiste sind das Menü und die Zeit Temp Abfragen.
> Aber was mache ich mit dem Quarz, ich habe einen 8Mhz dran. > Läuft der da auch ??? Ist das Dein erstes Projekt mit einem Mikro-Controller?
Jörg Wunsch wrote: > Wenn du noch mehr Speicher brauchst, musst du auf den ATmega1284P > warten: 128 KiB ROM und 16 KiB SRAM. Der ist im neuen RZRAVEN drin. Nicht nur da. AVRStudio kennt ihn auch: m1284Pdef.inc Gruß Jadeclaw.
kommt auf das Projekt an. Bin mir auch ziemlich sicher, dass man das noch eindampfen könnte und mit dem Mega32 auskommen sollte - habe aber auch keine Ahnung von Bascom-Optimierungen. Fängt aber auch mit dem eigenen Programmierstil an, da kann oft der beste Compiler nichts draus machen. Wenn es aber ein Einzel-Bastler-Projekt ist und es einen pinkompatiblen Ersatz gibt - warum nicht?
@ Rudolph R. Ja so ziemlich - sonst würde ich hier nicht fragen... @ all Das meiste an dem Programmcode ist der Menüaufbau. Es ist eine Auqariumsteuerung für 4 Aquarien mit einen Haufen Sachen zum steuern. Daher kann ich den Code nicht weiter schrumpfen. Habe schon verschiedene Sachen rausgeschmissen zum testen.
Du kannst den 644V mit bis zu 10MHz betreiben. Dein 8MHz Quarz geht also. Sofern du kein sehr genaues Timing benötigst, kannst den aber auch weglassen und den internen RC Oszillator verwenden. Der läuft auch mit 8MHz (+/- 2% oder so). Kennt deine Bascom Version den 644? Der ist relativ neu. Die FUSE Bits sind wahrscheinlich auch etwas anders. Wenn du den so wie er geliefert wird einsteckst, läuft der Bursche mit 1MHz und aktivierter JTAG Schnittstelle. D. h. einige Pins funktionieren dann nicht. Mit Menüs kann man sich ein Programm leicht aufblasen, da soetwas dazu verführt redundanten Code zu schreiben. Der ist dann zwar übersichtlich und flexibel aber eben auch groß. Vielleicht solltest du dein Vorgehensmodell überdenken. Der 644 ist ja sonst auch schon bald am Ende.
> Ja so ziemlich - sonst würde ich hier nicht fragen...
Na dann wünsche ich Dir, dass das alles so klappt wie Du Dir das
vorstellst!
Der Code ist fertig und läuft auf einer anderen Platine mit einen M128 schon. Von daher mache ich mir da keine Gedanken. Bascom kennt den 644 schon und kompiliert auch durch. JTAG und Fusebits sind mir klar.
@ Tim T. > Ansonsten: > http://www.atmel.com/dyn/products/param_table.asp?... Wenn ich mir die Spalten mit den A/D-Kanälen ansehe, inwieweit kann ich dann den anderen Angaben vertrauen?
Sorry http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC#760
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.