b15f/firmware/selftest.cpp
2019-04-03 08:40:14 +02:00

70 lines
946 B
C++

#include "selftest.h"
void testAll(void)
{
testBEBA0();
testBEBA1();
testDAC0();
testDAC1();
testMirror();
}
void testBEBA0(void)
{
for(uint8_t i = 0; i < 9; i++)
{
dio0.writePortA(_BV(i));
if(i < 8)
_delay_ms(200);
}
}
void testBEBA1(void)
{
for(uint8_t i = 0; i < 9; i++)
{
dio1.writePortA(_BV(i));
if(i < 8)
_delay_ms(200);
}
}
void testDAC0(void)
{
for(uint16_t i = 0; i < 1024; i++)
{
dac0.setValue(i);
_delay_ms(1);
}
_delay_ms(100);
dac0.setValue(0);
}
void testDAC1(void)
{
for(uint16_t i = 0; i < 1024; i++)
{
dac1.setValue(i);
_delay_ms(1);
}
_delay_ms(100);
dac1.setValue(0);
}
void testMirror()
{
// deaktiviere WDT
wdt_disable();
// Endlosschleife
while(1)
{
dac0.setValue(adu.getValue(0));
dac1.setValue(adu.getValue(1));
dio0.writePortA(dio0.readPortB());
dio1.writePortA(dsw.readPortB());
}
}