/* * File: fixed01.c * Author: kubalik * * Created on 23. brezna 2019, 19:43 */ #include "p33EV32GM002.h" #pragma config FNOSC = FRC // pracujeme s FRC oscilatorem 7.37MHz #pragma config OSCIOFNC = ON //OSC2 is general purpose digital I/O pin #pragma config IOL1WAY = ON //Allow Only One reconfiguration pro PPS #pragma config FWDTEN = OFF // WDT and SWDTEN Disabled Watchdog vypnut // tohle chci pouyit take v assemblerovske casti // proto je to globalni signed _Fract polefract[20]; signed _Fract druha ( signed _Fract hodnota ) ; void uvod( signed _Fract bla, signed _Fract ha ); void prvni ( void ) ; void spolem ( void ) ; void uvod02( void ) ; void treti ( void ); signed _Fract ctvrty ( void ); signed _Fract paty ( signed _Fract neco ); #define FILTER_TAP_NUM 161 const signed _Fract filter_taps[FILTER_TAP_NUM] = { -0.015693732685560447, -0.0008522697816647099, 0.01129438971535318, -0.024184025330936103, -0.01651205258354118, 0.027516158864777845, -0.012604114314555687, -0.037400111521455545, 0.025844679818614096, 0.019980850043373306, -0.032710685283058843, 0.0002337220256771845, 0.036919236566296185, 0.009850903511000283, -0.014632841085080858, 0.008636275731043539, 0.0479678999241291, 0.015577172392353992, -0.03320146161501414, 0.027111371937715387, 0.06036107690603372, -0.02511697179208125, -0.03371309203780883, 0.04677413018031721, 0.031073952463973917, -0.04624966862249345, -0.03088914274399758, 0.04994481058200048, 0.023883056608686358, -0.07416599001435972, -0.016169561828314076, 0.08523339486625024, -0.009204510154168028, -0.08199759362371584, 0.03791475560292475, 0.0840118896839122, -0.03435691900847815, -0.06464290663257, 0.060958147122078594, 0.08408542780048624, -0.06937829310506041, -0.06930118858909677, 0.10349743862639135, 0.04642226285485247, -0.1258310335282142, -0.02573363811514894, 0.11226614410495551, -0.010574098368985142, -0.12643681190997585, 0.006655176807263997, 0.12389150322475222, -0.03380924927459044, -0.1359047481546705, 0.0781300017706844, 0.14100883526372923, -0.09821434686793651, -0.08802004699843351, 0.1416317355057823, 0.08368958993897005, -0.12092461849720694, -0.056221203446781096, 0.13928487200843961, 0.04754328564636143, -0.1817740953168484, -0.040042572237081804, 0.1738408619462532, -0.055167169042397816, -0.20499540711156752, 0.05968419816365713, 0.13251210574343605, -0.08709595412770874, -0.12054165422756584, 0.08767857668460094, 0.19265942109927736, -0.04347413123735993, -0.1400853264718019, 0.2634955573115161, 0.2770542708710473, -0.20701769603860698, 0.024192823717404836, 0.4622759436356173, 0.024192823717404836, -0.20701769603860698, 0.2770542708710473, 0.2634955573115161, -0.1400853264718019, -0.04347413123735993, 0.19265942109927736, 0.08767857668460094, -0.12054165422756584, -0.08709595412770874, 0.13251210574343605, 0.05968419816365713, -0.20499540711156752, -0.055167169042397816, 0.1738408619462532, -0.040042572237081804, -0.1817740953168484, 0.04754328564636143, 0.13928487200843961, -0.056221203446781096, -0.12092461849720694, 0.08368958993897005, 0.1416317355057823, -0.08802004699843351, -0.09821434686793651, 0.14100883526372923, 0.0781300017706844, -0.1359047481546705, -0.03380924927459044, 0.12389150322475222, 0.006655176807263997, -0.12643681190997585, -0.010574098368985142, 0.11226614410495551, -0.02573363811514894, -0.1258310335282142, 0.04642226285485247, 0.10349743862639135, -0.06930118858909677, -0.06937829310506041, 0.08408542780048624, 0.060958147122078594, -0.06464290663257, -0.03435691900847815, 0.0840118896839122, 0.03791475560292475, -0.08199759362371584, -0.009204510154168028, 0.08523339486625024, -0.016169561828314076, -0.07416599001435972, 0.023883056608686358, 0.04994481058200048, -0.03088914274399758, -0.04624966862249345, 0.031073952463973917, 0.04677413018031721, -0.03371309203780883, -0.02511697179208125, 0.06036107690603372, 0.027111371937715387, -0.03320146161501414, 0.015577172392353992, 0.0479678999241291, 0.008636275731043539, -0.014632841085080858, 0.009850903511000283, 0.036919236566296185, 0.0002337220256771845, -0.032710685283058843, 0.019980850043373306, 0.025844679818614096, -0.037400111521455545, -0.012604114314555687, 0.027516158864777845, -0.01651205258354118, -0.024184025330936103, 0.01129438971535318, -0.0008522697816647099, -0.015693732685560447 }; void doregistru( void ); /* * */ void main() { signed _Fract a , b ; unsigned _Fract c ; float d, e, f; int g,h,i; a = filter_taps[0] ; b = filter_taps[1] ; a = filter_taps[50] ; doregistru(); d = 0.25 ; // sem si dejte breakpoint uvod( ( signed _Fract ) 0.5 , ( signed _Fract ) 0.25 ) ; a = (_Fract) d ; prvni(); a = (_Fract) d ; prvni(); a = (_Fract) d ; prvni(); // priklad na nacpani hodnot do promennych v assemblerovske casti a = (_Fract) d ; for ( i=0; i<10;i++ ) { polefract[i] = a; // a = a / 2 ; tohle nejde, michame fract a int a = a * ( ( signed _Fract ) 0.5); // tady promennou vzdy delim dvemi - nasobim 0.5 } spolem(); a = (_Fract) d ; uvod02(); a = ctvrty(); a = ctvrty(); a = ctvrty(); a = ctvrty(); a = ctvrty(); uvod02(); a = paty( (_Fract) 0.25 ); a = paty( (_Fract) 0.5 ); a = paty( (_Fract) 0.125); a = paty( (_Fract) 0.25 ); modulo01(); uvodmY(); pokrY(1); pokrY(5); pokrY(15); pokrY(32); pokrY(64); pokrY(128); pokrY(127); pokrY(256); pokrY(255); pokrY(512); pokrY(513); pokrY(511); while(1) { // sem napiseme to, co se v programu dela porad dokolecka asm(" nop " ); asm(" nop " ); asm(" nop " ); asm(" nop " ); } }