Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SPI.h>
- #define CHIP_SEL_DAC 31
- uint32_t sample_data = 0b00000000000000000000000000000000;
- // { PRFX , CTRL , ADDR , DDDDAAAATTTTAAAA , FTUR }
- uint32_t set_a_to_2_5 = 0b00000010000001111111111111110000; // { 0000 , 0010 , 0000 , 0111111111111111 , 0000 }
- uint32_t set_a_to_1_25 = 0b00000010000000111111111111110000; // { 0000 , 0010 , 0000 , 0011111111111111 , 0000 }
- uint32_t set_b_to_1_25 = 0b00000010000100111111111111110000; // { 0000 , 0010 , 0001 , 0011111111111111 , 0000 }
- uint32_t set_c_to_0_625 = 0b00000010001000011111111111110000; // { 0000 , 0010 , 0010 , 0001111111111111 , 0000 }
- uint32_t set_d_to_0_3125 = 0b00000010001100001111111111110000; // { 0000 , 0010 , 0011 , 0000111111111111 , 0000 }
- uint32_t set_g_to_2_5 = 0b00000010010101111111111111110000; // { 0000 , 0010 , 0101 , 0111111111111111 , 0000 }
- uint32_t int_ref_on_flexible_mode = 0b00001001000010100000000000000000; // { 0000 , 1001 , 0000 , 1010000000000000 , 0000 }
- void setup() {
- delay(1000);
- // Turn off LED's
- pinMode(16, OUTPUT);
- pinMode(17, OUTPUT);
- pinMode(18, OUTPUT);
- pinMode(19, OUTPUT);
- digitalWrite(16, LOW);
- digitalWrite(17, LOW);
- digitalWrite(18, LOW);
- digitalWrite(19, LOW);
- // set the chip select pin as an output:
- pinMode (CHIP_SEL_DAC, OUTPUT);
- // initialize SPI1:
- SPI1.setDataMode(SPI_MODE1);
- SPI1.begin();
- delay(20);
- SPI1.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE1));
- digitalWrite(CHIP_SEL_DAC,LOW);
- delayMicroseconds(1);
- SPI1.transfer(int_ref_on_flexible_mode >> 24);
- SPI1.transfer(int_ref_on_flexible_mode >> 16);
- SPI1.transfer(int_ref_on_flexible_mode >> 8);
- SPI1.transfer(int_ref_on_flexible_mode);
- digitalWrite(CHIP_SEL_DAC,HIGH);
- SPI1.endTransaction();
- delay(1000);
- }
- void loop() {
- SPI1.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE1));
- digitalWrite(CHIP_SEL_DAC, LOW);
- SPI1.transfer(set_a_to_2_5 >> 24);
- SPI1.transfer(set_a_to_2_5 >> 16);
- SPI1.transfer(set_a_to_2_5 >> 8);
- SPI1.transfer(set_a_to_2_5);
- digitalWrite(CHIP_SEL_DAC, HIGH);
- SPI1.endTransaction();
- delay(1000);
- SPI1.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE1));
- digitalWrite(CHIP_SEL_DAC, LOW);
- SPI1.transfer(set_a_to_1_25 >> 24);
- SPI1.transfer(set_a_to_1_25 >> 16);
- SPI1.transfer(set_a_to_1_25 >> 8);
- SPI1.transfer(set_a_to_1_25);
- digitalWrite(CHIP_SEL_DAC, HIGH);
- SPI1.endTransaction();
- delay(1000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement