Skip to content

Commit 485a4b4

Browse files
committed
Missing classfile
1 parent e935797 commit 485a4b4

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#include "SigmaDelta.h"
2+
#include "DeviceRegistry.h"
3+
4+
using namespace ZPUino;
5+
6+
void SigmaDelta_class::begin()
7+
{
8+
deviceBegin(VENDOR_ZPUINO, PRODUCT_ZPUINO_SIGMADELTA);
9+
}
10+
void SigmaDelta_class::begin(int pin_left, int pin_right)
11+
{
12+
begin();
13+
if (!isError()) {
14+
setChannelPin(CHANNEL_LEFT, pin_left);
15+
setChannelPin(CHANNEL_RIGHT, pin_right);
16+
}
17+
}
18+
19+
void SigmaDelta_class::setEndianness(endian_t endianess)
20+
{
21+
if (!isError()) {
22+
if (LITTLE_ENDIAN==endianess)
23+
REG(0).setBit(SDLE);
24+
else
25+
REG(0).clearBit(SDLE);
26+
}
27+
}
28+
29+
int SigmaDelta_class::setPins(int left_pin, int right_pin)
30+
{
31+
setChannelPin(CHANNEL_LEFT, left_pin);
32+
setChannelPin(CHANNEL_RIGHT, right_pin);
33+
}
34+
35+
int SigmaDelta_class::setChannelPin(channel_t channel, int pin)
36+
{
37+
int *i_pin = (channel == CHANNEL_LEFT ? &m_leftPin: &m_rightPin);
38+
39+
if (!isError()) {
40+
if (*i_pin>=0)
41+
pinModePPS(*i_pin, LOW);
42+
43+
int ppspin = DeviceRegistry::getPPSOutputPin( getSlot(), channel==CHANNEL_LEFT ? 0: 1);
44+
if (ppspin<0)
45+
return -1;
46+
pinModePPS( pin, HIGH );
47+
outputPinForFunction( pin, ppspin );
48+
49+
*i_pin = pin;
50+
}
51+
return 0;
52+
}
53+
54+
void SigmaDelta_class::setChannelValue(channel_t channel, uint16_t value)
55+
{
56+
uint32_t rv = REG(1);
57+
if (channel==CHANNEL_LEFT) {
58+
rv&=0xffff;
59+
rv|=((uint32_t)value)<<16;
60+
} else {
61+
rv&=0xffff0000;
62+
rv|=value&0xffff;
63+
}
64+
setValues(rv);
65+
}
66+
67+
void SigmaDelta_class::setValues(uint16_t value_left, uint16_t value_right)
68+
{
69+
setValues(((uint32_t)value_left)<<16 | value_right);
70+
}
71+
void SigmaDelta_class::setValues(uint32_t values)
72+
{
73+
REG(1)=values;
74+
}
75+
76+
void SigmaDelta_class::end()
77+
{
78+
if (m_leftPin>=0)
79+
pinModePPS(m_leftPin, LOW);
80+
81+
if (m_rightPin>=0)
82+
pinModePPS(m_leftPin, LOW);
83+
}
84+
85+
SigmaDelta_class SigmaDelta;
86+
SigmaDelta_class SigmaDelta1;
87+

0 commit comments

Comments
 (0)