Hallo! Ich möchte für eine Steuerung einen ATMega32 verwenden aber der interne RAM (2k) ist für diese Aufgabe zu wenig. Da ein ganzer haufen variablen, arrays usw. verwendet werden müssen. (Ich progge mit AVR-GCC) Ich habe gelesen, dass man da einen externen RAM "drankleben" kann. Wie funktioniert das? Gib es irgentwo Schlatungs-beispiele? Wie sieht das Softwareseitig aus? Muss man bei der Programmierung "manuell" auf den RAM zugreifen, oder läuft das genauso wie beim internen RAM...? Ich habe schon ein wenig rum gesucht, aber nix richtiges gefunden. Also schonmal danke für die Antworten und ein Frohes Fest! MfG Sascha
Ein RAM kannst Du da zwar anschalten, allerdings geht das dann nur per Port-IO, also grottenlangsam, weil Du das komplett selber programmieren musst. Das nimmt Dir der Compiler nicht ab. Was Du möchtest, bieten Dir nur die Mega 162/64/128 bzw. 8515. Nur die haben ein externes Speicherinterface.
Man braucht nur äußerst selten viel RAM auf MCs, deshalb haben die auch so wenig. Man muß nur überlegen, welche Variablen wirklich über die gesamte Programmlaufzeit gültig sein müssen. Ich habe früher auch nicht den Sinn lokaler Variablen eingesehen, bis ich MCs programmiert habe. Und da geht es oh Wunder ganz einfach mal eben 1kByte an lokalen Variablen in nur 128Byte RAM unterzubringen. Ist alles nur eine Frage des Programmierstils. Peter
Hallo, ich hab schon mal ein RAM-Baustein am Mega161 dragehängt. Der 161 hat dazu die Adress- und Datenleitungen herausgeführt. Man muss nur noch ein Bit im Register setzten und schon wird er Externe Speicher angesprochen. Ich hab den Speicher jedoch manuell angesteuert: dem Compiler hab ich gesagt, dass ich nur den Internen Speicher verwende. Für ein Paar große Arrays (1kb) hab ich die Adresse dann im Externen Speicher definiert. Der Compiler hat zwar eine Warnung geschrieben, aber es funktioniert wunderbar. Zuerst wollte ich zwar auch, dass der Compiler die großen Arrays selbst verwaltet, aber CodeVision kommt wohl nicht mit dem Externen Speicher zurecht. Jedenfalls wenn ich den ext. Speicher im Compiler aktiviert habe, kam vom Compiler eine Fehlermeldung über einen Interruptvektor. (Kann mir jedoch keinen Reim auf den zusammenhang machen, aber was sollst...). Wie das jedoch mit AVR-GCC aussieht kann ich dir nicht sagen. Versuchs mal mit der Suche-funktion. Vor ein paar Tagen war glaub ich ein Beitrag über dieses Tema im Forum. Gruß, Florian
Hallo! Also ich habt mir schonmal sehr geholfen! Ich bin noch nicht sicher, wieviel RAM ich genau brauchen werde, denn ich hab das nur so "PI mal Daumen" gerechnet. evtl. werde ich ein paar Lookup-Tables in den internen EEPROM auslagern.
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.