#include "selftest.h"

void testAll(void)
{
	testBEBA0();
	testBEBA1();
	testDAC0();
	testDAC1();
	testMirror();
}

void testBEBA0(void)
{
	for(uint8_t i = 0; i < 9; i++)
	{
		beba0.writePortA(_BV(i));

		if(i < 8)
			_delay_ms(200);
	}
}

void testBEBA1(void)
{
	for(uint8_t i = 0; i < 9; i++)
	{
		beba1.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));
		beba0.writePortA(beba0.readPortB());
		beba1.writePortA(sw.readPortB());
	}
}