11#ifndef ANALOGL_OUTPUT_H
12#define ANALOG_OUTPUT_H
18const int MAX_OUTPUT = (1 << 8) - 1;
19const int MAX_OUTPUT_10BIT = (1 << 10) - 1;
39 void Init(uint8_t cv_pin, uint8_t led_pin) {
40 pinMode(led_pin, OUTPUT);
42 #define LED_PIN_DEFINED
52 update((val <= MAX_OUTPUT) ? val : MAX_OUTPUT);
61 val = val <= MAX_OUTPUT_10BIT ? val : MAX_OUTPUT_10BIT;
62 val = map(val, 0, MAX_OUTPUT_10BIT, 0, MAX_OUTPUT);
67 inline void High() { update(MAX_OUTPUT); }
70 inline void Low() { update(0); }
84 void update(uint16_t val) {
86 analogWrite(cv_pin_, cv_);
87 #ifdef LED_PIN_DEFINED
88 analogWrite(led_pin_, cv_);
Definition analog_output.h:21
void Init(uint8_t pin)
Initializes an Analog CV Output object.
Definition analog_output.h:28
void Update10bit(int val)
Set the output pin to the given 10 bit value.
Definition analog_output.h:60
void Init(uint8_t cv_pin, uint8_t led_pin)
Initializes an LED & CV Output paired object.
Definition analog_output.h:39
void Low()
Sets the cv output LOW to 0v.
Definition analog_output.h:70
void Update(int val)
Set the output pin to the given 8 bit value.
Definition analog_output.h:51
void High()
Sets the cv output HIGH to about 10v.
Definition analog_output.h:67
uint16_t GetValue()
Return an integer value between 0 and 1023 (0..10v) representing the current value of the output.
Definition analog_output.h:77