Mcucpp
1#include <iostream>
2#include <gtest/gtest.h>
3#include <cmath>
4#include <timers.h>
5#include <timer_utils.h>
6
7using namespace Mcucpp;
8using namespace Timers;
9using namespace std;
10
11TEST(TimerTests, TimerSetupTest)
12{
13// FIXME: compiler error
14const unsigned units=1;
15const unsigned freq=12345;
16const unsigned fcpu=16000000;
17
18typedef TimerFreqSetup<Timer1, freq*units, fcpu*units> TimerSetup1;
19
20cout << "TimerSetup1::dividerValue == " << TimerSetup1::dividerValue << endl;
21cout << "TimerSetup1::reloadValue == " << (int)TimerSetup1::reloadValue << endl;
22cout << "TimerSetup1::tickFreq == " << TimerSetup1::tickFreq << endl;
23cout << "TimerSetup1::realFreq == " << TimerSetup1::realFreq << endl;
24cout << "TimerSetup1::error == " << TimerSetup1::error << endl;
25
26double realFreq = (double)fcpu / TimerSetup1::dividerValue / (Timer1::MaxValue - TimerSetup1::reloadValue);
27cout << "realFreq == " << realFreq << endl;
28double realError = abs(realFreq - freq);
29cout << "realError == " << realError << endl;
30
31EXPECT_LE(realError, (double)TimerSetup1::error / units + 1);
32const unsigned cRealFreq=TimerSetup1::realFreq / units;
33EXPECT_EQ((unsigned)realFreq, cRealFreq );
34}
35
36