Sida 1 av 1

Kul funktion i Hex Workshop 4.2

Postat: 4 september 2005, 01:07:35
av Henrik
Jag tänkte spela några .wav-ljudsnuttar ur en pic, och tänkte helt sonika lägga in alla samples i en vektor. "Attans vad jobbigt" att formattera och fixa och dona för att få till alla komman och grejer tänker jag. Kanske måste man dra igång excel eller nåt och joxa.

Testar att öppna filen i Hex Workshop, markerar allt, väljer Copy As... C-source??? OK tänker jag verkar lovande. Häpp! Filen helt klar för inkludering i main, vektorn klar :D

Postat: 4 september 2005, 12:51:09
av Kaggen
Nu vart jag nyfiken! :)

Hur stora ljudsnuttar lyckas du klämma in i en PIC? Finns det nån PIC med så mycket minne att du får ut nåt vettigt ur den?

Mats

Postat: 4 september 2005, 14:06:43
av Henrik
Jag kör med en 18f258 så jag kan väl inte säga att det går att ösa musik i timmar direkt =)
Några sekunders tal i bra kvalitet är inga som helst problem, min kompilator (CC8E) är såpass smart att den komprimerar lite här och där på konstanter.
Bara att räkna, ju högre samplingsfrekvens desto kortare ljud blir det ju såklart. Några sekunder räcker för min applikation. wav-filen matas ut på en pwm-pinne, filtreras, dc-avkopplas och förstärks med en lm368 på enklaste sätt.

Så här matar jag fram nytt pwm-värde. Ingen rocket science men bara för att visa principen. Ska putta in slingan i ett interrupt som utförs varje samplingsperiod, men av någon anledning funkade det i mplab men inte på riktigt :-/

Kod: Markera allt

uns16 a=0;
while (1) {
	if ( TMR1IF == 1 ) {
		TMR1IF = 0;
		TMR1L = 0x62;
		TMR1H = 0xff;
		if ( a < 4358 )				// wav-filen är 4358 samples
			CCPR1L = wav_vektor[a];	// PWM duty cycle
		else {
			CCPR1L = 0x80;	
			if ( a > 9000 )	
				a = 0;
			}
		a++;
	}
}

Postat: 5 september 2005, 22:11:21
av JimmyAndersson
Någon som vet om det går att göra samma saker i andra program?
(På Amiga-tiden hade jag något program som kunde "räkna om" ljud till kod. Trodde nästan den kunskapen gått förlorad.)