A test program for LTC2601 / Mikroe DAC 2 Click peripheral.

Dependencies:   LTC2601

Committer:
elelthvd
Date:
Tue Aug 25 14:16:52 2020 +0800
Revision:
0:56f33267019d
Child:
1:5e314f1c924c
Add LTC2601 class and example code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
elelthvd 0:56f33267019d 1 #include "mbed.h"
elelthvd 0:56f33267019d 2 #include "ltc2601.h"
elelthvd 0:56f33267019d 3
elelthvd 0:56f33267019d 4 // SPI for DISCO_F746NG board w/Mikro Arduino Click Shield
elelthvd 0:56f33267019d 5 SPI spi(SPI_MOSI, SPI_MISO, SPI_SCK);
elelthvd 0:56f33267019d 6 #define D_CS D9 // PWM_OUT // MikroBUS 2
elelthvd 0:56f33267019d 7 #define D_INTR D3 // PB_4 // MikroBUS 2
elelthvd 0:56f33267019d 8 #define D_RST A2 // PF_9 // MikroBUS 2
elelthvd 0:56f33267019d 9 // #define D_CS D10 // SPI_CS // MikroBUS 1
elelthvd 0:56f33267019d 10 // #define D_INTR D2 // PG_6 // MikroBUS 1
elelthvd 0:56f33267019d 11 // #define D_RST A3 // PF_8 // MikroBUS 1
elelthvd 0:56f33267019d 12
elelthvd 0:56f33267019d 13 // Instance
elelthvd 0:56f33267019d 14 LTC2601 mikroe_dac2_click(&spi, D_CS, D_RST);
elelthvd 0:56f33267019d 15
elelthvd 0:56f33267019d 16 int main() {
elelthvd 0:56f33267019d 17
elelthvd 0:56f33267019d 18 printf("LTC2601 Testing\n");
elelthvd 0:56f33267019d 19
elelthvd 0:56f33267019d 20 while (1) {
elelthvd 0:56f33267019d 21
elelthvd 0:56f33267019d 22 mikroe_dac2_click.hwReset();
elelthvd 0:56f33267019d 23 printf("Hardware Reset\n");
elelthvd 0:56f33267019d 24
elelthvd 0:56f33267019d 25 for (int v=0; v<6; v++) {
elelthvd 0:56f33267019d 26 mikroe_dac2_click.updateVoltage((float)v);
elelthvd 0:56f33267019d 27 printf("Set Voltage: %fV\n", (float)v);
elelthvd 0:56f33267019d 28 ThisThread::sleep_for(2000ms);
elelthvd 0:56f33267019d 29 }
elelthvd 0:56f33267019d 30
elelthvd 0:56f33267019d 31 for (int i=0; i<4; i++) {
elelthvd 0:56f33267019d 32 printf("Ramping 0...0xFFFF 10us step...\n");
elelthvd 0:56f33267019d 33 for (uint16_t v=0; v<0xFFFF; v++) {
elelthvd 0:56f33267019d 34 mikroe_dac2_click.updateVoltage(v);
elelthvd 0:56f33267019d 35 wait_us(10); // Settling time typ. 7us
elelthvd 0:56f33267019d 36 }
elelthvd 0:56f33267019d 37 }
elelthvd 0:56f33267019d 38 printf("Ramping Done.\n");
elelthvd 0:56f33267019d 39
elelthvd 0:56f33267019d 40 mikroe_dac2_click.powerDown();
elelthvd 0:56f33267019d 41 printf("Power Down.\n");
elelthvd 0:56f33267019d 42
elelthvd 0:56f33267019d 43 ThisThread::sleep_for(2000ms);
elelthvd 0:56f33267019d 44
elelthvd 0:56f33267019d 45 }
elelthvd 0:56f33267019d 46 }