logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

TMS320 - podwajacz częstotliwości

stargate1200 16 Mar 2010 10:35 2013 5
REKLAMA
  • #1 7836515
    stargate1200
    Poziom 10  
    Witam,
    mam nadzieję że nie powieliłem wątku, w każdym razie nie znalazłem nic podobnego. Dopiero zaczynam przygodę z tym procesorem, i prosiłbym o pomoc - ma ktoś jakiś prosty algorytm podwajacza częstotliwości? na razie mój program wygląda tak:
    
    #include <std.h>
    #include <log.h>
    #include "p2cfg.h"
    
    unsigned int probka; // pelna 32-bitowa próbka
    short int probkal, probkar; // 16 bit - próbka lewa, probka prawa
    float xl, xr; // zmiennoprzecinkowy lewy i prawy kanał
    
    void main()
    {
    	LOG_printf(&wiadomosc,"Start programu");
    	MCBSP_enableRcv(hMcbsp1); //
    	MCBSP_enableXmt(hMcbsp1); //
    	IER|=0x2000; // 
    }
    
    void przerwanie_rcv()
    {
    	probka=MCBSP_read(hMcbsp1); // odczyt z przetwornika A/C do zmiennej probka
    	
    	probkal=(probka&0xFF); // wyłuskanie próbek dla lewego i prawego kanału
    	probkar=((probka>>8)&0xFF);
    
    	// tutaj mam zamiar wstawić algorytm
    
    
    	probka=probkal+(probkar<<8); // złożenie 32-bitowej probki z 2 16-bitowych kanałów
    
    	MCBSP_write(hMcbsp1, probka); // zapis zmiennej do przetwornika C/A
    }
    

    Nie jestem również pewien, czy dobrze pobieram próbki dla lewego i prawego kanału - czy młodsze 16-bitów to lewy czy prawy kanał?
    Byłbym bardzo wdzięczny za pomoc, pozdrawiam!
  • REKLAMA
  • #2 7838140
    stargate1200
    Poziom 10  
    Znalazłem już dzisiaj odpowiedź - gdyby kogoś interesowało można po prostu wykorzystać wzór na cosinus podwojonego kąta.
  • REKLAMA
  • #3 7847338
    Genos182
    Poziom 13  
    
    probka=probkal+(probkar<<8); // złożenie 32-bitowej probki z 2 16-bitowych kanałów 
    


    nie masz tu czasem błędu, bo traktujesz te próbki jako 8mio bitowe a z komentarza wynika ze są one 16 bitowe?
  • REKLAMA
  • #4 7866784
    stargate1200
    Poziom 10  
    Tak, z przyzwyczajenia dałem 8:)
  • REKLAMA
  • #5 7949751
    msch08
    Poziom 10  
    stargate1200 napisał:
    Znalazłem już dzisiaj odpowiedź - gdyby kogoś interesowało można po prostu wykorzystać wzór na cosinus podwojonego kąta.


    wszystko fajnie
    ale jak pozbyć się zniekształceń amplitudy:?:
  • #6 7958876
    stargate1200
    Poziom 10  
    Ostatnio nic z tym nie robiłem, ale jeśli są takie to oznacza że pracuje się na złych typach danych (np. przy rzutowaniu float na short int trzeba zaokrąglać) ewentualnie przekracza się zakres napięcia wyjściowego.
REKLAMA