b15f/firmware/selftest.cpp

70 lines
1.1 KiB
C++
Raw Normal View History

2019-03-25 15:15:00 +00:00
#include "selftest.h"
void testAll(void)
{
testBEBA0();
testBEBA1();
testDAC0();
testDAC1();
2019-03-26 07:44:30 +00:00
testMirror();
2019-03-25 15:15:00 +00:00
}
void testBEBA0(void)
{
for(uint8_t i = 0; i < 9; i++)
{
2019-04-02 08:59:37 +00:00
((MCP23S17*) &beba0)->writePortA(_BV(i));
2019-03-25 15:15:00 +00:00
if(i < 8)
_delay_ms(200);
}
}
void testBEBA1(void)
{
for(uint8_t i = 0; i < 9; i++)
{
2019-04-02 08:59:37 +00:00
((MCP23S17*) &beba1)->writePortA(_BV(i));
2019-03-25 15:15:00 +00:00
if(i < 8)
_delay_ms(200);
}
}
void testDAC0(void)
{
for(uint16_t i = 0; i < 1024; i++)
{
2019-04-02 08:59:37 +00:00
((TLC5615*) &dac0)->setValue(i);
2019-03-25 15:15:00 +00:00
_delay_ms(1);
}
2019-03-26 07:44:30 +00:00
_delay_ms(100);
2019-04-02 08:59:37 +00:00
((TLC5615*) &dac0)->setValue(0);
2019-03-25 15:15:00 +00:00
}
void testDAC1(void)
{
for(uint16_t i = 0; i < 1024; i++)
{
2019-04-02 08:59:37 +00:00
((TLC5615*) &dac1)->setValue(i);
2019-03-25 15:15:00 +00:00
_delay_ms(1);
}
2019-03-26 07:44:30 +00:00
_delay_ms(100);
2019-04-02 08:59:37 +00:00
((TLC5615*) &dac1)->setValue(0);
2019-03-26 07:44:30 +00:00
}
void testMirror()
{
2019-03-26 15:30:49 +00:00
// deaktiviere WDT
wdt_disable();
// Endlosschleife
2019-03-26 07:44:30 +00:00
while(1)
{
2019-04-02 08:59:37 +00:00
((TLC5615*) &dac0)->setValue(((ADU*) &adu)->getValue(0));
((TLC5615*) &dac1)->setValue(((ADU*) &adu)->getValue(1));
((MCP23S17*) &beba0)->writePortA(((MCP23S17*) &beba0)->readPortB());
((MCP23S17*) &beba1)->writePortA(((MCP23S17*) &sw)->readPortB());
2019-03-26 07:44:30 +00:00
}
2019-03-25 15:15:00 +00:00
}