martaczaska

dsplib_sin

May 2nd, 2020
560
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.02 KB | None | 0 0
  1. #include <dsplib.h>
  2.  
  3. #define NUM_SAMPLES 5000
  4. #define krok 137
  5.  
  6. int pila[NUM_SAMPLES];
  7. int prostokatny[NUM_SAMPLES];
  8. int trojkatny[NUM_SAMPLES];
  9. int sinus[NUM_SAMPLES];
  10. int dsplib_sin[NUM_SAMPLES];
  11.  
  12. void saw(int* tablica, unsigned int dl_tablicy, unsigned int step){
  13.     int amplituda = 0;
  14.     int i;
  15.     tablica[0] = 0;
  16.     for(i = 1; i < dl_tablicy; i++){
  17.         amplituda = amplituda + step;
  18.         tablica[i] = amplituda;
  19.     }
  20. }
  21.  
  22. void rect(int* tablica_prost, unsigned int dl_tablicy, unsigned int step, int prog){
  23.         int amplituda = 0;
  24.         int i;
  25.         for(i = 1; i < dl_tablicy; i++){
  26.             if(amplituda < prog){
  27.                 tablica_prost[i] = 32767;
  28.             }
  29.             else{
  30.                 tablica_prost[i] = -32768;
  31.             }
  32.             amplituda = amplituda + step;
  33.         }
  34. }
  35.  
  36. void tri(int* tablica_tri, unsigned int dl_tablicy, unsigned int step){
  37.     signed int amplituda = 0;
  38.     signed int bezwzgledna = 0;
  39.         int i;
  40.         tablica_tri[0] = 0;
  41.         for(i = 1; i < dl_tablicy; i++){
  42.             amplituda = amplituda + step;
  43.  
  44.             bezwzgledna = amplituda < 0 ? -amplituda : amplituda;
  45.             tablica_tri[i] = ((bezwzgledna<<1) - 32767);
  46.         }
  47. }
  48.  
  49. /*void sint(int* tablica_sin, unsigned int dl_tablicy, unsigned int step){
  50.         int amplituda = 0;
  51.         int i;
  52.         long a_1 = pi;
  53.         long a_2 = pow(pi, 3)/3;
  54.         long a_3 = pow(pi, 5)/5;
  55.         long a_4 = pow(pi, 7)/7;
  56.         tablica_sin[0] = 0;
  57.         for(i = 1; i < dl_tablicy; i++){
  58.             amplituda = amplituda + step;
  59.             tablica_sin[i] = a_1*amplituda - a_2*pow(amplituda, 3) + a_3*pow(amplituda, 5) - a_4*pow(amplituda, 7);
  60.         }
  61. }*/
  62.  
  63.  
  64. void main(void) {
  65.     saw(pila, NUM_SAMPLES, krok);
  66.     //rect(prostokatny, NUM_SAMPLES, krok, 0);
  67.     //tri(trojkatny, NUM_SAMPLES, krok);
  68.     //sint(sinus, NUM_SAMPLES, krok);
  69.     //ushort oflag = sine (DATA *pila, DATA *dsplib_sin, 5000);
  70.     sine((DATA*)pila, (DATA*)dsplib_sin, NUM_SAMPLES);
  71.  
  72.     while (1); // do not exit
  73. }
Advertisement
Add Comment
Please, Sign In to add comment