Subversion Repository Public Repository

amptest

This repository has no backups
This repository's network speed is throttled to 100KB/sec

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <Arduino.h>
#include <SPI.h>
#include "dac.h"



//#define USE_SPI


#ifdef USE_SPI

#define CS_PIN    10  // SYNC
#define LDAC_PIN  8


#define MODEBIT_PD0  0x1000
#define MODEBIT_PD1  0x2000
#define MODEBIT_BUF  0x4000
#define MODEBIT_ChB  0x8000


#else

#define DAC_PIN   DAC0

#endif // USE_SPI







void dac_init()
{

#if defined(USE_SPI)

    pinMode(CS_PIN, OUTPUT);
    digitalWrite(CS_PIN, HIGH);

    pinMode(LDAC_PIN, OUTPUT);
    digitalWrite(LDAC_PIN, HIGH);

    SPI.begin();
    SPI.setBitOrder(MSBFIRST);
    SPI.setDataMode(SPI_MODE1);

#else

    pinMode(DAC_PIN, OUTPUT);
    analogWriteResolution(12);

#endif // __SAM3X8E__
}


void dac_write(uint32_t dac)
{
    uint32_t value = dac;

#if defined(USE_SPI)

    //value |= MODEBIT_ChB; // channel B

    digitalWrite(CS_PIN, LOW);
    delay(1);
    SPI.transfer((value >> 8) & 0xFF);
    SPI.transfer(value & 0xFF);
    digitalWrite(CS_PIN, HIGH);

    digitalWrite(LDAC_PIN, LOW);
    delay(1);
    digitalWrite(LDAC_PIN, HIGH);

#else

    analogWrite(DAC_PIN, value);

#endif //  __SAM3X8E__
}


Commits for amptest/trunk/dac.cpp

Diff revisions: vs.
Revision Author Commited Message
2 DimirtiusGu picture DimirtiusGu Wed 20 Jul, 2022 00:52:33 +0000