Sunteți pe pagina 1din 4

Initializam oscilatorul intern la 40MHz conform documentului pdf de pe pagina

producatorului: http://ww1.microchip.com/downloads/en/AppNotes/93062A.pdf

Initializam efectele:
int runners_init(_Q15* mod_buf, unsigned int mod_buf_sz, _Q15* delays_buf,
unsigned int delays_buf_sz)
{
err += hard_clipping_init(&hc, NULL);
err += runner_add_effect(&runners[0], &hc, hard_clipping_set_params,
hard_clipping_process);
}
Initializam modulul ADC: rezolutie 12bit, DAC rezolutie 16bit, butoane input, afisaj
LCD 7 segmente, conform registrilor dsPIC33FJ128GPX02/X04 specifici de pe pagina
producatorului: http://ww1.microchip.com/downloads/en/DeviceDoc/70292E.pdf ,
functiile sunt gasite in fisierul initialization.h respectiv initialization.c
Functiile pentru procesarea butoanelor si a afisajului sunt gasite in fisierul
processing.h respectiv processing.c
Cateva caracte definite pentru afisajul cu 7 segmente
#define b_CHARACTER 0b01111100
#define C_CHARACTER 0b00111001
#define d_CHARACTER 0b01011110
#define E_CHARACTER 0b01111001

#define F_CHARACTER 0b01110001


#define H_CHARACTER 0b01110110
#define L_CHARACTER 0b00111000
#define r_CHARACTER 0b01010000
#define S_CHARACTER 0b01101101
#define t_CHARACTER 0b01111000
#define BYPASS_CHARACTER 0b01000000
-------- imagine cu conexiunile si datasheet 7segment ---Activam intreruperile pentru canalul stang de conversie analog-digital DAC1LIE din
registrul de control intreruperi IEC4:
IEC4bits.DAC1LIE = 1;
Mai multe detalii despre libraria libq.h se gasesc in documentul de pe pagina
producatorului: http://ww1.microchip.com/downloads/en/DeviceDoc/51456E.pdf ce
contine definitii pentru tipul _Q15 ca short si _Q16 ca long si functii ce efectueaza
operatii cu virgula fixa (Fixed Point Math Library), functii folosite de procesoarele
digitale de semanl (DSP), in cazul nostrum dsPIC33FJ128GP802.

In timpul intreruperii executam urmatoarele linii de cod


AD1CON1bits.SAMP = 0; // Start next ADC convertion

sample=ADC1BUF0;

controls_processing();
samples_processing(sample, &out_sample_L, &out_sample_R);
DAC1RDAT=out_sample_R;
//DAC1RDAT=sample;

IFS4bits.DAC1RIF = 0; // Clear Right Channel Interrupt Flag

Bypassing Effects
You can bypass an effect in order to hear the region or project without it. This retains all changes
youve made to the effect parameters.

Bibliografie
https://code.google.com/p/ii-project-cs-utcluj/wiki/DSP

http://en.wikipedia.org/wiki/Q_%28number_format%29 despre numere in virgule fixa

S-ar putea să vă placă și