/* */ /* ad5932.h */ /* */ /* Routinen zur Ansteuerung des AD5932 DDS-Chips über LPC2294 */ /* */ /* (2008) Universität Stuttgart / IZFM (Dipl.-Ing.(FH) Klaus Skibowski) */ /* */ /* geändert auf ATMega88 und einen AD5932 */ /* */ /* Version: 0.2 */ /* Datum: 22.02.2010 */ /* Name: Martin Ernst */ /*****************************************************************************/ #ifndef AD5932_H #define AD5932_H // AD5932 Registeradressen #define AD5932_CONTROL 0x0000 #define AD5932_N_INC 0x1000 #define AD5932_DELTA_F_LOW 0x2000 #define AD5932_DELTA_F_HIGH 0x3000 #define AD5932_T_INT 0x4000 #define AD5932_FSTART_LOW 0xC000 #define AD5932_FSTART_HIGH 0xD000 // Control register bits #define AD5932_B24 0x0800 #define AD5932_DAC_ENABLE 0x0400 #define AD5932_SINE_TRI 0x0200 #define AD5932_MSBOUTEN 0x0100 #define AD5932_TRIG_INC 0x0020 #define AD5932_SYNCSEL 0x0008 #define AD5932_SYNCOUTEN 0x0004 //#define AD5932_RESERVED // #define FIXED_WAVEFORM_CYCLES 0x00 #define FIXED_CLOCK_PERIODS 0x01 #define WAVEFORM_SINUS 0x01 #define WAVEFORM_TRIANGLE 0x00 #define TIMEBASE_MULTILPLIER_X1 0x00 #define TIMEBASE_MULTILPLIER_X5 0x01 #define TIMEBASE_MULTILPLIER_X100 0x02 #define TIMEBASE_MULTILPLIER_X500 0x03 //#define SYNCOUT_DDS1 ((IOPIN0 & 0x00080000)>0) #define DDS1 1 unsigned int control_reg; unsigned int tb_multiplier; unsigned int tb_mult; unsigned int n_inc; unsigned int t_int; unsigned long delta_f; unsigned long startfrequenz,endfrequenz_dds1,wobbelfrequenz_dds1; //unsigned long mclk; unsigned int sweep_delay; // sweep delay in s unsigned short sweep_status; float scandurchlauf; double mclk_faktor; double mclk; unsigned long startdelay; unsigned short waveform; void ad5932_write(unsigned int wert); //void ad5932_write_freq(unsigned int wert); void ad5932_set_frequency(double wert); void ad5932_set_delta_f(double wert); void ad5932_set_n_inc(unsigned int wert); void ad5932_set_increment_interval(unsigned char mode, unsigned int wert); void ad5932_start(void); void ad5932_reset(void); void ad5932_init(void); #endif