complex stroke erste version

This commit is contained in:
Tristan Krause 2019-03-27 10:33:16 +01:00
parent a3e9e1ce27
commit 9ef5fdc9a9
6 changed files with 57 additions and 21 deletions

View file

@ -45,20 +45,6 @@ void B15F::init()
if(!testIntConv())
throw DriverException("Konvertierung fehlgeschlagen.");
std::cout << "OK" << std::endl;
while(1)
{
digitaleAusgabe0(0xFF);
digitaleAusgabe0(0x00);
//analogeEingabe(0);
/*for(uint16_t i = 0; i < 1024; )
{
i = analogeEingabe(0);
analogeAusgabe0(i);
delay(0);
}*/
}
}
void B15F::reconnect()
@ -233,6 +219,38 @@ uint16_t B15F::analogeEingabe(uint8_t channel)
}
}
bool B15F::analogEingabeSequenz(uint16_t* buffer_a, uint16_t* buffer_b, uint32_t offset_a, uint32_t offset_b, uint16_t start, uint16_t delta, uint16_t count)
{
try
{
writeByte(RQ_ADC_DAC_STROKE);
writeInt(start);
writeInt(delta);
writeInt(count);
uint8_t aw = readByte();
if(aw != MSG_OK)
{
std::cout << "nein: " << (int) aw << std::endl;
throw DriverException("Mikrocontroller nicht synchronisiert");
}
for(uint16_t i = 0; i < count; i++)
{
buffer_a[offset_a + i] = readInt();
buffer_b[offset_b + i] = readInt();
std::cout << "(" << i << ") " << buffer_a[offset_a + i] << " \t| " << buffer_b[offset_b + i] << std::endl;
}
aw = readByte();
return aw == MSG_OK;
}
catch(DriverException& de)
{
reconnect();
return analogEingabeSequenz(buffer_a, buffer_b, offset_a, offset_b, start, delta, count);
}
}
void B15F::writeByte(uint8_t b)

View file

@ -27,13 +27,14 @@ public:
bool testIntConv(void);
// Board Befehle
inline bool digitaleAusgabe0(uint8_t);
inline bool digitaleAusgabe1(uint8_t);
inline uint8_t digitaleEingabe0(void);
inline uint8_t digitaleEingabe1(void);
inline bool analogeAusgabe0(uint16_t);
inline bool analogeAusgabe1(uint16_t);
inline uint16_t analogeEingabe(uint8_t);
bool digitaleAusgabe0(uint8_t);
bool digitaleAusgabe1(uint8_t);
uint8_t digitaleEingabe0(void);
uint8_t digitaleEingabe1(void);
bool analogeAusgabe0(uint16_t);
bool analogeAusgabe1(uint16_t);
uint16_t analogeEingabe(uint8_t);
bool analogEingabeSequenz(uint16_t*, uint16_t*, uint32_t, uint32_t, uint16_t, uint16_t, uint16_t);
// Serielle Verbindung
inline void writeByte(uint8_t);
@ -73,6 +74,7 @@ private:
constexpr static uint8_t RQ_AA0 = 9;
constexpr static uint8_t RQ_AA1 = 10;
constexpr static uint8_t RQ_ADC = 11;
constexpr static uint8_t RQ_ADC_DAC_STROKE = 12;
};
#endif // B15F_h

Binary file not shown.

BIN
main

Binary file not shown.

View file

@ -5,5 +5,21 @@ int main()
{
B15F& drv = B15F::getInstance();
drv.init();
/*
while(1)
{
for(uint16_t i = 0; i < 1024; i++)
{
drv.analogeAusgabe0(drv.analogeEingabe(5));
//drv.delay(10);
//drv.digitaleAusgabe0(drv.digitaleEingabe0());
}
}*/
uint16_t ba[1024];
uint16_t bb[1024];
drv.analogEingabeSequenz(&ba[0], &bb[0], 0, 0, 0, 10, 100);
std::cout << "Schluss." << std::endl;
}

BIN
main.o

Binary file not shown.