HJÆLP om PIC PROGRAMING med AD9850 signalgenerator

Du skal fange en god bog for at lære C. Søg rundt for anbefalinger.

C har ikke HEX eller DEC variabler.Variablen tuning_freq er en usigneret længe int.I de fleste C compilers, at det er en 32-bit binær værdi.

Hvis du forklare præcist, hvordan du har gemt dit tastatur input cifre, nogen kan hjælpe dig konvertere det til det krævede format for DDS.

Glem ikke - hvis du indtaste Hertz til dit tastatur, skal du skala denne værdi før skrive bytes til DDS.

 
måske det
gør ikke sagen, hvis i C Jeg har decimal værdier eller hexadecimale, right?Jeg mener, i C, jeg kan gøre en og drift mellem en decimal (f.eks 100Hz * prescale) og en hexadecimal (0xFF000000), right?Jeg tror, det
gør ikke sagen coz den compiler vil konvertere alle værdier til ettaller og nuller, right?Am I right?mindst, det er, hvad jeg mener ..hehhehe ..

 
Ja, du kan bruge decimal og hex konstanterne i din C kildekode.Den compiler konverterer dem til binær for sine interne brug.

Men du har ikke forklaret det format af dit tastatur cifre, eller hvordan du har gemt dem i hukommelsen.Vi har brug for at info til at hjælpe dig konvertere det til DDS format.

 
Sir,

hvordan kan vi designe en effektiv LOWPASS filter?

vi har problemer med at minimere den forvrængning af output signaler.

nogen forslag?

 
den foreslåede filter til brug i databladet var en 5-pol elliptiske lavpasfilter 42MHz ..hvordan skal vi gennemføre dette?vores sinusbølge output har brug for en masse arbejde ..sin egentlig ikke forvrides, dets en DAC sinusbølge produktion, vi har svært ved at finjustere signal at have en smidig sinusbølge ..

 
Hvad er dine vanskeligheder med at gennemføre filter?Databladet giver en skematisk, dele listen og PCB layout.Brug god RF byggeteknikker, ikke en rat's-reden breadboard.

Hvis du bruger et langsommere clock end databladet eksempel (100 MHz), så glem ikke at proportionalt nedtrappe low-pass-filter frekvens.Filteret er nødt til at videregive Deres højeste ønske sinewave frekvens og blokere alt over clock frekvens minus Deres højeste ønske sinewave frekvens.

 
vi dnt har et instrument, som kan måle induktans i nH.

kan vi bruge gauge 18 magnetiske trådbunden for vores inductor?

hvis muligt, hvor mange omgange for at gøre 960nH og 680nH?

har vi brug for et centralt for vores inductor?

 
Hi ..
Jeg har lige vide en ting om PIC
som PIC MCU kompatibilitet USB i høj hastighed med en prøve frimware?
og
hvis jeg vil sammenligne PIC med AVR som dem er rart for at spilde tid og lære?

 
Kan nogen hjælpe mig sende 40 bits tuning ord i AD9850 korrekt via seriel lastning fra PIC16F877A?Jeg har brugt denne stil under, men mit output frekvens er langt fra det forventede output frekvens.Når jeg input 1 fra mit tastatur (grænseflader på microcontroller), ca 128Hz er produceret.Ligeledes 10Hz input-output om 1.28kHz.

INPUT er værdien trådte fra tastaturet.TUNINGWORD er min 32bit tuning ord.Da min ønskede frekvens opløsning er 1 Hz, jeg multipliceret / skala min INPUT.TUNINGWORD = INPUT * 53.687091;

/ / 53.687091 er fra formlen 32bit tuning ord = Fout X 2 ^ 32 / ref.Uret i DDS
/ / Fout naturligvis er 0.000001MHz (1 Hz opløsning), ref.Uret er 80MHz

Dette er den C-kode, jeg brugte til at sende 40bits (32bits tuning ord 8 bits fase kontrol ord).# define data RC0# define w_clk RC1# define fq_ud RC2
usignerede int x, y;usignerede længe TUNINGWORD, INPUT;usignerede CHAR temp;
void send40bit (void)(fq_ud = 0;for (x = 0; x <32; x ) / / 32bits tuning ord(temp = TUNINGWORD>> x;data = temp;w_clk = 1; w_clk = 0;)for (y = 0; y <8; y ) / / 8bits fase kontrollere alle nuller(data = 0;w_clk = 1; w_clk = 0;)fq_ud = 1;)
 
Har du en C debugger for at se de variabler indholdet?

1.Har du brug for at kaste "INPUT * 53.687091"?Prøv at direkte tildele 53 til TUNINGWORD før ringer send40bit funktion og bemærker Fout værdi.
2.Er du sikker efter skiftende TUNINGWORD "x" gange til højre, variablen TEMP (usignerede CHAR) hold B7-B0 af 32bits TUNINGWORD?
3.Er du sikker på efter "data = temp" den RC0 (det
er kun en smule) vil få LSBit af "temp" (usignerede CHAR)?Hvordan C compiler håndterer disse opgaver?Har du nogensinde dræbt din nysgerrighed om, hvordan kompileret kode ser i samlevirksomhed?

Dette er en dum sekvens eller en dårlig C færdighedsbehov programmør (og som følge spild af hukommelse kode), hvis jeg gør på denne måde?
Definitely flytte 4 sammenkædet registre (TUNINGWORD>> 31) vil være spild af programkode gange snarere end hukommelse kode.
Code:for (i = 0; i <32; i )

(

hvis ((TUNINGWORD & 1) == 1)

data = 1 / / den mest tåbelige indlejret C overdragelse

anden

data = 0;

tuning_word = tuning_word>> 1;

w_clk = 1; w_clk = 0; / / disse er dum som godt, du kan skrive i samlevirksomhed såvel

)

 

Welcome to EDABoard.com

Sponsor

Back
Top