Got rid of MCP4725 library. For now MCP4725 DACs used only for gate signals, CV will be back with another DAC
This commit is contained in:
@ -5,13 +5,8 @@
|
|||||||
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
#include "MCP4725.h"
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
MCP4725 DAC1(DAC_1_ADDR);
|
|
||||||
MCP4725 DAC2(DAC_2_ADDR);
|
|
||||||
|
|
||||||
bool updateCV1 = true;
|
bool updateCV1 = true;
|
||||||
bool updateCV2 = true;
|
bool updateCV2 = true;
|
||||||
bool sendGate1 = false;
|
bool sendGate1 = false;
|
||||||
@ -19,6 +14,8 @@ bool sendGate2 = false;
|
|||||||
uint8_t CV1Note;
|
uint8_t CV1Note;
|
||||||
uint8_t CV2Note;
|
uint8_t CV2Note;
|
||||||
|
|
||||||
|
float DACNoteStep;
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
// AcidStepSequencer Interface
|
// AcidStepSequencer Interface
|
||||||
@ -32,12 +29,20 @@ void setup()
|
|||||||
// last pattern user had load before power off
|
// last pattern user had load before power off
|
||||||
loadLastPattern();
|
loadLastPattern();
|
||||||
|
|
||||||
|
DACNoteStep = (1.0 / 12.0) * 4096 / DAC_MAX_VOLTAGE;
|
||||||
|
|
||||||
Wire.begin();
|
Wire.begin();
|
||||||
Wire.setClock(400000);
|
Wire.setClock(400000);
|
||||||
DAC1.begin();
|
Wire.beginTransmission(0x60);
|
||||||
DAC2.begin();
|
Wire.write(0x40);
|
||||||
DAC1.setMaxVoltage(5.1);
|
Wire.write(0x00);
|
||||||
DAC2.setMaxVoltage(5.1);
|
Wire.write(0x00);
|
||||||
|
Wire.endTransmission();
|
||||||
|
Wire.beginTransmission(0x61);
|
||||||
|
Wire.write(0x40);
|
||||||
|
Wire.write(0x00);
|
||||||
|
Wire.write(0x00);
|
||||||
|
Wire.endTransmission();
|
||||||
}
|
}
|
||||||
|
|
||||||
// User interaction goes here
|
// User interaction goes here
|
||||||
|
|||||||
37
CV.ino
37
CV.ino
@ -3,6 +3,11 @@ float noteToVoltage(uint8_t note) {
|
|||||||
return voltage;
|
return voltage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16_t noteToValue(uint8_t note) {
|
||||||
|
uint16_t value = (note - 24) * DACNoteStep;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
void sendCVNote(uint8_t note, uint8_t track) {
|
void sendCVNote(uint8_t note, uint8_t track) {
|
||||||
if (track == 0 && note != CV1Note) {
|
if (track == 0 && note != CV1Note) {
|
||||||
CV1Note = note;
|
CV1Note = note;
|
||||||
@ -34,29 +39,49 @@ void sendGateOff(uint8_t track) {
|
|||||||
|
|
||||||
void sendVoltage(uint8_t voltage, uint8_t dac) {
|
void sendVoltage(uint8_t voltage, uint8_t dac) {
|
||||||
if (dac == 0) {
|
if (dac == 0) {
|
||||||
DAC1.setVoltage(voltage);
|
//DAC1.setVoltage(voltage);
|
||||||
} else {
|
} else {
|
||||||
DAC2.setVoltage(voltage);
|
//DAC2.setVoltage(voltage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void processCV() {
|
void processCV() {
|
||||||
if (updateCV1) {
|
if (updateCV1) {
|
||||||
sendVoltage(noteToVoltage(CV1Note), 0);
|
//sendVoltage(noteToVoltage(CV1Note), 0);
|
||||||
updateCV1 = false;
|
//updateCV1 = false;
|
||||||
}
|
}
|
||||||
if (updateCV2) {
|
if (updateCV2) {
|
||||||
//sendVoltage(noteToVoltage(CV2Note), 1);
|
//sendVoltage(noteToVoltage(CV2Note), 1);
|
||||||
//updateCV2 = false;
|
//updateCV2 = false;
|
||||||
}
|
}
|
||||||
if (sendGate1) {
|
if (sendGate1) {
|
||||||
sendVoltage(5, 1);
|
Wire.beginTransmission(0x60);
|
||||||
|
Wire.write(0x40);
|
||||||
|
Wire.write(0xFF);
|
||||||
|
Wire.write(0xF0);
|
||||||
|
Wire.endTransmission();
|
||||||
|
//sendVoltage(5, 0);
|
||||||
} else {
|
} else {
|
||||||
sendVoltage(0, 1);
|
Wire.beginTransmission(0x60);
|
||||||
|
Wire.write(0x40);
|
||||||
|
Wire.write(0x00);
|
||||||
|
Wire.write(0x00);
|
||||||
|
Wire.endTransmission();
|
||||||
|
//sendVoltage(0, 0);
|
||||||
}
|
}
|
||||||
if (sendGate2) {
|
if (sendGate2) {
|
||||||
|
Wire.beginTransmission(0x61);
|
||||||
|
Wire.write(0x40);
|
||||||
|
Wire.write(0xFF);
|
||||||
|
Wire.write(0xF0);
|
||||||
|
Wire.endTransmission();
|
||||||
//sendVoltage(5, 1);
|
//sendVoltage(5, 1);
|
||||||
} else {
|
} else {
|
||||||
|
Wire.beginTransmission(0x60);
|
||||||
|
Wire.write(0x40);
|
||||||
|
Wire.write(0x00);
|
||||||
|
Wire.write(0x00);
|
||||||
|
Wire.endTransmission();
|
||||||
//sendVoltage(0, 1);
|
//sendVoltage(0, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user