4 #include "libpropeller/mcp3208/mcp3208.h"
6 #include "libpropeller/board/board_unit_tester.h"
11 const int kChannelDac = 3;
12 const int kChannel5vOver2 = 4;
13 const int kChannel3v3Over2 = 5;
14 const int kChannelGround = 6;
15 const int kChannel3v3 = 7;
21 const int kValue3v3 = 4058;
25 const int kValue5vOver2 = 2923;
26 const int kValue3v3Over2 = kValue3v3 / 2;
27 const int kValueGround = 0;
31 const int kMode = 0xFF;
36 static void setUp(
void) {
38 sut->Start(libpropeller::Board::kPinMCP3208Data,
39 libpropeller::Board::kPinMCP3208Clock,
40 libpropeller::Board::kPinMCP3208Select, kMode,
41 libpropeller::Board::kPinDac);
45 static void tearDown(
void) {
51 static void test_3v3(
void) {
53 TEST_ASSERT_INT_WITHIN(delta, kValue3v3, sut->In(kChannel3v3));
56 static void test_Ground(
void) {
58 TEST_ASSERT_INT_WITHIN(delta, kValueGround, sut->In(kChannelGround));
61 static void test_3v3Over2(
void) {
62 TEST_ASSERT_INT_WITHIN(delta, kValue3v3Over2, sut->In(kChannel3v3Over2));
65 static void test_5vOver2(
void) {
66 TEST_ASSERT_INT_WITHIN(delta, kValue5vOver2, sut->In(kChannel5vOver2));
69 static void test_Average(
void) {
70 TEST_ASSERT_INT_WITHIN(delta, kValue3v3Over2, sut->Average(kChannel3v3Over2, 16));
74 static void test_DAClow(
void) {
77 TEST_ASSERT_INT_WITHIN(delta, kValueGround, sut->In(kChannelDac));
80 static void test_DACHigh(
void) {
85 TEST_ASSERT_INT_WITHIN(delta, 4096, sut->In(kChannelDac));
88 static void test_DACMiddle(
void) {
89 sut->Out(0xFFFF >> 1);
91 TEST_ASSERT_INT_WITHIN(delta, kValue3v3Over2, sut->In(kChannelDac));