Compare commits

...

2 commits

3 changed files with 44 additions and 18 deletions

View file

@ -1,8 +1,29 @@
/*
* Author: username
* Date: 2024
* Author: Jake Goodwin
* Date: 2025
* filename: ADC.c
* description: module_purpose
* description:
*/
/*DEVNOTES:
* The CH32v003 micro-controllers have 8channels for the ADC that are
* external and 2 internal channels.
*
* The channels/inputs are labeled as AIN0-AIN7
*/
/*CH32v003 ADC TO PINs:
* A0 --> PA2
* A1 --> PA1
* A2 --> PC2
* A3 --> PD2
* A4 --> PD3
* A5 --> PD5
* A6 --> PD6
* A7 --> PD4
*
* Because they don't exactly match up, I'll need to write up my own
* way to do the mapping.
*/
#include "ADC.h"

View file

@ -1,8 +1,8 @@
/**
* @brief Interface to the AVR ADC hardware.
* @details This file is...
* @author Jake G
* @date 2024
* @author Jake Goodwin
* @date 2025
* @copyright None
* @file ADC.h
*/

View file

@ -9,13 +9,9 @@
#include "CppUTestExt/MockSupport.h"
#include <cstdint>
//This define allows us to dircetly include the device header without error.
#define _AVR_IO_H_
extern "C"
{
#include <iotn404.h> //ATtiny404 header fille.
#include "ch32v003hw.h"
#include "ADC.h"
}
@ -40,6 +36,8 @@ TEST(test_ADC, FirstTest)
TEST(test_ADC, ADC_SetupSetsRegisters)
{
/*
//Clears control register A for ADC0
mock().expectOneCall("RegEdit_SetNum")
.withPointerParameter("reg", (void *) &ADC0.CTRLA)
@ -69,12 +67,14 @@ TEST(test_ADC, ADC_SetupSetsRegisters)
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &ADC0.CTRLD)
.withUnsignedIntParameter("bit_num", 4);
*/
ADC_Setup();
}
TEST(test_ADC, ADC_InitPortAPin7UsesCorrectRegisters)
{
/*
//Check for setting the direction to input.
mock().expectOneCall("RegEdit_ClearBit")
.withPointerParameter("reg", (void *) &PORTA.DIR)
@ -91,13 +91,13 @@ TEST(test_ADC, ADC_InitPortAPin7UsesCorrectRegisters)
.withPointerParameter("reg", (void *) &PORTA.PIN7CTRL)
.withUnsignedIntParameter("bit_num", PORT_ISC_INPUT_DISABLE_gc);
*/
ADC_Init(7);
}
TEST(test_ADC, ADC_InitPortAPin0UsesCorrectRegisters)
{
/*
//Check for setting the direction to input.
mock().expectOneCall("RegEdit_ClearBit")
.withPointerParameter("reg", (void *) &PORTA.DIR)
@ -113,39 +113,43 @@ TEST(test_ADC, ADC_InitPortAPin0UsesCorrectRegisters)
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTA.PIN0CTRL)
.withUnsignedIntParameter("bit_num", PORT_ISC_INPUT_DISABLE_gc);
*/
ADC_Init(0);
}
TEST(test_ADC, ADC_InitDoesNothingOnHighPinNumbers)
{
mock().expectNoCall("RegEdit_SetBit");
//mock().expectNoCall("RegEdit_SetBit");
ADC_Init(8);
}
TEST(test_ADC, ADC_EnablePasses)
{
/*
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &ADC0.CTRLA)
.withUnsignedIntParameter("bit_num", 0);
*/
ADC_Enable();
}
TEST(test_ADC, ADC_DisablePasses)
{
/*
mock().expectOneCall("RegEdit_ClearBit")
.withPointerParameter("reg", (void *) &ADC0.CTRLA)
.withUnsignedIntParameter("bit_num", 0);
*/
ADC_Disable();
}
TEST(test_ADC, ADC_SetPinSetsRightRegisters)
{
/*
//It clears existing MUXPOS register values.
mock().expectOneCall("RegEdit_ClearRegister")
.withPointerParameter("reg", (void *) &ADC0.MUXPOS);
@ -154,7 +158,8 @@ TEST(test_ADC, ADC_SetPinSetsRightRegisters)
mock().expectOneCall("RegEdit_SetNum")
.withPointerParameter("reg", (void *) &ADC0.MUXPOS)
.withUnsignedIntParameter("num", 4);
*/
ADC_SetPin(4);
}