Advertisement
Guest User

Untitled

a guest
Aug 15th, 2019
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.57 KB | None | 0 0
  1. #include <SPI.h>
  2. #define CHIP_SEL_DAC 31
  3.  
  4. uint32_t sample_data = 0b00000000000000000000000000000000;
  5.                                                                           // { PRFX , CTRL , ADDR , DDDDAAAATTTTAAAA , FTUR }
  6. uint32_t set_a_to_2_5   = 0b00000010000001111111111111110000;             // { 0000 , 0010 , 0000 , 0111111111111111 , 0000 }
  7. uint32_t set_a_to_1_25  = 0b00000010000000111111111111110000;             // { 0000 , 0010 , 0000 , 0011111111111111 , 0000 }
  8. uint32_t set_b_to_1_25  = 0b00000010000100111111111111110000;             // { 0000 , 0010 , 0001 , 0011111111111111 , 0000 }
  9. uint32_t set_c_to_0_625  = 0b00000010001000011111111111110000;            // { 0000 , 0010 , 0010 , 0001111111111111 , 0000 }
  10. uint32_t set_d_to_0_3125 = 0b00000010001100001111111111110000;            // { 0000 , 0010 , 0011 , 0000111111111111 , 0000 }
  11. uint32_t set_g_to_2_5   = 0b00000010010101111111111111110000;             // { 0000 , 0010 , 0101 , 0111111111111111 , 0000 }
  12. uint32_t int_ref_on_flexible_mode = 0b00001001000010100000000000000000;   // { 0000 , 1001 , 0000 , 1010000000000000 , 0000 }
  13.  
  14. void setup() {
  15.   delay(1000);
  16.   // Turn off LED's
  17.   pinMode(16, OUTPUT);
  18.   pinMode(17, OUTPUT);
  19.   pinMode(18, OUTPUT);
  20.   pinMode(19, OUTPUT);
  21.   digitalWrite(16, LOW);
  22.   digitalWrite(17, LOW);
  23.   digitalWrite(18, LOW);
  24.   digitalWrite(19, LOW);
  25.   // set the chip select pin as an output:
  26.   pinMode (CHIP_SEL_DAC, OUTPUT);
  27.   // initialize SPI1:
  28.   SPI1.setDataMode(SPI_MODE1);
  29.   SPI1.begin();
  30.   delay(20);
  31.  
  32.  
  33.   SPI1.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE1));
  34.   digitalWrite(CHIP_SEL_DAC,LOW);
  35.   delayMicroseconds(1);
  36.   SPI1.transfer(int_ref_on_flexible_mode >> 24);
  37.   SPI1.transfer(int_ref_on_flexible_mode >> 16);
  38.   SPI1.transfer(int_ref_on_flexible_mode >> 8);
  39.   SPI1.transfer(int_ref_on_flexible_mode);
  40.   digitalWrite(CHIP_SEL_DAC,HIGH);
  41.   SPI1.endTransaction();
  42.   delay(1000);
  43.  
  44. }
  45.  
  46. void loop() {
  47.   SPI1.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE1));
  48.   digitalWrite(CHIP_SEL_DAC, LOW);
  49.   SPI1.transfer(set_a_to_2_5 >> 24);
  50.   SPI1.transfer(set_a_to_2_5 >> 16);
  51.   SPI1.transfer(set_a_to_2_5 >> 8);
  52.   SPI1.transfer(set_a_to_2_5);
  53.   digitalWrite(CHIP_SEL_DAC, HIGH);
  54.   SPI1.endTransaction();
  55.   delay(1000);
  56.   SPI1.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE1));
  57.   digitalWrite(CHIP_SEL_DAC, LOW);
  58.   SPI1.transfer(set_a_to_1_25 >> 24);
  59.   SPI1.transfer(set_a_to_1_25 >> 16);
  60.   SPI1.transfer(set_a_to_1_25 >> 8);
  61.   SPI1.transfer(set_a_to_1_25);
  62.   digitalWrite(CHIP_SEL_DAC, HIGH);
  63.   SPI1.endTransaction();
  64.   delay(1000);
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement