GitLab system status is available here and here

Commit ab0d3507 authored by Singaravelavan Rajesh's avatar Singaravelavan Rajesh
Browse files

Part 4 done

parent deaacd45
/*
* File: RoachTestHarness.c
* Author: sirajesh
*
* Created on March 31, 2022, 11:58 AM
*/
#include <roach.h>
#include <BOARD.h>
#include <xc.h>
#include <stdio.h>
#include <pwm.h>
#include <serial.h>
#include <AD.h>
#define ROACH_MY_TEST
#ifdef ROACH_MY_TEST
#pragma config FPLLIDIV = DIV_2 //PLL Input Divider
#pragma config FPLLMUL = MUL_20 //PLL Multiplier
#pragma config FPLLODIV = DIV_1 //System PLL Output Clock Divid
#pragma config FNOSC = PRIPLL //Oscillator Selection Bits
#pragma config FSOSCEN = OFF //Secondary Oscillator Enable
#pragma config IESO = OFF //Internal/External Switch O
#pragma config POSCMOD = XT //Primary Oscillator Configuration
#pragma config OSCIOFNC = OFF //CLKO Output Signal Active on the OSCO Pin
#pragma config FPBDIV = DIV_2 //Peripheral Clock Divisor
#pragma config FCKSM = CSECMD //Clock Switching and Monitor Selection
#pragma config WDTPS = PS1 //Watchdog Timer Postscaler
#pragma config FWDTEN = OFF //Watchdog Timer Enable
#pragma config ICESEL = ICS_PGx2 //ICE/ICD Comm Channel Select
#pragma config PWP = OFF //Program Flash Write Protect
#pragma config BWP = OFF //Boot Flash Write Protect bit
#pragma config CP = OFF //Code Protect
#define WANDER_SAMPLE_RATE 100
#define FLEFT_BUMP_MASK (1)
#define FRIGHT_BUMP_MASK (1<<1)
#define RLEFT_BUMP_MASK (1<<2)
#define RRIGHT_BUMP_MASK (1<<3)
#define FRONT_BUMP_MASK 0b0011
#define BACK_BUMP_MASK 0b1100
#define DELAY(x) for (wait = 0; wait <= x; wait++) {asm("nop");}
#define A_BIT 18300
#define A_BIT_MORE 36600
#define YET_A_BIT_LONGER (A_BIT_MORE<<2)
#define A_LOT 183000
#define NUM_TIMES_REPEAT_LED 5
#define MOTOR_TIME (A_LOT<<2)
#define LOW_BAT 263
#define HIGH_BAT 310
......@@ -113,8 +113,7 @@ static unsigned short int LED_bitsMap[] = {BIT_7, BIT_5, BIT_10, BIT_11, BIT_3,
* setting the initial motor directions.
* @note None.
* @author Max Dunne, 2012.01.06 */
void Roach_Init(void)
{
void Roach_Init(void) {
//set the control pins for the motors
PWM_Init();
......@@ -162,13 +161,12 @@ void Roach_Init(void)
* @return SUCCESS or ERROR
* @brief This function is used to set the speed and direction of the left motor.
* @author Max Dunne, 2012.01.06 */
char Roach_LeftMtrSpeed(char newSpeed)
{
char Roach_LeftMtrSpeed(char newSpeed) {
if ((newSpeed < -ROACH_MAX_SPEED) || (newSpeed > ROACH_MAX_SPEED)) {
return (ERROR);
}
newSpeed = -newSpeed;
if (newSpeed < 0) {
LEFT_DIR = 0;
newSpeed = newSpeed * (-1); // set speed to a positive value
......@@ -190,8 +188,7 @@ char Roach_LeftMtrSpeed(char newSpeed)
* @return SUCCESS or ERROR
* @brief This function is used to set the speed and direction of the left motor.
* @author Max Dunne, 2012.01.06 */
char Roach_RightMtrSpeed(char newSpeed)
{
char Roach_RightMtrSpeed(char newSpeed) {
if ((newSpeed < -ROACH_MAX_SPEED) || (newSpeed > ROACH_MAX_SPEED)) {
return (ERROR);
}
......@@ -215,8 +212,7 @@ char Roach_RightMtrSpeed(char newSpeed)
* @return a 10-bit value corresponding to the amount of light received.
* @brief Returns the current light level. A higher value means less light is detected.
* @author Max Dunne, 2012.01.06 */
unsigned int Roach_LightLevel(void)
{
unsigned int Roach_LightLevel(void) {
return AD_ReadADPin(LIGHT_SENSOR);
}
......@@ -226,8 +222,7 @@ unsigned int Roach_LightLevel(void)
* @return a 10-bit value corresponding to the current voltage of the roach
* @brief returns a 10:1 scaled value of the roach battery level
* @author Max Dunne, 2013.07.12 */
unsigned int Roach_BatteryVoltage(void)
{
unsigned int Roach_BatteryVoltage(void) {
return AD_ReadADPin(ROACH_BAT_VOLTAGE);
}
......@@ -237,8 +232,7 @@ unsigned int Roach_BatteryVoltage(void)
* @return BUMPER_TRIPPED or BUMPER_NOT_TRIPPED
* @brief Returns the state of the front left bumper
* @author Max Dunne, 2012.01.06 */
unsigned char Roach_ReadFrontLeftBumper(void)
{
unsigned char Roach_ReadFrontLeftBumper(void) {
return !HALL_FRONT_LEFT;
}
......@@ -248,8 +242,7 @@ unsigned char Roach_ReadFrontLeftBumper(void)
* @return BUMPER_TRIPPED or BUMPER_NOT_TRIPPED
* @brief Returns the state of the front right bumper
* @author Max Dunne, 2012.01.06 */
unsigned char Roach_ReadFrontRightBumper(void)
{
unsigned char Roach_ReadFrontRightBumper(void) {
return !HALL_FRONT_RIGHT;
}
......@@ -259,8 +252,7 @@ unsigned char Roach_ReadFrontRightBumper(void)
* @return BUMPER_TRIPPED or BUMPER_NOT_TRIPPED
* @brief Returns the state of the rear left bumper
* @author Max Dunne, 2012.01.06 */
unsigned char Roach_ReadRearLeftBumper(void)
{
unsigned char Roach_ReadRearLeftBumper(void) {
return !HALL_REAR_LEFT;
}
......@@ -270,8 +262,7 @@ unsigned char Roach_ReadRearLeftBumper(void)
* @return BUMPER_TRIPPED or BUMPER_NOT_TRIPPED
* @brief Returns the state of the rear right bumper
* @author Max Dunne, 2012.01.06 */
unsigned char Roach_ReadRearRightBumper(void)
{
unsigned char Roach_ReadRearRightBumper(void) {
return !HALL_REAR_RIGHT;
}
......@@ -281,8 +272,7 @@ unsigned char Roach_ReadRearRightBumper(void)
* @return 4-bit value representing all four bumpers in following order: front left,front right, rear left, rear right
* @brief Returns the state of all 4 bumpers
* @author Max Dunne, 2012.01.06 */
unsigned char Roach_ReadBumpers(void)
{
unsigned char Roach_ReadBumpers(void) {
//unsigned char bump_state;
//bump_state = (!HALL_FRONT_LEFT + ((!HALL_FRONT_RIGHT) << 1)+((!HALL_REAR_LEFT) << 2)+((!HALL_REAR_RIGHT) << 3));
return (!HALL_FRONT_LEFT + ((!HALL_FRONT_RIGHT) << 1)+((!HALL_REAR_LEFT) << 2)+((!HALL_REAR_RIGHT) << 3));
......@@ -294,8 +284,7 @@ unsigned char Roach_ReadBumpers(void)
* @return SUCCESS or ERROR
* @brief Forces the LEDs in (bank) to on (1) or off (0) to match the pattern.
* @author Gabriel Hugh Elkaim, 2011.12.25 01:16 Max Dunne 2015.09.18 */
char Roach_LEDSSet(uint16_t pattern)
{
char Roach_LEDSSet(uint16_t pattern) {
char i;
for (i = 0; i < NUMLEDS; i++) {
if (pattern & (1 << i)) {
......@@ -311,8 +300,7 @@ char Roach_LEDSSet(uint16_t pattern)
* @Function Roach_LEDSGet(void)
* @return uint16_t: ERROR or state of BANK
* @author Max Dunne, 203.10.21 01:16 2015.09.18 */
uint16_t Roach_LEDSGet(void)
{
uint16_t Roach_LEDSGet(void) {
uint16_t LEDStatus = 0;
int8_t i;
for (i = (NUMLEDS - 1); i >= 0; i--) {
......@@ -333,8 +321,7 @@ uint16_t Roach_LEDSGet(void)
* @author Max Dunne 2015.09.18 */
char Roach_BarGraph(uint8_t Number)
{
char Roach_BarGraph(uint8_t Number) {
if (Number > NUMLEDS) {
return ERROR;
}
......@@ -349,7 +336,7 @@ char Roach_BarGraph(uint8_t Number)
return SUCCESS;
}
#define ROACH_TEST
//#define ROACH_TEST
#ifdef ROACH_TEST
#pragma config FPLLIDIV = DIV_2 //PLL Input Divider
#pragma config FPLLMUL = MUL_20 //PLL Multiplier
......@@ -395,8 +382,7 @@ char Roach_BarGraph(uint8_t Number)
void FlashLEDBar(uint8_t numtimes);
int main(void)
{
int main(void) {
BOARD_Init();
Roach_Init();
......@@ -431,152 +417,152 @@ int main(void)
// wait for bumper press
switch (Roach_ReadBumpers()) {
case FLEFT_BUMP_MASK: // Battery Voltage live output
FlashLEDBar(1);
DELAY(A_LOT);
scaledValue = Roach_BatteryVoltage();
printf("\r\nBattery voltage is %d", scaledValue);
scaledValue -= LOW_BAT;
scaledValue *= 12;
scaledValue /= (HIGH_BAT - LOW_BAT);
Roach_BarGraph(scaledValue);
DELAY(A_LOT << 2);
Roach_LEDSSet(0);
printf("\r\nBattery Level Test Complete");
DELAY(A_BIT);
FlashLEDBar(1);
break;
case FRIGHT_BUMP_MASK: // Light Sensor live output
FlashLEDBar(2);
DELAY(A_LOT);
for (i = 0; i < A_LOT >> 2; i++) {
scaledValue = Roach_LightLevel();
if (i % 10000 == 0) {
printf("\r\nCurrent Light Level: %d", scaledValue);
}
case FLEFT_BUMP_MASK: // Battery Voltage live output
FlashLEDBar(1);
DELAY(A_LOT);
scaledValue = Roach_BatteryVoltage();
printf("\r\nBattery voltage is %d", scaledValue);
scaledValue -= LOW_BAT;
scaledValue *= 12;
scaledValue /= 1023;
scaledValue /= (HIGH_BAT - LOW_BAT);
Roach_BarGraph(scaledValue);
}
printf("\r\nLight Level Test Complete");
DELAY(A_LOT);
FlashLEDBar(2);
break;
case RLEFT_BUMP_MASK: // Left motor progression
FlashLEDBar(3);
motorSpeed = 100;
DELAY(A_LOT);
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b111100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b011100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b001100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b000100000000);
DELAY(MOTOR_TIME);
motorSpeed = 0;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0);
DELAY(MOTOR_TIME);
motorSpeed = -100;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b1111);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0111);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0011);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0001);
DELAY(MOTOR_TIME);
motorSpeed = 0;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0);
DELAY(A_LOT);
printf("\r\nLeft Motor Test Complete");
FlashLEDBar(3);
break;
case RRIGHT_BUMP_MASK:
FlashLEDBar(4);
DELAY(A_LOT);
motorSpeed = 100;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b111100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b011100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b001100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b000100000000);
DELAY(MOTOR_TIME);
motorSpeed = 0;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0);
DELAY(MOTOR_TIME);
motorSpeed = -100;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(-100);
Roach_LEDSSet(0b1111);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0111);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0011);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0001);
DELAY(MOTOR_TIME);
motorSpeed = 0;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0);
DELAY(A_LOT);
printf("\r\nRight Motor Test Complete");
FlashLEDBar(4);
break;
DELAY(A_LOT << 2);
Roach_LEDSSet(0);
printf("\r\nBattery Level Test Complete");
DELAY(A_BIT);
FlashLEDBar(1);
break;
case FRIGHT_BUMP_MASK: // Light Sensor live output
FlashLEDBar(2);
DELAY(A_LOT);
for (i = 0; i < A_LOT >> 2; i++) {
scaledValue = Roach_LightLevel();
if (i % 10000 == 0) {
printf("\r\nCurrent Light Level: %d", scaledValue);
}
scaledValue *= 12;
scaledValue /= 1023;
Roach_BarGraph(scaledValue);
}
printf("\r\nLight Level Test Complete");
DELAY(A_LOT);
FlashLEDBar(2);
break;
case RLEFT_BUMP_MASK: // Left motor progression
FlashLEDBar(3);
motorSpeed = 100;
DELAY(A_LOT);
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b111100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b011100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b001100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b000100000000);
DELAY(MOTOR_TIME);
motorSpeed = 0;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0);
DELAY(MOTOR_TIME);
motorSpeed = -100;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b1111);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0111);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0011);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0001);
DELAY(MOTOR_TIME);
motorSpeed = 0;
printf("\r\nLeft Motor at %d", motorSpeed);
Roach_LeftMtrSpeed(motorSpeed);
Roach_LEDSSet(0);
DELAY(A_LOT);
printf("\r\nLeft Motor Test Complete");
FlashLEDBar(3);
break;
case RRIGHT_BUMP_MASK:
FlashLEDBar(4);
DELAY(A_LOT);
motorSpeed = 100;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b111100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b011100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b001100000000);
DELAY(MOTOR_TIME);
motorSpeed -= 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b000100000000);
DELAY(MOTOR_TIME);
motorSpeed = 0;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0);
DELAY(MOTOR_TIME);
motorSpeed = -100;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(-100);
Roach_LEDSSet(0b1111);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0111);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0011);
DELAY(MOTOR_TIME);
motorSpeed += 20;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0b0001);
DELAY(MOTOR_TIME);
motorSpeed = 0;
printf("\r\nRight Motor at %d", motorSpeed);
Roach_RightMtrSpeed(motorSpeed);
Roach_LEDSSet(0);
DELAY(A_LOT);
printf("\r\nRight Motor Test Complete");
FlashLEDBar(4);
break;
}
// Left motor progression
// right motor progression
......@@ -586,8 +572,7 @@ int main(void)
while (1);
}
void FlashLEDBar(uint8_t numtimes)
{
void FlashLEDBar(uint8_t numtimes) {
unsigned int wait, i;
Roach_LEDSSet(0);
for (i = 0; i < numtimes; i++) {
......@@ -597,4 +582,78 @@ void FlashLEDBar(uint8_t numtimes)
DELAY(YET_A_BIT_LONGER);
}
}
#endif
#define ROACH_TEST_HARNESS
#ifdef ROACH_TEST_HARNESS
#pragma config FPLLIDIV = DIV_2 //PLL Input Divider
#pragma config FPLLMUL = MUL_20 //PLL Multiplier
#pragma config FPLLODIV = DIV_1 //System PLL Output Clock Divid
#pragma config FNOSC = PRIPLL //Oscillator Selection Bits
#pragma config FSOSCEN = OFF //Secondary Oscillator Enable
#pragma config IESO = OFF //Internal/External Switch O
#pragma config POSCMOD = XT //Primary Oscillator Configuration
#pragma config OSCIOFNC = OFF //CLKO Output Signal Active on the OSCO Pin
#pragma config FPBDIV = DIV_2 //Peripheral Clock Divisor
#pragma config FCKSM = CSECMD //Clock Switching and Monitor Selection
#pragma config WDTPS = PS1 //Watchdog Timer Postscaler
#pragma config FWDTEN = OFF //Watchdog Timer Enable
#pragma config ICESEL = ICS_PGx2 //ICE/ICD Comm Channel Select
#pragma config PWP = OFF //Program Flash Write Protect
#pragma config BWP = OFF //Boot Flash Write Protect bit
#pragma config CP = OFF //Code Protect
#include <stdio.h>
//#define WANDER_MODE
#define WANDER_SAMPLE_RATE 100
#define FLEFT_BUMP_MASK (1)
#define FRIGHT_BUMP_MASK (1<<1)
#define RLEFT_BUMP_MASK (1<<2)
#define RRIGHT_BUMP_MASK (1<<3)
#define DELAY(x) for (wait = 0; wait <= x; wait++) {asm("nop");}
#define A_BIT 18300
#define A_BIT_MORE 36600
#define YET_A_BIT_LONGER (A_BIT_MORE<<2)
#define A_LOT 183000
#define NUM_TIMES_REPEAT_LED 5
#define MOTOR_TIME (A_LOT<<2)
#define LOW_BAT 263
#define HIGH_BAT 310
int main(void) {
// init everything
BOARD_Init();
Roach_Init();
printf("\r\n This is the ECE118 Roach Test Harness For Lab 0, by Singaravelavan Rajesh and Xuxuan Liang.");
printf("\r\nThis code was complied on %s at %s", __DATE__, __TIME__);
unsigned int counter = 0;
while (1) {
//Roach_LEDSSet(Roach_ReadBumpers());
unsigned char scaledValue = Roach_LightLevel();
if (counter % 10000 == 0) {
printf("\r\n Current Light Level: %d", scaledValue);
}
scaledValue *= 12;
scaledValue /= 1023;
Roach_BarGraph(scaledValue);
if (Roach_ReadBumpers() == 0b1100)
Roach_LeftMtrSpeed(0);
if (Roach_ReadBumpers() == 0b0011)
Roach_RightMtrSpeed(0);
if (Roach_ReadBumpers() == 0b0001)
Roach_LeftMtrSpeed(100);
if (Roach_ReadBumpers() == 0b0010)
Roach_RightMtrSpeed(100);
if (Roach_ReadBumpers() == 0b0100)
Roach_LeftMtrSpeed(-100);
if (Roach_ReadBumpers() == 0b1000)
Roach_RightMtrSpeed(-100);
}
}
#endif
\ No newline at end of file
......@@ -4,8 +4,8 @@
<memory name="program">
<units>bytes</units>
<length>126464</length>
<used>21924</used>
<free>104540</free>
<used>20940</used>
<free>105524</free>
</memory>
<memory name="data">
<units>bytes</units>
......
#
#Wed Mar 30 18:57:22 PDT 2022
#Thu Mar 31 12:40:22 PDT 2022
default.languagetoolchain.version=3.01
default.Pack.dfplocation=C\:\\Program Files\\Microchip\\MPLABX\\v5.50\\packs\\Microchip\\PIC32MX_DFP\\1.5.259
conf.ids=default
default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v3.01\\bin
default.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=a8d1477a0cbdce4f518d7c31ceeffdbe
host.id=31gi-po2w-sv
host.id=31qg-ualp-6h
configurations-xml=091a6e19c8de5a2690c8cc9bc52f4e78
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=5232c20b48df3223daf8c79e5b83e9a8
user-defined-mime-resolver-xml=none
......
Supports Markdown