annotate DDSBes.h @ 45:b47b97cfd050

Fix output frequency read back in DDS Fox driver The FTW registry value was read back wrong due to an integer overflow in the conversion from bytes string to double. This should fix the "jumps" seen in the application of the frequency dedrifting.
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Wed, 10 Oct 2012 12:14:01 +0200
parents d9aae7d7f2c6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
1 //
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
2 // Title: DDSBes.h
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
3 // Purpose: header for the Besancon DDS crypto-class
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
4 //
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
5 // Created on: by YLC
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
6 // Copyright: syrte. All Rights Reserved.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
7 //
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
8 //==============================================================================
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
9
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
10 #ifndef __DDSBES_H__
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
11 #define __DDSBES_H__
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
12
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
13 #ifdef __cplusplus
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
14 extern "C" {
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
15 #endif
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
16
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
17
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
18 // DDSBes_Data : the data of crypto class DDSBesancon
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
19
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
20 typedef struct {
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
21 double ClockFrequency ; // in Hz
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
22 double Frequency ; // the real frequency (in Hz) which is at the DDS output
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
23 double Amplitude ;
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
24 } DDSBes_Data ;
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
25
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
26
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
27 /************** Member Function Declarations (Private) **************/
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
28
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
29 static int delai(int t);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
30 static int Strb_adress(unsigned char ad);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
31 static int Strb_data(unsigned char da);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
32 static int Strb_nWrite(void);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
33 static int Strb_Update(void);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
34 static int Strb_MReset(void);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
35
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
36
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
37 /************** Member Function Declarations (Public) **************/
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
38
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
39 extern void DDSBes_Initialize(DDSBes_Data * Instance);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
40 extern void DDSBes_Close(DDSBes_Data * Instance);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
41 extern void DDSBes_SetClockFrequency(DDSBes_Data * Instance, double ClockFrequency);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
42 extern void DDSBes_SetFrequency(DDSBes_Data * Instance, double Frequency); // In Instance->Frequency, the real output frequency is stored
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
43 // (<> from requested frequency due to rounding effect
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
44 extern void DDSBes_SetAmplitude(DDSBes_Data * Instance, int Amplitude);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
45
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
46 #ifdef __cplusplus
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
47 }
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
48 #endif
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
49
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
50 #endif /* ndef __DDSBES_H__ */