Hallo zusammen,
ich müsste mit einem MSP430 einen Sound abspielen. Dazu will ich einfach
die Samples auf dem ADC ausgeben, auf nen Audioverstärker und dann auf
nen Lautsprecher. Ich vermute hier nicht das Problem. Das Problem wird
wohl eher, den Sound ohne zusätzliche Bauteile (also im Flash-ROM) des
MSP zu speichern. Zumindest mit dem Code Composter. Oder, und das ist
die Frage, liege ich da falsch?
Mal folgende Annahme. Ich möchte 8kHz, 8bit und 3 Sekunden speichern.
Dann wären wir ja schon bei 24kByte + Code
Ist die Gesamtgröße des beschreibbaren Flash bei der light-Version auf
16kB beschränkt oder nur die Code-Größe? Ich möchte größtenteils ja
Daten darin speichern, der Code wird sich stark in Grenzen halten. Hab
das noch nie ausprobiert und auch grad kein laufendes System zur Hand,
in das man mal Daten schreiben könnte.
Sollte das mit dem CCE nicht gehen, hat jemand schon mal mit der
Platinum Version mit nem MSP430 gearbeitet? Geht das da? zumindest in
den ersten 30 Tagen?
Danke schonmal!
Grüße
Robert
>die Samples auf dem ADC ausgeben
Der ADC gibt nichts analoges aus.
Ein ADC ist ein Analog nach Digital Wandler, er ließt Analogwerte ein
und liefert sie als digitale Repräsentation.
Wenn das nicht das Problem ist, dann würde ich einfach den
unbeschränkten MSPGCC verwenden und das Codegrößenproblem gibt es nicht
mehr.
Grüße,
Peter
Ahh.. sorry, ich meinte natürlich den DAC (MSP430F2619). Danke erstmal
Peter für den Hinweis und die Idee mit dem MSPGCC.
Ja, daran hatte ich auch schon gedacht. Hab halt bisher immer mit dem
Code Composer gearbeitet.
Gibt es für die freie Umgebung nen Debugger? Würde gerne über SpyByWire
debuggen können und das geht wahrscheinlich nur mit dem CC oder?
Hat jemand schon probiert, mehr als 16kB mit dem CC auf nen MSP zu
bekommen, wenn der Großteil davon Daten sind? Oder kann das auf die
Schnelle mal jemand probieren? Es is ein recht dringendes Problem und
ich würde gerne am WE die Schematics machen und hab bis dahin keinen
Zugriff mehr auf ein System, mit dem ich das selbst ausprobieren kann.
Grüße und danke
Robert
Es gibt den gdb als Debugger, ich glaube, der mspgcc lässt sich sogar
irgendwie in Code Composer Studio integrieren.
Das mit der Codegröße hab ich nur mal mit einer alten Version von Code
Composer Essentials ausprobiert, da war es so, dass zu den 16 kB nur das
Codesegment zählt, nicht das Datensegment.
Wie das mit Code Composer Studio jetzt ist, weiß ich nicht. Ich verwende
die Version 4 davon nicht.
Grüße,
Peter
Wenn Du die abzuspielenden Daten nicht im Programm selber unterbringst,
sondern das Programm diese Daten über eine der seriellen Schnittstelle
laden und selbst ins Flash-ROM programmieren lässt, hast Du kein
Codegrößenproblem. Und die erweiterte Funktionalität, daß Du Deinen
Aufbau ohne Neuprogrammierung mit neuen Audiodaten beschicken kannst.
Da hast du keine Probleme. Einfach die Daten als Assembler-Listing
einfügen und gut ist. Das wird nicht auf die Beschränkung angerechnet.
Und: Lass den Composter, nimm IAR.
DC8 0x01 0x02 ...
@Rufus: Danke für den Vorschlag. Ich werde auf jeden Fall eine serielle
Schnittstelle vorsehen, um mir diesen Weg offen zu halten.
@Pothead: IAR gibts nur als Demo-Version für 30 Tage oder? Für dieses
Projekt wäre das auf jeden Fall ausreichend. Muss, wie gesagt, ziemlich
schnell fertig werden. Fand halt den CC bisher immer recht komfortabel,
weil man nix groß konfigurieren musste.
@Pothead: Noch ne Frage: Ist das unten schon das Assembler Listing? Hab
sowas noch nie gemacht. Kannst du ein Minimalbeispiel posten, in dem man
irgendwo die Daten als ASM Listing definiert und in C-Code drauf
zugreift? Oder ein Link, wo ich das finde. Das wäre super.
Danke und Gruß
Robert
Wenn es geht, Constantenarrays hinzuzufügen, ohne, dass das als
Codegröße gezählt wird, dann auch in C:
1
constsignedintsound[]=
2
{
3
1,24,-15,27//usw.
4
};
Der Zugriff funktioniert genau so wie auf normale Arrays, mit der
Ausnahme, dass die Daten durch das "const" eben im Programmspeicher
liegen. Das ist beim MSP430 wegen der Von-Neumann-Architektur viel
einfacher als beim AVR.
1
signedintDestination;
2
Destination=sound[0];//ließt das erste Sample und schreibt es in das Ram (Variable Destination)
Sauber Peter! Das wäre natürlich am einfachsten, wenn es so gehen würde.
So hatte ich mir das eigentlich erhofft. Ich werde es erstmal so
probieren.
Gruß und vielen Dank
Robert