AD9833
Chipsi
chipsi@volny.cz
Pátek Prosinec 7 16:09:06 CET 2007
Zdravim,
nejak jsem asi vypadl ze seznamu prispevatelu, ci co ?
0x000FC00 => 0000 0000 0000 1111 1100 0000 0000
MSB 00 0000 0011 1111
LSB 00 0000 0000 0000
Celé 0000 0000 1111 1100 0000 0000 0000
Takze bych si tipl, ze to je priklad pro 0x00FC000
našel jsem příklad, takže jednoduše, asi je to v manuálu BLBĚ.
#define MCLK 16384000L // DDS master clock
#define FDELTA MCLK/(65536L*4096) // Frequency increment
(Master clock / 228)
#define FREQ_HZ 1048576L * 256 / MCLK // Phase increment
corresponding to the f(Hz) frequency
// ** SetFreq -- the function calculates the phase value
// corresponding to the specified frequency.
//
unsigned long SetFreq(unsigned f)
{
unsigned long ul = f * (unsigned long)ScaleFct;
return FREQ_HZ * ul;
}
//
// ** PutFreq -- the function loads selected AD9833 frequency register
// with the appropriate value (Freq0 or Freq1 locations)
//
void PutFreq(char rg)
{
unsigned n;
unsigned f;
unsigned long p;
if (rg) // FREG1 is selected
{
n = FREG1_ADR;
f = Freq1;
}
else { // FREG0 is selected
n = FREG0_ADR;
f = Freq0;
}
p = SetFreq(f); // Convert frequency
Out9833 (n | (p & 0x3FFF)); // Write LSB half stuff
Out9833 (n | ((p>>14) & 0x3FFF)); // Write MSB half stuff
}
Hezky vikend
Chipsi
Šula Miloš napsal(a):
> Zdravim,
> muzete mi nekdo poradit, jak soudruzi v analogu pocitaji 14bit LSB a 14bit MSB z 28bitove hodnoty ?
>
> http://www.analog.com/UploadedFiles/Data_Sheets/AD9833.pdf
> strana 12 tabulka 5.
>
> 28bit hodnotu 0x000FC00 tam prevadi na 14bit LSB 0x0000 a 14bit MSB 0x003F ???
>
> Milos
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
Další informace o konferenci Hw-list