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
Kul funktion i Hex Workshop 4.2
Kul funktion i Hex Workshop 4.2
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
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
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 :-/
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++;
}
}- JimmyAndersson
- Inlägg: 26651
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
