Gast
#3396102
Ich will mit einem PIC12F617 (2kWords, kann Flash selbst auslesen) 1bit-Sound ausgeben. Dazu habe ich die gewünschten zwei Soundclips mit diesem Programm (http://www.romanblack.com/picsound.htm) erzeugt. Wenn man nach .btc exportiert, bekommt man ein Hexfile welches die Bits enthält (e8 03 de f2 ...). Diese Daten möchte ich in den Sourcecode integrieren, allerdings nicht mit einer retlw-Tabelle (entsprechender Speudobefehl DT), sondern indem alle 14bit eines Flash-Words genutzt werden (Speudo-Befehl DA). Die beiden Clips bestehen aus jeweils 7168 Samples, das entspricht 896 Bytes bzw. 512 14bit-Words. Es wird also 1kWord mit Samples belegt, die andere Hälfte ist für den Programmcode. Und das ist das Problem: die Daten liegen als Bytes vor, eine Flashzelle ist aber 14bit breit. Man kann zwar DA 0xE803 DA 0xDEF2... schreiben, das ist aber erstens schreibaufwändig und zweitens werden alle Zahlen auf 14bit begrenzt, aus DA 0xE803 DA 0xDE04 würde DA 0x2803 DA 0x1EF2 werden. Ich suche also eine Möglichkeit, 896 Bytes in 512 14bit-Stücke zu zerteilen und diese in der Form DA 0x3A00 DA 0x3DEF... auszuspucken. Ich vermute das geht am Einfachsten mit einer Linux-Kommandozeile, eine solche ist vorhanden, aber leider keine Kenntnisse von Daten/Stringmanipulation. Im Anhang die beiden Hexfiles, falls jemand damit experimentieren möchte.