Kul funktion i Hex Workshop 4.2

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Henrik
Inlägg: 661
Blev medlem: 26 maj 2003, 23:39:14
Ort: Göteborg
Kontakt:

Kul funktion i Hex Workshop 4.2

Inlägg 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
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Inlägg 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
Användarvisningsbild
Henrik
Inlägg: 661
Blev medlem: 26 maj 2003, 23:39:14
Ort: Göteborg
Kontakt:

Inlägg 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++;
	}
}
Användarvisningsbild
JimmyAndersson
Inlägg: 26578
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg 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.)
Skriv svar