| Motor de Búsqueda de Datasheet de Componentes Electrónicos |
|
AD7715 Datasheet(PDF) 34 Page - Analog Devices |
|
|
|||||||||||||||||||||||||||||
AD7715 Datasheet(HTML) 34 Page - Analog Devices |
|
34 / 40 page ![]() AD7715 Rev. D | Page 34 of 40 CODE FOR SETTING UP THE AD7715 The C Code for Interfacing AD7715 to 68HC11 section gives a set of read and write routines in C code for interfacing the 68HC11 microcontroller to the AD7715. The sample program sets up the various registers on the AD7715 and reads 1000 samples from the part into the 68HC11. The setup conditions on the part are exactly the same as those outlined for the flowchart of Figure 10. In the example code given here, the DRDY output is polled to determine if a new valid word is available in the data register. The sequence of the events in this program are as follows: 1. Write to the communications register, setting the gain to 1 with standby inactive. 2. Write to the setup register, setting bipolar mode, buffer off, no filter synchronization, confirming a clock frequency of 2.4576 MHz, setting the output rate for 60 Hz and initiating a self-calibration. 3. Poll the DRDY output. 4. Read the data from the data register. 5. Loop around doing Step 3 and Step 4 until the specified number of samples have been taken. C CODE FOR INTERFACING AD7715 TO 68HC11 /* This program has read and write routines for the 68HC11 to interface to the AD7715 and the sample program sets the various registers and then reads 1000 samples from the part. */ #include <math.h> #include <io6811.h> #define NUM_SAMPLES 1000 /* change the number of data samples */ #define MAX_REG_LENGTH 2 /* this says that the max length of a register is 2 bytes */ Writetoreg (int); Read (int,char); char *datapointer = store; char store[NUM_SAMPLES*MAX_REG_LENGTH + 30]; void main() { /* the only pin that is programmed here from the 68HC11 is the /CS and this is why the PC2 bit of PORTC is made as an output */ char a; DDRC = 0x04; /* PC2 is an output the rest of the port bits are inputs */ PORTC | = 0x04; /* make the /CS line high */ Writetoreg(0x10); /* set the gain to 1, standby off and set the next operation as write to the setup register */ Writetoreg(0x68); /* set bipolar mode, buffer off, no filter sync, confirm clock as 2.4576MHz, set output rate to 60Hz and do a self calibration */ while(PORTC & 0x10); /* wait for /DRDY to go low */ for(a=0;a<NUM_SAMPLES;a++); { Writetoreg(0x38); /*set the next operation for 16 bit read from the data register */ Read(NUM_SAMPLES,2); } } Writetoreg(int byteword); { int q; SPCR = 0x3f; SPCR = 0X7f; /* this sets the WiredOR mode(DWOM=1), Master mode(MSTR=1), SCK idles high(CPOL=1), /SS can be low always (CPHA=1), lowest clock speed(slowest speed which is master clock /32 */ DDRD = 0x18; /* SCK, MOSI outputs */ q = SPSR; q = SPDR; /* the read of the staus register and of the data register is needed to clear the interrupt which tells the user that the data transfer is complete */ |
|
Enlace URL |
| ¿ALLDATASHEET es útil para Ud.? [ DONATE ] |
Todo acerca de Alldatasheet | Publicidad | Contáctenos | Política de Privacidad | Enlace a la hoja de datos | Intercambio de Enlaces | Lista de Fabricantes All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |