Converted the template unix project to mplabx

This commit is contained in:
Jake Goodwin 2024-07-01 17:53:09 -07:00
commit c70a0cf0ce
63 changed files with 6529 additions and 0 deletions

View File

@ -0,0 +1 @@
$(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) C:\Users\Lenovo\MPLABXProjects\fg004a.X\main.c

View File

@ -0,0 +1 @@
$(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) C:\Users\Lenovo\MPLABXProjects\fg004a.X\zero_cross_detection.c

View File

@ -0,0 +1 @@
$(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) C:\Users\Lenovo\MPLABXProjects\fg004a.X\RegEdit.c

View File

@ -0,0 +1 @@
$(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) C:\Users\Lenovo\MPLABXProjects\fg004a.X\zero_cross_detection.c

View File

@ -0,0 +1 @@
$(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) C:\Users\Lenovo\MPLABXProjects\fg004a.X\TriacOut.c

View File

@ -0,0 +1 @@
$(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) C:\Users\Lenovo\MPLABXProjects\fg004a.X\RegEdit.c

View File

@ -0,0 +1 @@
$(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) C:\Users\Lenovo\MPLABXProjects\fg004a.X\ADC.c

View File

@ -0,0 +1 @@
$(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) C:\Users\Lenovo\MPLABXProjects\fg004a.X\TriacOut.c

View File

@ -0,0 +1 @@
$(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) C:\Users\Lenovo\MPLABXProjects\fg004a.X\ADC.c

View File

@ -0,0 +1 @@
$(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) C:\Users\Lenovo\MPLABXProjects\fg004a.X\main.c

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/docs/

96
ADC.c Normal file
View File

@ -0,0 +1,96 @@
/*
* Author: username
* Date: 2024
* filename: ADC.c
* description: module_purpose
*/
#include "ADC.h"
#include "RegEdit.h"
#include "avr/io.h"
static bool IsInvalidPin(uint8_t pin_num){
if(pin_num > 7){
return true;
}
return false;
}
void ADC_Init(uint8_t pin_num)
{
if(IsInvalidPin(pin_num)){return;}
//set the direction to input
RegEdit_SetBit((void *) &PORTA.DIRCLR, pin_num);
//Disable the pull-up resistor
RegEdit_SetBit((void *) &PORTA.OUTCLR, pin_num);
//Disable input buffer
//We do some kinda nasty address addition but it saves
//memory and means we don't need a switch statment.
//PORT_ISC_INPUT_DISABLE_gc
RegEdit_SetBit(
(void *) (&PORTA.PIN0CTRL)+pin_num,
PORT_ISC_INPUT_DISABLE_gc
);
/*
RegEdit_OR_Num(
(void *) (&PORTA.PIN0CTRL)+pin_num,
PORT_ISC_INPUT_DISABLE_gc
);*/
//Ensure we use full 10bit resolution
RegEdit_ClearBit((void *) &ADC0.CTRLA, 2);
//Use VDD as our voltage refernce.
RegEdit_SetBit((void *) &ADC0.CTRLC, 4);
}
void ADC_Enable(uint8_t pin_num)
{
if(IsInvalidPin(pin_num)){return;}
//Use muxpos to select pins for ADC to connect.
RegEdit_OR_Num((void *) &ADC0.MUXPOS, pin_num);
//Set the enable bit in the CTRLA register
RegEdit_SetBit((void *) &ADC0.CTRLA, 0);
}
void ADC_Disable()
{
//Set for no ADC connections.
RegEdit_ClearRegister((void *) &ADC0.MUXPOS);
//Clear the enable ADC flag
RegEdit_ClearBit((void *) &ADC0.CTRLA, 0);
}
uint16_t ADC_ReadValue_Impl(uint8_t pin_num)
{
RegEdit_SetNum((void *) &ADC0.COMMAND, ADC_STCONV_bm);
/* Wait until ADC conversion done */
//while ( !(ADC0.INTFLAGS & ADC_RESRDY_bm) )
//while(!(RegEdit_IsBitSet((void *) &ADC0.INTFLAGS, ADC_RESSEL_bm)))
while ( !(ADC0.INTFLAGS & ADC_RESRDY_bm) )
{
;
}
/* Clear the interrupt flag by writing 1: */
ADC0.INTFLAGS = ADC_RESRDY_bm;
return (uint16_t) ADC0.RES;
}
//Set the default for the function pointer.
uint16_t (*ADC_ReadValue)(uint8_t pin_num) = ADC_ReadValue_Impl;

57
ADC.h Normal file
View File

@ -0,0 +1,57 @@
/**
* @brief Interface to the AVR ADC hardware.
* @details This file is...
* @author Jake G
* @date 2024
* @copyright None
* @file ADC.h
*/
#ifndef ADC_H
#define ADC_H
#include <stdint.h>
#include <stdbool.h>
/**
* @brief Initializes the AVR hardware in order to accept
* Input for ADC usage.
* @param pin_num The number of the pin 0-7 you are initializing.
*
* This function only makes use of PORTA by default. It sets the direction
* register to input, disables the pull-up resistor and also diables interrupts
* alongside the input buffer(digital).
*
* This in turn helps reduce noise when using the ADC.
*
*/
void ADC_Init(uint8_t pin_num);
/**
* @brief Enables the ADC
* @param pin_num The number of the pin 0-7 you are enabling
*/
void ADC_Enable(uint8_t pin_num);
/**
* @brief Disables the ADC
*/
void ADC_Disable();
/**
* @brief Reads ADC value into variable
*
* @param pin_num The bin number of the ADC pin being read.
*
* This function depends on the ADC already being initialized and enabled
* before being called.
*/
extern uint16_t (*ADC_ReadValue)(uint8_t pin_num);
#endif //ADC_H

2854
Doxyfile Normal file

File diff suppressed because it is too large Load Diff

113
Makefile Normal file
View File

@ -0,0 +1,113 @@
#
# There exist several targets which are by default empty and which can be
# used for execution of your targets. These targets are usually executed
# before and after some main targets. They are:
#
# .build-pre: called before 'build' target
# .build-post: called after 'build' target
# .clean-pre: called before 'clean' target
# .clean-post: called after 'clean' target
# .clobber-pre: called before 'clobber' target
# .clobber-post: called after 'clobber' target
# .all-pre: called before 'all' target
# .all-post: called after 'all' target
# .help-pre: called before 'help' target
# .help-post: called after 'help' target
#
# Targets beginning with '.' are not intended to be called on their own.
#
# Main targets can be executed directly, and they are:
#
# build build a specific configuration
# clean remove built files from a configuration
# clobber remove all built files
# all build all configurations
# help print help mesage
#
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
# .help-impl are implemented in nbproject/makefile-impl.mk.
#
# Available make variables:
#
# CND_BASEDIR base directory for relative paths
# CND_DISTDIR default top distribution directory (build artifacts)
# CND_BUILDDIR default top build directory (object files, ...)
# CONF name of current configuration
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
#
# NOCDDL
# Environment
MKDIR=mkdir
CP=cp
CCADMIN=CCadmin
RANLIB=ranlib
# build
build: .build-post
.build-pre:
# Add your pre 'build' code here...
.build-post: .build-impl
# Add your post 'build' code here...
# clean
clean: .clean-post
.clean-pre:
# Add your pre 'clean' code here...
# WARNING: the IDE does not call this target since it takes a long time to
# simply run make. Instead, the IDE removes the configuration directories
# under build and dist directly without calling make.
# This target is left here so people can do a clean when running a clean
# outside the IDE.
.clean-post: .clean-impl
# Add your post 'clean' code here...
# clobber
clobber: .clobber-post
.clobber-pre:
# Add your pre 'clobber' code here...
.clobber-post: .clobber-impl
# Add your post 'clobber' code here...
# all
all: .all-post
.all-pre:
# Add your pre 'all' code here...
.all-post: .all-impl
# Add your post 'all' code here...
# help
help: .help-post
.help-pre:
# Add your pre 'help' code here...
.help-post: .help-impl
# Add your post 'help' code here...
# include project implementation makefile
include nbproject/Makefile-impl.mk
# include project make variables
include nbproject/Makefile-variables.mk

68
README.md Normal file
View File

@ -0,0 +1,68 @@
# FG004_A(Triac Testing)
## Description
This embedded firmware is the testing mode for the triac software.
It causes the attiny404 to generate pulses continuously, which are delayed
by a value configured in the `config.h` file.
The timing is done after the PZC(positive zero crossing) of the AC input
waveform.
### Micro Controller Pins
**ATtiny404**
1. VDD(+5v)
2. PA4(ADC_LOAD1)
3. PA5(ADC_LOAD2)
4. PA6(ADC_LOAD3)
5. PA7(zerocrossing)
6. PB3(G2)
7. PB2(G3)
8. PB1(SDA)
9. PB0(SCL)
10. RST(NC)
11. PA1(G1)
12. PA2(NC)
13. PA3(NC)
14. VSS(GND)
*key*
NC:: Not Connected
PBX:: Port B pin X
PAX:: Port A pin X
RST:: Reset pin
## Project Layout
Documentation that has been generated is inside the docs folder which contains
the html output that can be browswed via your regular web browser.
PDF genreation from the doumentaiton is also possible if enabled through the
`Doxyfile` inside the projects root directory.
The build directory contains the output and makefiles genrerated automatically
when using CMake.
This build directory also holds the bin files genreated along with the hex and
elf files.
## Build Requirements
- AVR-GCC toolchain OR XC8 from microchip.
- Make OR CMAKE
- avrdude
- A AVR programmer, usbasp for older chips and UPDI for newer ones.
## Dev Requirements
- ATtiny404 series micro-controller
- AVR-GCC toolchain.
- Cmake
- cpputest(Unit testing harness.)
- Doxygen(For documentation)
- Git(For version control)

58
RegEdit.c Normal file
View File

@ -0,0 +1,58 @@
/*
* Author: username
* Date: 2024
* filename: RegEdit.c
* description: module_purpose
*/
#include "RegEdit.h"
void RegEdit_SetRegister(void *reg)
{
uint8_t *reg_ptr = (uint8_t *)reg;
*reg_ptr = 0xFF;
}
void RegEdit_ClearRegister(void *reg)
{
uint8_t *reg_ptr = (uint8_t *)reg;
*reg_ptr = 0x00;
}
void RegEdit_SetBit(void *reg, uint8_t bit_num)
{
uint8_t *reg_ptr = (uint8_t *)reg;
*reg_ptr |= (uint8_t)(1<<bit_num);
}
void RegEdit_ClearBit(void *reg, uint8_t bit_num)
{
uint8_t *reg_ptr = (uint8_t *)reg;
*reg_ptr &= ~(1<<bit_num);
}
bool RegEdit_IsBitSet(void *reg, uint8_t bit_num)
{
uint8_t *reg_ptr = (uint8_t *)reg;
return *reg_ptr & (1<<bit_num);
}
void RegEdit_OR_Num(void *reg, uint8_t num)
{
uint8_t *reg_ptr = (uint8_t *)reg;
*reg_ptr |= num;
}
void RegEdit_AND_Num(void *reg, uint8_t num)
{
uint8_t *reg_ptr = (uint8_t *)reg;
*reg_ptr &= num;
}
void RegEdit_SetNum(void *reg, uint8_t num)
{
uint8_t *reg_ptr = (uint8_t *)reg;
*reg_ptr = num;
}

72
RegEdit.h Normal file
View File

@ -0,0 +1,72 @@
/**
* @brief Register Editing Interface
* @details This file is an abstraction to all the bitwise operations
* @author Jake G
* @date 2024
* @copyright None
* @file MockRegEdit.h
*/
#ifndef REGEDIT_H
#define REGEDIT_H
#include <stdint.h>
#include <stdbool.h>
/**
*
* @param reg The register address.
*/
void RegEdit_SetRegister(void *reg);
/**
*
* @param reg The register address.
*/
void RegEdit_ClearRegister(void *reg);
/**
*
* @param reg The register address.
* @param bit_num The bit location.
*/
void RegEdit_SetBit(void *reg, uint8_t bit_num);
/**
*
* @param reg The register address.
* @param bit_num The bit location.
*/
void RegEdit_ClearBit(void *reg, uint8_t bit_num);
/**
*
* @param reg The register address.
* @param bit_num The bit location.
* @return
*/
bool RegEdit_IsBitSet(void *reg, uint8_t bit_num);
/**
*
* @param reg The register address.
* @param num The bit location.
*/
void RegEdit_OR_Num(void *reg, uint8_t num);
/**
*
* @param reg The register address.
* @param num The bit location.
*/
void RegEdit_AND_Num(void *reg, uint8_t num);
/**
*
* @param reg The register address.
* @param num The bit location.
*/
void RegEdit_SetNum(void *reg, uint8_t num);
#endif //REGEDIT_H

64
TriacOut.c Normal file
View File

@ -0,0 +1,64 @@
/*
* Author: username
* Date: todays_date
* filename: TriacOut.c
* description: module_purpose
*/
#ifndef __AVR_ATtiny404__
#define __AVR_ATtiny404__
#endif
#include <avr/io.h>
#include "TriacOut.h"
#include "RegEdit.h"
#define G1 1
#define G2 3
#define G3 2
#define G1_BM (1<<1)
#define G2_BM (1<<3)
#define G3_BM (1<<2)
void Delay_MicroSeconds_impl(double us){
return;
}
//Delay_MicroSeconds =
//void (*Delay_MicroSeconds)(double us) = Delay_MicroSeconds_impl;
void (*Delay_MicroSecnds)(double us) = Delay_MicroSeconds_impl;
void TriacOut_InitTimerA(void)
{
}
void TriacOut_SetupPins(void)
{
RegEdit_SetBit((void *) &PORTA.DIR, G1);
RegEdit_SetBit((void *) &PORTB.DIR, G2);
RegEdit_SetBit((void *) &PORTB.DIR, G3);
}
void TriacOut_SetAllHigh(void)
{
RegEdit_SetBit((void *) &PORTA.OUT, G1);
RegEdit_SetBit((void *) &PORTB.OUT, G2);
RegEdit_SetBit((void *) &PORTB.OUT, G3);
}
void TriacOut_PulsePins(uint16_t pulse_time)
{
Delay_MicroSeconds(pulse_time);
RegEdit_ClearBit((void *) &PORTA.OUT, G1);
RegEdit_ClearBit((void *) &PORTB.OUT, G2);
RegEdit_ClearBit((void *) &PORTB.OUT, G3);
}

38
TriacOut.h Normal file
View File

@ -0,0 +1,38 @@
/**
* @brief PUT_TEXT_HERE
* @details This file is...
* @author username
* @date todays_date
* @copyright None
* @file TriacOut.h
*/
#ifndef TRIACOUT_H
#define TRIACOUT_H
#include <stdint.h>
extern void (*Delay_MicroSeconds)(double us);
/**
* A function that adds two to a number
* @param pulse_time The time in micro seconds.
*
* This function turns off G1, G2 and G3, once the passed time in micro seconds
* has elapsed the pins are all set to low.
*/
void TriacOut_PulsePins(uint16_t pulse_time);
/**
* This sets up the G1, G2 and the G3 pins for output.
*/
void TriacOut_SetupPins(void);
/**
* This sets G1, G2 and G3 to high on the output.
*/
void TriacOut_SetAllHigh(void);
#endif //TRIACOUT_H

BIN
build/default/debug/ADC.o Normal file

Binary file not shown.

View File

@ -0,0 +1,50 @@
build/default/debug/ADC.o.d build/default/debug/ADC.o: ADC.c ADC.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h \
RegEdit.h c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h
ADC.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:
RegEdit.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h:

Binary file not shown.

View File

@ -0,0 +1,19 @@
build/default/debug/RegEdit.o.d build/default/debug/RegEdit.o: RegEdit.c \
RegEdit.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h
RegEdit.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:

Binary file not shown.

View File

@ -0,0 +1,52 @@
build/default/debug/TriacOut.o.d build/default/debug/TriacOut.o: \
TriacOut.c \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h \
TriacOut.h RegEdit.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h:
TriacOut.h:
RegEdit.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:

BIN
build/default/debug/main.o Normal file

Binary file not shown.

View File

@ -0,0 +1,67 @@
build/default/debug/main.o.d build/default/debug/main.o: main.c config.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
RegEdit.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h \
zero_cross_detection.h ADC.h TriacOut.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h
config.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
RegEdit.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:
zero_cross_detection.h:
ADC.h:
TriacOut.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h:

Binary file not shown.

View File

@ -0,0 +1,23 @@
build/default/debug/zero_cross_detection.o.d \
build/default/debug/zero_cross_detection.o: zero_cross_detection.c \
zero_cross_detection.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h \
ADC.h
zero_cross_detection.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:
ADC.h:

Binary file not shown.

View File

@ -0,0 +1,29 @@
build/default/production/ADC.o.d build/default/production/ADC.o: ADC.c \
ADC.h C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h \
C:/Program\ Files/avr-gcc/avr/include/stdint.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h RegEdit.h \
C:/Program\ Files/avr-gcc/avr/include/avr/io.h \
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h \
C:/Program\ Files/avr-gcc/avr/include/inttypes.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h \
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h \
C:/Program\ Files/avr-gcc/avr/include/avr/common.h \
C:/Program\ Files/avr-gcc/avr/include/avr/version.h \
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h \
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h \
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h
ADC.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h:
C:/Program\ Files/avr-gcc/avr/include/stdint.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h:
RegEdit.h:
C:/Program\ Files/avr-gcc/avr/include/avr/io.h:
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h:
C:/Program\ Files/avr-gcc/avr/include/inttypes.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h:
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h:
C:/Program\ Files/avr-gcc/avr/include/avr/common.h:
C:/Program\ Files/avr-gcc/avr/include/avr/version.h:
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h:
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h:
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h:

Binary file not shown.

View File

@ -0,0 +1,9 @@
build/default/production/RegEdit.o.d build/default/production/RegEdit.o: \
RegEdit.c RegEdit.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h \
C:/Program\ Files/avr-gcc/avr/include/stdint.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h
RegEdit.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h:
C:/Program\ Files/avr-gcc/avr/include/stdint.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h:

Binary file not shown.

View File

@ -0,0 +1,29 @@
build/default/production/TriacOut.o.d build/default/production/TriacOut.o: \
TriacOut.c C:/Program\ Files/avr-gcc/avr/include/avr/io.h \
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h \
C:/Program\ Files/avr-gcc/avr/include/inttypes.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h \
C:/Program\ Files/avr-gcc/avr/include/stdint.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h \
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h \
C:/Program\ Files/avr-gcc/avr/include/avr/common.h \
C:/Program\ Files/avr-gcc/avr/include/avr/version.h \
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h \
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h \
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h TriacOut.h RegEdit.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h
C:/Program\ Files/avr-gcc/avr/include/avr/io.h:
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h:
C:/Program\ Files/avr-gcc/avr/include/inttypes.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h:
C:/Program\ Files/avr-gcc/avr/include/stdint.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h:
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h:
C:/Program\ Files/avr-gcc/avr/include/avr/common.h:
C:/Program\ Files/avr-gcc/avr/include/avr/version.h:
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h:
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h:
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h:
TriacOut.h:
RegEdit.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h:

Binary file not shown.

View File

@ -0,0 +1,37 @@
build/default/production/main.o.d build/default/production/main.o: main.c \
config.h C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h \
C:/Program\ Files/avr-gcc/avr/include/stdint.h RegEdit.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h \
zero_cross_detection.h ADC.h TriacOut.h \
C:/Program\ Files/avr-gcc/avr/include/avr/io.h \
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h \
C:/Program\ Files/avr-gcc/avr/include/inttypes.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h \
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h \
C:/Program\ Files/avr-gcc/avr/include/avr/common.h \
C:/Program\ Files/avr-gcc/avr/include/avr/version.h \
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h \
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h \
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h \
C:/Program\ Files/avr-gcc/avr/include/util/delay.h \
C:/Program\ Files/avr-gcc/avr/include/util/delay_basic.h
config.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h:
C:/Program\ Files/avr-gcc/avr/include/stdint.h:
RegEdit.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h:
zero_cross_detection.h:
ADC.h:
TriacOut.h:
C:/Program\ Files/avr-gcc/avr/include/avr/io.h:
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h:
C:/Program\ Files/avr-gcc/avr/include/inttypes.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h:
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h:
C:/Program\ Files/avr-gcc/avr/include/avr/common.h:
C:/Program\ Files/avr-gcc/avr/include/avr/version.h:
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h:
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h:
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h:
C:/Program\ Files/avr-gcc/avr/include/util/delay.h:
C:/Program\ Files/avr-gcc/avr/include/util/delay_basic.h:

Binary file not shown.

View File

@ -0,0 +1,11 @@
build/default/production/zero_cross_detection.o.d \
build/default/production/zero_cross_detection.o: zero_cross_detection.c \
zero_cross_detection.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h \
C:/Program\ Files/avr-gcc/avr/include/stdint.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h ADC.h
zero_cross_detection.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h:
C:/Program\ Files/avr-gcc/avr/include/stdint.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h:
ADC.h:

93
config.h Normal file
View File

@ -0,0 +1,93 @@
/**
* @file config.h
* @author Jake G
* @date 15 June 2024
* @brief File contains the project configuration values
*
* This file contains the user changable parameters. Most the values are
* constants that will change the behavior of the system.
*
* For these changes to take affect you must recompile/rebuild the project
* after you have changed the values.
*/
#ifndef CONFIG_H
#define CONFIG_H
//#define __AVR_ATtiny404__
#include <stdint.h>
//#include <avr/io.h>
//#define ZC_PORT_DIR &PORTA.DIR
//*ZCP_DIR = &PORTA.DIR;
/**
* @brief Result type for the returned values from functions
*
*/
typedef enum ResultEnum{
OK,
Err
}ResultEnum;
/**
* @brief The type for Triac gate duration(micro seconds)
*
*/
typedef uint16_t DurationUs_t;
/**
* @brief Positive Zero Crossing Trigger Value
* The 10 bit value at which the program triggers the ISR to handle
* the zero crossing event.
*
* You can adjust this to change when the program will start the timer.
*/
const uint16_t TriggerValue = 512;
/**
* @brief Triac Gate Pulse Quantity
*
* Contains the number of pulses that the micro-controller will send to the
* gates of the triac.
*
* This number should match the quantity of timings inside the pulse/duration
* array.
*/
const int GatePulsesQty = 5;
/**
* @brief Gate Pulses Array
*
* The gate pulses array holds the duration of pulses in microseconds for the
* triacs gates. The length of the array must be matched with the
* GatePulsesQuantity parameter.
*/
const uint16_t GatePulses[5] = {250, 500, 750, 1000, 1250};
/**
* @brief Low Threshold
*
*/
const uint16_t LowThresh = 527;
/**
* @brief High Threshold
*
*/
const uint16_t HighThresh = 1000;
/**
* @brief The time constant.
*/
const double Tau = 8250;
#endif //CONFIG_H

0
defmplabxtrace.log Normal file
View File

BIN
defmplabxtrace.log.inx Normal file

Binary file not shown.

BIN
dist/default/debug/fg004a.X.debug.elf vendored Normal file

Binary file not shown.

837
dist/default/debug/fg004a.X.debug.map vendored Normal file
View File

@ -0,0 +1,837 @@
Archive member included to satisfy reference by file (symbol)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
build/default/debug/main.o (__ltsf2)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
build/default/debug/main.o (__divsf3)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o) (__divsf3x)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
build/default/debug/main.o (__fixunssfsi)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
build/default/debug/TriacOut.o (__floatunsisf)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o) (__fp_cmp)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o) (__fp_inf)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o) (__fp_nan)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o) (__fp_pscA)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o) (__fp_pscB)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o) (__fp_round)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o) (__fp_split3)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o) (__fp_zero)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
build/default/debug/main.o (__gtsf2)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
build/default/debug/main.o (__mulsf3)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o) (__mulsf3x)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
build/default/debug/main.o (__do_copy_data)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o (exit)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(_Exit.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o) (_Exit)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(_Exit.o) (_exit)
Discarded input sections
.data 0x0000000000000000 0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
.bss 0x0000000000000000 0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
.text 0x0000000000000000 0x0 build/default/debug/main.o
.data 0x0000000000000000 0x0 build/default/debug/main.o
.bss 0x0000000000000000 0x0 build/default/debug/main.o
.text._delay_us
0x0000000000000000 0x128 build/default/debug/main.o
.text.setup 0x0000000000000000 0x4 build/default/debug/main.o
.data.Delay_MicroSeconds
0x0000000000000000 0x2 build/default/debug/main.o
.rodata.Tau 0x0000000000000000 0x4 build/default/debug/main.o
.rodata.HighThresh
0x0000000000000000 0x2 build/default/debug/main.o
.rodata.LowThresh
0x0000000000000000 0x2 build/default/debug/main.o
.rodata.GatePulses
0x0000000000000000 0xa build/default/debug/main.o
.rodata.GatePulsesQty
0x0000000000000000 0x2 build/default/debug/main.o
.rodata.TriggerValue
0x0000000000000000 0x2 build/default/debug/main.o
.text 0x0000000000000000 0x0 build/default/debug/ADC.o
.data 0x0000000000000000 0x0 build/default/debug/ADC.o
.bss 0x0000000000000000 0x0 build/default/debug/ADC.o
.text 0x0000000000000000 0x0 build/default/debug/RegEdit.o
.data 0x0000000000000000 0x0 build/default/debug/RegEdit.o
.bss 0x0000000000000000 0x0 build/default/debug/RegEdit.o
.text.RegEdit_SetRegister
0x0000000000000000 0x8 build/default/debug/RegEdit.o
.text.RegEdit_IsBitSet
0x0000000000000000 0x24 build/default/debug/RegEdit.o
.text.RegEdit_AND_Num
0x0000000000000000 0xa build/default/debug/RegEdit.o
.text 0x0000000000000000 0x0 build/default/debug/TriacOut.o
.data 0x0000000000000000 0x0 build/default/debug/TriacOut.o
.bss 0x0000000000000000 0x0 build/default/debug/TriacOut.o
.text.Delay_MicroSeconds_impl
0x0000000000000000 0x2 build/default/debug/TriacOut.o
.text.TriacOut_InitTimerA
0x0000000000000000 0x2 build/default/debug/TriacOut.o
.text.TriacOut_SetupPins
0x0000000000000000 0x1a build/default/debug/TriacOut.o
.text.TriacOut_SetAllHigh
0x0000000000000000 0x1a build/default/debug/TriacOut.o
.text.TriacOut_PulsePins
0x0000000000000000 0x2c build/default/debug/TriacOut.o
.data.Delay_MicroSecnds
0x0000000000000000 0x2 build/default/debug/TriacOut.o
.debug_info 0x0000000000000000 0x689 build/default/debug/TriacOut.o
.debug_abbrev 0x0000000000000000 0x14d build/default/debug/TriacOut.o
.debug_loc 0x0000000000000000 0x36 build/default/debug/TriacOut.o
.debug_aranges
0x0000000000000000 0x40 build/default/debug/TriacOut.o
.debug_ranges 0x0000000000000000 0x30 build/default/debug/TriacOut.o
.debug_line 0x0000000000000000 0x183 build/default/debug/TriacOut.o
.debug_str 0x0000000000000000 0x20 build/default/debug/TriacOut.o
.comment 0x0000000000000000 0x30 build/default/debug/TriacOut.o
.debug_frame 0x0000000000000000 0x64 build/default/debug/TriacOut.o
.text 0x0000000000000000 0x0 build/default/debug/zero_cross_detection.o
.data 0x0000000000000000 0x0 build/default/debug/zero_cross_detection.o
.bss 0x0000000000000000 0x0 build/default/debug/zero_cross_detection.o
.text.ZCD_Setup
0x0000000000000000 0xa build/default/debug/zero_cross_detection.o
.text.ZCD_IsTriggered
0x0000000000000000 0x3c build/default/debug/zero_cross_detection.o
.text.ZCD_Poll
0x0000000000000000 0x8 build/default/debug/zero_cross_detection.o
.debug_info 0x0000000000000000 0x37c build/default/debug/zero_cross_detection.o
.debug_abbrev 0x0000000000000000 0xf4 build/default/debug/zero_cross_detection.o
.debug_loc 0x0000000000000000 0x40 build/default/debug/zero_cross_detection.o
.debug_aranges
0x0000000000000000 0x30 build/default/debug/zero_cross_detection.o
.debug_ranges 0x0000000000000000 0x20 build/default/debug/zero_cross_detection.o
.debug_line 0x0000000000000000 0xf1 build/default/debug/zero_cross_detection.o
.debug_str 0x0000000000000000 0x14 build/default/debug/zero_cross_detection.o
.comment 0x0000000000000000 0x30 build/default/debug/zero_cross_detection.o
.debug_frame 0x0000000000000000 0x50 build/default/debug/zero_cross_detection.o
.text 0x0000000000000000 0x8 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
.stack.descriptors
0x0000000000000000 0x6a c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
.text 0x0000000000000000 0x4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
.stack.descriptors
0x0000000000000000 0x16 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
.text 0x0000000000000000 0xce c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
.stack.descriptors
0x0000000000000000 0x31 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
.text 0x0000000000000000 0x58 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
.stack.descriptors
0x0000000000000000 0x1a c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
.text 0x0000000000000000 0x7a c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
.stack.descriptors
0x0000000000000000 0x34 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
.text 0x0000000000000000 0x48 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
.stack.descriptors
0x0000000000000000 0x16 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
.text 0x0000000000000000 0xc c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
.stack.descriptors
0x0000000000000000 0x16 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
.text 0x0000000000000000 0x6 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
.stack.descriptors
0x0000000000000000 0x16 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
.text 0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
.stack.descriptors
0x0000000000000000 0x17 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
.text 0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
.stack.descriptors
0x0000000000000000 0x17 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
.text 0x0000000000000000 0x22 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
.stack.descriptors
0x0000000000000000 0x18 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
.text 0x0000000000000000 0x44 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
.stack.descriptors
0x0000000000000000 0x32 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
.text 0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
.stack.descriptors
0x0000000000000000 0x2f c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
.text 0x0000000000000000 0x8 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
.stack.descriptors
0x0000000000000000 0x2a c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
.text 0x0000000000000000 0x4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
.stack.descriptors
0x0000000000000000 0x16 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
.text 0x0000000000000000 0xc4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
.stack.descriptors
0x0000000000000000 0x31 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
.text 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.div
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
.stack.descriptors
0x0000000000000000 0x73 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
.text 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(_Exit.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(_Exit.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(_Exit.o)
.stack.descriptors
0x0000000000000000 0x13 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(_Exit.o)
.text 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.data 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.bss 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.mul
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.div
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc 0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.prologue
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.stack.descriptors
0x0000000000000000 0x13 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.builtins
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.fmul
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.fixed
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
Memory Configuration
Name Origin Length Attributes
text 0x0000000000000000 0x0000000000001000 xr
data 0x0000000000803f00 0x0000000000000100 rw !x
eeprom 0x0000000000810000 0x0000000000000080 rw !x
fuse 0x0000000000820000 0x000000000000000a rw !x
lock 0x0000000000830000 0x0000000000000400 rw !x
signature 0x0000000000840000 0x0000000000000400 rw !x
user_signatures 0x0000000000850000 0x0000000000000400 rw !x
bootrow 0x0000000000860000 0x0000000000000400 rw !x
*default* 0x0000000000000000 0xffffffffffffffff
Linker script and memory map
Address of section .data set to 0x803f00
0x0000000000008000 __RODATA_PM_OFFSET__ = 0x8000
LOAD C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
0x0000000000000001 __MPLAB_BUILD = 0x1
LOAD build/default/debug/main.o
LOAD build/default/debug/ADC.o
LOAD build/default/debug/RegEdit.o
LOAD build/default/debug/TriacOut.o
LOAD build/default/debug/zero_cross_detection.o
START GROUP
LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a
END GROUP
0x0000000000000001 __MPLAB_DEBUG = 0x1
0x0000000000000001 __DEBUG = 0x1
START GROUP
LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a
LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libm.a
LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a
LOAD C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls\libattiny404.a
END GROUP
[0x0000000000000000] __TEXT_REGION_ORIGIN__ = DEFINED (__TEXT_REGION_ORIGIN__)?__TEXT_REGION_ORIGIN__:0x0
[0x0000000000803f00] __DATA_REGION_ORIGIN__ = DEFINED (__DATA_REGION_ORIGIN__)?__DATA_REGION_ORIGIN__:0x802000
[0x0000000000001000] __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x100000
[0x0000000000000100] __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
[0x0000000000000080] __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
[0x000000000000000a] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x0000000000000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x0000000000000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x0000000000000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
0x0000000000008000 __RODATA_PM_OFFSET__ = DEFINED (__RODATA_PM_OFFSET__)?__RODATA_PM_OFFSET__:0x8000
0x0000000000000400 __BOOTROW_REGION_LENGTH__ = DEFINED (__BOOTROW_REGION_LENGTH__)?__BOOTROW_REGION_LENGTH__:0x400
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x0000000000000000 0x8c
*(.vectors)
.vectors 0x0000000000000000 0x34 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
0x0000000000000000 __vector_default
0x0000000000000000 __vectors
*(.vectors)
*(.progmem.gcc*)
*(.dinit)
.dinit 0x0000000000000034 0x7 data_init
0x000000000000003c . = ALIGN (0x2)
*fill* 0x000000000000003b 0x1
0x000000000000003c __trampolines_start = .
*(.trampolines)
.trampolines 0x000000000000003c 0x0 linker stubs
*(.trampolines*)
0x000000000000003c __trampolines_end = .
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
0x000000000000003c . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x000000000000003c __ctors_start = .
*(.ctors)
0x000000000000003c __ctors_end = .
0x000000000000003c __dtors_start = .
*(.dtors)
0x000000000000003c __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x000000000000003c 0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
0x000000000000003c __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x000000000000003c 0xc C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x0000000000000048 0x3c c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
0x0000000000000048 __do_copy_data
0x0000000000000076 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x0000000000000084 0x4 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
*(.init9)
0x0000000000000088 . = ALIGN (0x2)
*(.fini9)
.fini9 0x0000000000000088 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
0x0000000000000088 _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x0000000000000088 0x4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
*(.fini0)
0x000000000000008c _etext = .
.data 0x0000000000803f00 0x0 load address 0x000000000000008c
[!provide] PROVIDE (__data_start, .)
*(.gnu.linkonce.d*)
0x0000000000803f00 . = ALIGN (0x2)
0x0000000000803f00 _edata = .
[!provide] PROVIDE (__data_end, .)
.bss 0x0000000000803f00 0x0
[!provide] PROVIDE (__bss_start, .)
*(COMMON)
[!provide] PROVIDE (__bss_end, .)
0x000000000000008c __data_load_start = LOADADDR (.data)
0x000000000000008c __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0000000000803f00 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
0x0000000000803f00 _end = .
.eeprom 0x0000000000810000 0x0
*(.eeprom*)
0x0000000000810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.user_signatures
*(.user_signatures*)
.bootrow
*(.bootrow*)
.stab
*(.stab)
.stabstr
*(.stabstr)
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment 0x0000000000000000 0x5b
*(.comment)
.comment 0x0000000000000000 0x2f build/default/debug/main.o
0x30 (size before relaxing)
.comment 0x000000000000002f 0x30 build/default/debug/ADC.o
.comment 0x000000000000002f 0x30 build/default/debug/RegEdit.o
.comment 0x000000000000002f 0x2c c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
0x2d (size before relaxing)
.comment 0x000000000000005b 0x2d c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(_Exit.o)
.stack.descriptors.hdr
0x0000000000000000 0x2a
.stack.descriptors.hdr
0x0000000000000000 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
.stack.descriptors.hdr
0x000000000000000e 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(_Exit.o)
.stack.descriptors.hdr
0x000000000000001c 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.note.GNU-stack
0x0000000000000000 0x0
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
.note.GNU-stack
0x0000000000000000 0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(_Exit.o)
.note.gnu.build-id
*(.note.gnu.build-id)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x0000000000000000 0xc0
*(.debug_aranges)
.debug_aranges
0x0000000000000000 0x30 build/default/debug/main.o
.debug_aranges
0x0000000000000030 0x38 build/default/debug/ADC.o
.debug_aranges
0x0000000000000068 0x58 build/default/debug/RegEdit.o
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x0000000000000000 0x2c57
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x0000000000000000 0x1637 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
.debug_info 0x0000000000001637 0x7e8 build/default/debug/main.o
.debug_info 0x0000000000001e1f 0x949 build/default/debug/ADC.o
.debug_info 0x0000000000002768 0x4ef build/default/debug/RegEdit.o
.debug_abbrev 0x0000000000000000 0x19e4
*(.debug_abbrev)
.debug_abbrev 0x0000000000000000 0x1504 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
.debug_abbrev 0x0000000000001504 0x22b build/default/debug/main.o
.debug_abbrev 0x000000000000172f 0x1de build/default/debug/ADC.o
.debug_abbrev 0x000000000000190d 0xd7 build/default/debug/RegEdit.o
.debug_line 0x0000000000000000 0x65d
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x0000000000000000 0x136 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
.debug_line 0x0000000000000136 0x26b build/default/debug/main.o
.debug_line 0x00000000000003a1 0x197 build/default/debug/ADC.o
.debug_line 0x0000000000000538 0x125 build/default/debug/RegEdit.o
.debug_frame 0x0000000000000000 0x178
*(.debug_frame)
.debug_frame 0x0000000000000000 0x88 build/default/debug/main.o
.debug_frame 0x0000000000000088 0x5c build/default/debug/ADC.o
.debug_frame 0x00000000000000e4 0x94 build/default/debug/RegEdit.o
.debug_str 0x0000000000000000 0xa00
*(.debug_str)
.debug_str 0x0000000000000000 0x943 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
.debug_str 0x0000000000000943 0x32 build/default/debug/main.o
.debug_str 0x0000000000000975 0x7b build/default/debug/ADC.o
.debug_str 0x00000000000009f0 0x10 build/default/debug/RegEdit.o
.debug_loc 0x0000000000000000 0x368
*(.debug_loc)
.debug_loc 0x0000000000000000 0x27a build/default/debug/main.o
.debug_loc 0x000000000000027a 0x84 build/default/debug/ADC.o
.debug_loc 0x00000000000002fe 0x6a build/default/debug/RegEdit.o
.debug_macinfo
*(.debug_macinfo)
.debug_weaknames
*(.debug_weaknames)
.debug_funcnames
*(.debug_funcnames)
.debug_typenames
*(.debug_typenames)
.debug_varnames
*(.debug_varnames)
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges 0x0000000000000000 0x90
*(.debug_ranges)
.debug_ranges 0x0000000000000000 0x20 build/default/debug/main.o
.debug_ranges 0x0000000000000020 0x28 build/default/debug/ADC.o
.debug_ranges 0x0000000000000048 0x48 build/default/debug/RegEdit.o
.debug_macro
*(.debug_macro)
OUTPUT(dist/default/debug/fg004a.X.debug.elf elf32-avr)
LOAD linker stubs
LOAD data_init
.note.gnu.avr.deviceinfo
0x0000000000000000 0x3c
.note.gnu.avr.deviceinfo
0x0000000000000000 0x3c C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
.text.main 0x000000000000008c 0x3c
.text.main 0x000000000000008c 0x3c build/default/debug/main.o
0x000000000000008c main
.text.ADC_Init 0x00000000000000c8 0x38
.text.ADC_Init
0x00000000000000c8 0x38 build/default/debug/ADC.o
0x00000000000000c8 ADC_Init
.text.ADC_ReadValue_Impl
0x0000000000000100 0x20
.text.ADC_ReadValue_Impl
0x0000000000000100 0x20 build/default/debug/ADC.o
0x0000000000000100 ADC_ReadValue_Impl
.text.RegEdit_ClearBit
0x0000000000000120 0x1a
.text.RegEdit_ClearBit
0x0000000000000120 0x1a build/default/debug/RegEdit.o
0x0000000000000120 RegEdit_ClearBit
.text.RegEdit_SetBit
0x000000000000013a 0x18
.text.RegEdit_SetBit
0x000000000000013a 0x18 build/default/debug/RegEdit.o
0x000000000000013a RegEdit_SetBit
.text.ADC_Enable
0x0000000000000152 0x16
.text.ADC_Enable
0x0000000000000152 0x16 build/default/debug/ADC.o
0x0000000000000152 ADC_Enable
.text.ADC_Disable
0x0000000000000168 0x10
.text.ADC_Disable
0x0000000000000168 0x10 build/default/debug/ADC.o
0x0000000000000168 ADC_Disable
.text.exit 0x0000000000000178 0xe
.text.exit 0x0000000000000178 0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
0x0000000000000178 exit
.text.RegEdit_OR_Num
0x0000000000000186 0xa
.text.RegEdit_OR_Num
0x0000000000000186 0xa build/default/debug/RegEdit.o
0x0000000000000186 RegEdit_OR_Num
.text.RegEdit_ClearRegister
0x0000000000000190 0x6
.text.RegEdit_ClearRegister
0x0000000000000190 0x6 build/default/debug/RegEdit.o
0x0000000000000190 RegEdit_ClearRegister
.text.RegEdit_SetNum
0x0000000000000196 0x6
.text.RegEdit_SetNum
0x0000000000000196 0x6 build/default/debug/RegEdit.o
0x0000000000000196 RegEdit_SetNum
.text 0x000000000000019c 0x2
.text 0x000000000000019c 0x2 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/lib/avrxmega3/short-calls/crtattiny404.o
0x000000000000019c __vector_22
0x000000000000019c __vector_1
0x000000000000019c __vector_24
0x000000000000019c __vector_12
0x000000000000019c __bad_interrupt
0x000000000000019c __vector_6
0x000000000000019c __vector_3
0x000000000000019c __vector_23
0x000000000000019c __vector_25
0x000000000000019c __vector_11
0x000000000000019c __vector_13
0x000000000000019c __vector_17
0x000000000000019c __vector_19
0x000000000000019c __vector_7
0x000000000000019c __vector_5
0x000000000000019c __vector_4
0x000000000000019c __vector_9
0x000000000000019c __vector_2
0x000000000000019c __vector_21
0x000000000000019c __vector_15
0x000000000000019c __vector_8
0x000000000000019c __vector_14
0x000000000000019c __vector_10
0x000000000000019c __vector_16
0x000000000000019c __vector_18
0x000000000000019c __vector_20
.text.__dummy_fini
0x000000000000019e 0x2
.text.__dummy_fini
0x000000000000019e 0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
0x000000000000019e _fini
.text.__dummy_funcs_on_exit
0x00000000000001a0 0x2
.text.__dummy_funcs_on_exit
0x00000000000001a0 0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
0x00000000000001a0 __funcs_on_exit
.text.__dummy_simulator_exit
0x00000000000001a2 0x2
.text.__dummy_simulator_exit
0x00000000000001a2 0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(exit.o)
0x00000000000001a2 __simulator_exit
.text._Exit 0x00000000000001a4 0x2
.text._Exit 0x00000000000001a4 0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3/short-calls\libc.a(_Exit.o)
0x00000000000001a4 _Exit
.data.ADC_ReadValue
0x0000000000803f00 0x2 load address 0x00000000000001a6
.data.ADC_ReadValue
0x0000000000803f00 0x2 build/default/debug/ADC.o
0x0000000000803f00 ADC_ReadValue

17
dist/default/debug/memoryfile.xml vendored Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project>
<executable name="dist/default/debug/fg004a.X.debug.elf">
<memory name="program">
<units>bytes</units>
<length>4096</length>
<used>424</used>
<free>3672</free>
</memory>
<memory name="data">
<units>bytes</units>
<length>256</length>
<used>2</used>
<free>254</free>
</memory>
</executable>
</project>

Binary file not shown.

View File

@ -0,0 +1,125 @@
:1000000019C02BC02AC029C028C027C026C025C0BF
:1000100024C023C022C021C020C01FC01EC01DC0DC
:100020001CC01BC01AC019C018C017C016C015C00C
:1000300014C013C011241FBECFEFCDBFDFE3DEBF5E
:100040001FE3A0E0BFE3E8EAF7E002C005900D92ED
:10005000A430B107D9F702D1A0C3D2CF2F923F92DB
:100060004F925F926F927F928F929F92AF92BF92C8
:10007000CF92DF92EF92FF920F931F93CF93DF9374
:10008000CDB7DEB7AA97CDBFDEBF062F172F8AA741
:1000900099A72BEA3AEA4AE25FE3C62ED72EE82E6A
:1000A000F92EC701B60116D3C62ED72EE82EF92E8B
:1000B00020E030E040E85FE3862E972EA82EB92E90
:1000C000C501B401B9D181150CF4AFC020E030E016
:1000D00040E05FE3402E512E6AA479A4C301B2012F
:1000E000F9D2862E972EA82EB92E20E03FEF4FE7AB
:1000F00057E469837A838B839C8369817A818B81BE
:100100009C81E4D2811509F0DCF420E030E04FE777
:1001100053E4CD82DE82EF82F8866D817E818F810D
:100120009885D4D2811511F00CF072C0C986DA8698
:10013000EB86FC8669857A858B859C85E9D176C0BE
:1001400020E030E04AE754E40D871E876F86788A06
:100150006D857E858F85988973D1C62ED72EE82E22
:10016000F92E20E030E04AEF53E4698B7A8B8B8BD9
:100170009C8B69897A898B899C89ACD2062F172F31
:100180008D83998320E03FEF4FE757E46D8B7E8BA3
:100190008F8B988F6D897E898F89988D97D28115E5
:1001A00009F07CF4098F1A8F8D818B8F89818C8F58
:1001B000698D7A8D8B8D9C8DABD1CB010197F1F739
:1001C00037C020E030E040E251E4C9A2DAA2EBA25D
:1001D000FCA269A17AA18BA19CA17CD26DA37EA374
:1001E0008FA398A76DA17EA18FA198A591D1262E4E
:1001F000372E21143104E1F022E330E0C9010197E8
:10020000F1F781E0281A310821143104B9F710C040
:100210008D8E9E8EAF8EB8A26D8D7E8D8F8D98A1A6
:1002200077D1CB010197F1F703C061E06A95F1F74F
:10023000AA96CDBFDEBFDF91CF911F910F91FF90A6
:10024000EF90DF90CF90BF90AF909F908F907F9076
:100250006F905F904F903F902F9008950F2EF8EA87
:10026000EF2EF7E8FF2EF02D0DE110E1CEE9D7E8F3
:10027000DFD0C8010197F1F770D07CD089919991B6
:1002800086D0CE15DF05A1F7F1CF61E088E096E0DA
:1002900061D0E0E0F6E0838580FFFDCFE0E0F6E0AE
:1002A00081E08387808991890895CF93C82F883012
:1002B00010F0CF910895682F82E094E02AD06C2F3F
:1002C00086E094E026D08C2F90E064E0805F9B4F26
:1002D00020D062E080E096E029D064E082E096E001
:1002E00018D0E7CF883008F00895682F86E096E0B0
:1002F0002BD060E080E096E00CD0089586E096E098
:1003000005D060E080E096E011D00895FC011082F5
:100310000895E82FF92F81E090E002C0880F991F1F
:100320006A95E2F76081682B60830895E82FF92FC2
:1003300081E090E002C0880F991F6A95E2F78095EE
:100340009081892380830895E82FF92F8081862B5F
:1003500080830895FC016083089561E080E094E06B
:10036000D8DF63E080E294E0D4DF62E080E294E0F2
:10037000D0DF089561E084E094E0CBDF63E084E2C5
:1003800094E0C7DF62E084E294E0C3DF0895CF9297
:10039000DF92EF92FF92BC0180E090E0E5D0E09127
:1003A000003FF091013FC62ED72EE82EF92EC7014F
:1003B000B601099561E084E094E0B8DF63E084E28F
:1003C00094E0B4DF62E084E294E0B0DFFF90EF906D
:1003D000DF90CF90089587E068DF87E083DF08959E
:1003E0000F931F93CF93DF93F6DFE091023FF091DD
:1003F000033F87E00995082F192F80DFECDFE0919C
:10040000023FF091033F87E00995C82FD92F76DF8F
:1004100091E0C017D10708F490E081E0C115D24007
:1004200008F480E08923DF91CF911F910F91089507
:10043000D7DF8115E9F30895D4D008F481E0089559
:100440000CD00AC102D140F0F9D030F021F45F3F66
:1004500019F0EBC0511134C1EEC00FD198F39923BC
:10046000C9F35523B1F3951B550BBB27AA27621778
:100470007307840738F09F5F5F4F220F331F441FBD
:10048000AA1FA9F333D00E2E3AF0E0E830D09150F5
:100490005040E695001CCAF729D0FE2F27D0660FE2
:1004A000771F881FBB1F261737074807AB07B0E821
:1004B00009F0BB0B802DBF01FF2793585F4F2AF037
:1004C0009E3F510568F0B1C0FBC05F3FECF3983E22
:1004D000DCF3869577956795B795F7959F5FC9F794
:1004E000880F911D9695879597F90895E1E0660F1D
:1004F000771F881FBB1F621773078407BA0720F096
:10050000621B730B840BBA0BEE1F88F7E0950895FE
:10051000BCD088F09F5790F0B92F9927B751A0F021
:10052000D1F0660F771F881F991F1AF0BA95C9F787
:1005300012C0B13081F0C3D0B1E00895C0C0672FC0
:10054000782F8827B85F39F0B93FCCF38695779537
:100550006795B395D9F73EF4909580957095619520
:100560007F4F8F4F9F4F0895E89409C097FB3EF44B
:1005700090958095709561957F4F8F4F9F4F9923F0
:10058000A9F0F92F96E9BB279395F695879577956E
:100590006795B795F111F8CFFAF4BB0F11F460FF2E
:1005A0001BC06F5F7F4F8F4F9F4F16C0882311F086
:1005B00096E911C0772321F09EE8872F762F05C09A
:1005C000662371F096E8862F70E060E02AF09A9535
:1005D000660F771F881FDAF7880F9695879597F92A
:1005E0000895990F0008550FAA0BE0E8FEEF1616C4
:1005F0001706E807F907C0F012161306E407F50717
:1006000098F0621B730B840B950B39F40A2661F08A
:10061000232B242B252B21F408950A2609F4A1402D
:10062000A6958FEF811D811D089597F99F6780E83A
:1006300070E060E008959FEF80EC089500240A9434
:100640001616170618060906089500240A941216AD
:100650001306140605060895092E0394000C11F4E0
:10066000882352F0BB0F40F4BF2B11F460FF04C08D
:100670006F5F7F4F8F4F9F4F089557FD9058440FE6
:10068000551F59F05F3F71F04795880F97FB991FF1
:1006900061F09F3F79F087950895121613061406AE
:1006A000551FF2CF4695F1DF08C01616170618063B
:1006B000991FF1CF86957105610508940895E89416
:1006C000BB2766277727CB0197F908958ADF08F4BF
:1006D0008FEF08950BD0C0CFB1DF28F0B6DF18F050
:1006E000952309F0A2CFA7CF1124EACFC6DFA0F34C
:1006F000959FD1F3950F50E0551F629FF001729FB7
:10070000BB27F00DB11D639FAA27F00DB11DAA1FD5
:10071000649F6627B00DA11D661F829F2227B00D22
:10072000A11D621F739FB00DA11D621F839FA00DAD
:10073000611D221F749F3327A00D611D231F849FFD
:10074000600D211D822F762F6A2F11249F57504054
:100750008AF0E1F088234AF0EE0FFF1FBB1F661FEF
:10076000771F881F91505040A9F79E3F510570F0A8
:100770005CCFA6CF5F3FECF3983EDCF38695779590
:100780006795B795F795E7959F5FC1F7FE2B880FA3
:0E079000911D9695879597F90895F894FFCFDF
:0A079E00FA00F401EE02E803E204A1
:0407A8002E004501D9
:00000001FF

View File

@ -0,0 +1,714 @@
Archive member included to satisfy reference by file (symbol)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
build/default/production/main.o (__ltsf2)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
build/default/production/main.o (__divsf3)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o) (__divsf3x)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
build/default/production/main.o (__fixunssfsi)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
build/default/production/TriacOut.o (__floatunsisf)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o) (__fp_cmp)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o) (__fp_inf)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o) (__fp_nan)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o) (__fp_pscA)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o) (__fp_pscB)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o) (__fp_round)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o) (__fp_split3)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o) (__fp_zero)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
build/default/production/main.o (__gtsf2)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
build/default/production/main.o (__mulsf3)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o) (__mulsf3x)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o (exit)
C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
build/default/production/main.o (__do_copy_data)
Discarded input sections
.data 0x00000000 0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
.bss 0x00000000 0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
.text 0x00000000 0x0 build/default/production/main.o
.data 0x00000000 0x0 build/default/production/main.o
.bss 0x00000000 0x0 build/default/production/main.o
.rodata.Tau 0x00000000 0x4 build/default/production/main.o
.rodata.HighThresh
0x00000000 0x2 build/default/production/main.o
.rodata.LowThresh
0x00000000 0x2 build/default/production/main.o
.rodata.GatePulsesQty
0x00000000 0x2 build/default/production/main.o
.rodata.TriggerValue
0x00000000 0x2 build/default/production/main.o
.text 0x00000000 0x0 build/default/production/ADC.o
.data 0x00000000 0x0 build/default/production/ADC.o
.bss 0x00000000 0x0 build/default/production/ADC.o
.text 0x00000000 0x0 build/default/production/RegEdit.o
.data 0x00000000 0x0 build/default/production/RegEdit.o
.bss 0x00000000 0x0 build/default/production/RegEdit.o
.text.RegEdit_SetRegister
0x00000000 0x8 build/default/production/RegEdit.o
.text.RegEdit_IsBitSet
0x00000000 0x22 build/default/production/RegEdit.o
.text.RegEdit_AND_Num
0x00000000 0xc build/default/production/RegEdit.o
.text 0x00000000 0x0 build/default/production/TriacOut.o
.data 0x00000000 0x0 build/default/production/TriacOut.o
.bss 0x00000000 0x0 build/default/production/TriacOut.o
.text.Delay_MicroSeconds_impl
0x00000000 0x2 build/default/production/TriacOut.o
.text.TriacOut_InitTimerA
0x00000000 0x2 build/default/production/TriacOut.o
.data.Delay_MicroSecnds
0x00000000 0x2 build/default/production/TriacOut.o
.text 0x00000000 0x0 build/default/production/zero_cross_detection.o
.data 0x00000000 0x0 build/default/production/zero_cross_detection.o
.bss 0x00000000 0x0 build/default/production/zero_cross_detection.o
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.div
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.text 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.data 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x00000000 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
Memory Configuration
Name Origin Length Attributes
text 0x00000000 0x00001000 xr
data 0x00803f00 0x00000100 rw!x
eeprom 0x00810000 0x00000080 rw!x
fuse 0x00820000 0x0000000a rw!x
lock 0x00830000 0x00000400 rw!x
signature 0x00840000 0x00000400 rw!x
user_signatures 0x00850000 0x00000400 rw!x
*default* 0x00000000 0xffffffff
Linker script and memory map
Address of section .data set to 0x803f00
0x00008000 __RODATA_PM_OFFSET__ = 0x8000
LOAD C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
LOAD build/default/production/main.o
LOAD build/default/production/ADC.o
LOAD build/default/production/RegEdit.o
LOAD build/default/production/TriacOut.o
LOAD build/default/production/zero_cross_detection.o
0x00000001 __MPLAB_BUILD = 0x1
START GROUP
LOAD C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a
END GROUP
START GROUP
LOAD C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a
LOAD C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a
LOAD C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libc.a
LOAD C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls\libattiny404.a
END GROUP
[0x00000000] __TEXT_REGION_ORIGIN__ = DEFINED (__TEXT_REGION_ORIGIN__)?__TEXT_REGION_ORIGIN__:0x0
[0x00001000] __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x100000
[0x00803f00] __DATA_REGION_ORIGIN__ = DEFINED (__DATA_REGION_ORIGIN__)?__DATA_REGION_ORIGIN__:0x802000
[0x00000100] __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
[0x00000080] __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
[0x0000000a] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x00000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x00000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x00000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
0x00008000 __RODATA_PM_OFFSET__ = DEFINED (__RODATA_PM_OFFSET__)?__RODATA_PM_OFFSET__:0x8000
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x00000000 0x79e
*(.vectors)
.vectors 0x00000000 0x34 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
0x00000034 . = ALIGN (0x2)
0x00000034 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000034 0x0 linker stubs
*(.trampolines*)
0x00000034 __trampolines_end = .
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
*(.progmem.*)
0x00000034 . = ALIGN (0x2)
*(.lowtext)
*(.lowtext*)
0x00000034 __ctors_start = .
*(.ctors)
0x00000034 __ctors_end = .
0x00000034 __dtors_start = .
*(.dtors)
0x00000034 __dtors_end = .
SORT_BY_NAME(*)(.ctors)
SORT_BY_NAME(*)(.dtors)
*(.init0)
.init0 0x00000034 0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
0x00000034 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x00000034 0xc C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000040 0x16 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
0x00000040 __do_copy_data
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000056 0x4 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
*(.init9)
*(.text)
.text 0x0000005a 0x2 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
0x0000005a __vector_22
0x0000005a __vector_1
0x0000005a __vector_24
0x0000005a __vector_12
0x0000005a __bad_interrupt
0x0000005a __vector_6
0x0000005a __vector_3
0x0000005a __vector_23
0x0000005a __vector_25
0x0000005a __vector_11
0x0000005a __vector_13
0x0000005a __vector_17
0x0000005a __vector_19
0x0000005a __vector_7
0x0000005a __vector_5
0x0000005a __vector_4
0x0000005a __vector_9
0x0000005a __vector_2
0x0000005a __vector_21
0x0000005a __vector_15
0x0000005a __vector_8
0x0000005a __vector_14
0x0000005a __vector_10
0x0000005a __vector_16
0x0000005a __vector_18
0x0000005a __vector_20
0x0000005c . = ALIGN (0x2)
*(.text.*)
.text._delay_us
0x0000005c 0x200 build/default/production/main.o
.text.main 0x0000025c 0x2e build/default/production/main.o
0x0000025c main
.text.ADC_ReadValue_Impl
0x0000028a 0x20 build/default/production/ADC.o
0x0000028a ADC_ReadValue_Impl
.text.ADC_Init
0x000002aa 0x3a build/default/production/ADC.o
0x000002aa ADC_Init
.text.ADC_Enable
0x000002e4 0x18 build/default/production/ADC.o
0x000002e4 ADC_Enable
.text.ADC_Disable
0x000002fc 0x10 build/default/production/ADC.o
0x000002fc ADC_Disable
.text.RegEdit_ClearRegister
0x0000030c 0x6 build/default/production/RegEdit.o
0x0000030c RegEdit_ClearRegister
.text.RegEdit_SetBit
0x00000312 0x1a build/default/production/RegEdit.o
0x00000312 RegEdit_SetBit
.text.RegEdit_ClearBit
0x0000032c 0x1c build/default/production/RegEdit.o
0x0000032c RegEdit_ClearBit
.text.RegEdit_OR_Num
0x00000348 0xc build/default/production/RegEdit.o
0x00000348 RegEdit_OR_Num
.text.RegEdit_SetNum
0x00000354 0x6 build/default/production/RegEdit.o
0x00000354 RegEdit_SetNum
.text.TriacOut_SetupPins
0x0000035a 0x1a build/default/production/TriacOut.o
0x0000035a TriacOut_SetupPins
.text.TriacOut_SetAllHigh
0x00000374 0x1a build/default/production/TriacOut.o
0x00000374 TriacOut_SetAllHigh
.text.TriacOut_PulsePins
0x0000038e 0x48 build/default/production/TriacOut.o
0x0000038e TriacOut_PulsePins
.text.ZCD_Setup
0x000003d6 0xa build/default/production/zero_cross_detection.o
0x000003d6 ZCD_Setup
.text.ZCD_IsTriggered
0x000003e0 0x50 build/default/production/zero_cross_detection.o
0x000003e0 ZCD_IsTriggered
.text.ZCD_Poll
0x00000430 0x8 build/default/production/zero_cross_detection.o
0x00000430 ZCD_Poll
.text.avr-libc.fplib
0x00000438 0x8 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(cmpsf2.o)
0x00000438 __nesf2
0x00000438 __eqsf2
0x00000438 __cmpsf2
0x00000438 __ltsf2
0x00000438 __lesf2
.text.avr-libc.fplib
0x00000440 0x4 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3.o)
0x00000440 __divsf3
.text.avr-libc.fplib
0x00000444 0xcc C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(divsf3x.o)
0x0000045a __divsf3x
0x0000045e __divsf3_pse
.text.avr-libc.fplib
0x00000510 0x58 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fixunssfsi.o)
0x00000510 __fixunssfsi
.text.avr-libc.fplib
0x00000568 0x7a C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(floatsisf.o)
0x00000568 __floatunsisf
0x0000056c __floatsisf
.text.avr-libc.fplib
0x000005e2 0x48 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_cmp.o)
0x000005e2 __fp_cmp
.text.avr-libc.fplib
0x0000062a 0xc C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_inf.o)
0x0000062a __fp_inf
.text.avr-libc.fplib
0x00000636 0x6 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_nan.o)
0x00000636 __fp_nan
.text.avr-libc.fplib
0x0000063c 0xe C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscA.o)
0x0000063c __fp_pscA
.text.avr-libc.fplib
0x0000064a 0xe C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_pscB.o)
0x0000064a __fp_pscB
.text.avr-libc.fplib
0x00000658 0x22 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_round.o)
0x00000658 __fp_round
.text.avr-libc.fplib
0x0000067a 0x44 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_split3.o)
0x0000067a __fp_split3
0x0000068a __fp_splitA
.text.avr-libc.fplib
0x000006be 0xe C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(fp_zero.o)
0x000006be __fp_zero
0x000006c0 __fp_szero
.text.avr-libc.fplib
0x000006cc 0x8 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(gesf2.o)
0x000006cc __gesf2
0x000006cc __gtsf2
.text.avr-libc.fplib
0x000006d4 0x4 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3.o)
0x000006d4 __mulsf3
.text.avr-libc.fplib
0x000006d8 0xc2 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/../../../../avr/lib/avrxmega3/short-calls\libm.a(mulsf3x.o)
0x000006ec __mulsf3x
0x000006f0 __mulsf3_pse
0x0000079a . = ALIGN (0x2)
*(.fini9)
.fini9 0x0000079a 0x0 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
0x0000079a _exit
0x0000079a exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x0000079a 0x4 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
*(.fini0)
*(.hightext)
*(.hightext*)
*(.progmemx.*)
0x0000079e . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
0x0000079e _etext = .
.rodata 0x0000879e 0xa load address 0x0000079e
*(.rodata)
*(.rodata*)
.rodata.GatePulses
0x0000879e 0xa build/default/production/main.o
0x0000879e GatePulses
*(.gnu.linkonce.r*)
.data 0x00803f00 0x4 load address 0x000007a8
0x00803f00 PROVIDE (__data_start = .)
*(.data)
*(.data*)
.data.Delay_MicroSeconds
0x00803f00 0x2 build/default/production/main.o
0x00803f00 Delay_MicroSeconds
.data.ADC_ReadValue
0x00803f02 0x2 build/default/production/ADC.o
0x00803f02 ADC_ReadValue
*(.gnu.linkonce.d*)
0x00803f04 . = ALIGN (0x2)
0x00803f04 _edata = .
0x00803f04 PROVIDE (__data_end = .)
.bss 0x00803f04 0x0
[!provide] PROVIDE (__bss_start = .)
*(.bss)
*(.bss*)
*(COMMON)
[!provide] PROVIDE (__bss_end = .)
0x000007a8 __data_load_start = LOADADDR (.data)
0x000007ac __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00803f04 0x0
[!provide] PROVIDE (__noinit_start = .)
*(.noinit .noinit.* .gnu.linkonce.n.*)
[!provide] PROVIDE (__noinit_end = .)
0x00803f04 _end = .
[!provide] PROVIDE (__heap_start = .)
[!provide] PROVIDE (__flmap_init_label = DEFINED (__flmap_noinit_start)?__flmap_noinit_start:0x0)
[!provide] PROVIDE (__flmap = DEFINED (__flmap)?__flmap:0x0)
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.stab
*(.stab)
.stabstr
*(.stabstr)
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment 0x00000000 0x12
*(.comment)
.comment 0x00000000 0x12 build/default/production/main.o
0x13 (size before relaxing)
.comment 0x00000012 0x13 build/default/production/ADC.o
.comment 0x00000012 0x13 build/default/production/RegEdit.o
.comment 0x00000012 0x13 build/default/production/TriacOut.o
.comment 0x00000012 0x13 build/default/production/zero_cross_detection.o
.note.gnu.avr.deviceinfo
0x00000000 0x3c
.note.gnu.avr.deviceinfo
0x00000000 0x3c C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
.gnu.build.attributes
*(.gnu.build.attributes .gnu.build.attributes.*)
.note.gnu.build-id
*(.note.gnu.build-id)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x40
*(.debug_aranges)
.debug_aranges
0x00000000 0x20 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.debug_aranges
0x00000020 0x20 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x00000000 0x167f
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x1637 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
.debug_info 0x00001637 0x24 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.debug_info 0x0000165b 0x24 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.debug_abbrev 0x00000000 0x152c
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x1504 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
.debug_abbrev 0x00001504 0x14 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.debug_abbrev 0x00001518 0x14 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.debug_line 0x00000000 0x20e
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x00000000 0x136 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
.debug_line 0x00000136 0x51 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.debug_line 0x00000187 0x87 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.debug_frame
*(.debug_frame)
.debug_str 0x00000000 0x9bf
*(.debug_str)
.debug_str 0x00000000 0x943 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/gcc/dev/attiny404/avrxmega3/short-calls/crtattiny404.o
.debug_str 0x00000943 0x7c C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.debug_str 0x000009bf 0x7c C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.debug_loc
*(.debug_loc)
.debug_macinfo
*(.debug_macinfo)
.debug_weaknames
*(.debug_weaknames)
.debug_funcnames
*(.debug_funcnames)
.debug_typenames
*(.debug_typenames)
.debug_varnames
*(.debug_varnames)
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges
*(.debug_ranges)
.debug_addr
*(.debug_addr)
.debug_line_str
0x00000000 0x70
*(.debug_line_str)
.debug_line_str
0x00000000 0x70 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_exit.o)
.debug_line_str
0x00000070 0x70 C:/Program Files/avr-gcc/bin/../lib/gcc/avr/14.1.0/avrxmega3/short-calls\libgcc.a(_copy_data.o)
.debug_loclists
*(.debug_loclists)
.debug_macro
*(.debug_macro)
.debug_names
*(.debug_names)
.debug_rnglists
*(.debug_rnglists)
.debug_str_offsets
*(.debug_str_offsets)
.debug_sup
*(.debug_sup)
OUTPUT(dist/default/production/fg004a.X.production.elf elf32-avr)
LOAD linker stubs

17
dist/default/production/memoryfile.xml vendored Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project>
<executable name="dist/default/production/fg004a.X.production.elf">
<memory name="program">
<units>bytes</units>
<length>4096</length>
<used>1778</used>
<free>2318</free>
</memory>
<memory name="data">
<units>bytes</units>
<length>256</length>
<used>4</used>
<free>252</free>
</memory>
</executable>
</project>

49
main.c Normal file
View File

@ -0,0 +1,49 @@
/**
* @file main.c
* @author Jake G
* @date 15 June 2024
* @brief File contains the main function.
*
* This file contains the main logic loop and exists to setup the values
* specific to the micro-controller. All other functions and configuration are
* extracted into separate source files and headers for configuration.
*/
#define F_CPU 2000000UL
//These defines are mostly useful for when you want you editors LSP server to
//function correctly.
//#ifndef __AVR_ATtiny404__
//#define __AVR_ATtiny404__
//#endif
//This can prevent issues with utils/delay.h library with the gcc toolchain
#define __DELAY_BACKWARD_COMPATIBLE__
#include "config.h"
#include "RegEdit.h"
#include "zero_cross_detection.h"
#include "ADC.h"
#include "TriacOut.h"
#include <avr/io.h>
#include <util/delay.h>
//Set the function pointer for the delay func
void (*Delay_MicroSeconds)(double us) = _delay_us;
//void (*Delay_MicroSeconds)(double us) = _delay_ms;
int main(int argc, char **argv)
{
while(true){
for(int i = 0; i < GatePulsesQty; i++){
ZCD_Poll();
_delay_us(Tau);
TriacOut_SetupPins();
TriacOut_SetAllHigh();
TriacOut_PulsePins(GatePulses[i]);
}
}
}

View File

@ -0,0 +1,219 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a -pre and a -post target defined where you can add customized code.
#
# This makefile implements configuration specific macros and targets.
# Include project Makefile
ifeq "${IGNORE_LOCAL}" "TRUE"
# do not include local makefile. User is passing all local related variables already
else
include Makefile
# Include makefile containing local settings
ifeq "$(wildcard nbproject/Makefile-local-default.mk)" "nbproject/Makefile-local-default.mk"
include nbproject/Makefile-local-default.mk
endif
endif
# Environment
MKDIR=gnumkdir -p
RM=rm -f
MV=mv
CP=cp
# Macros
CND_CONF=default
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
IMAGE_TYPE=debug
OUTPUT_SUFFIX=elf
DEBUGGABLE_SUFFIX=elf
FINAL_IMAGE=${DISTDIR}/fg004a.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
else
IMAGE_TYPE=production
OUTPUT_SUFFIX=hex
DEBUGGABLE_SUFFIX=elf
FINAL_IMAGE=${DISTDIR}/fg004a.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
endif
ifeq ($(COMPARE_BUILD), true)
COMPARISON_BUILD=
else
COMPARISON_BUILD=
endif
# Object Directory
OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
# Distribution Directory
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
# Source Files Quoted if spaced
SOURCEFILES_QUOTED_IF_SPACED=main.c ADC.c RegEdit.c TriacOut.c zero_cross_detection.c
# Object Files Quoted if spaced
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.o ${OBJECTDIR}/ADC.o ${OBJECTDIR}/RegEdit.o ${OBJECTDIR}/TriacOut.o ${OBJECTDIR}/zero_cross_detection.o
POSSIBLE_DEPFILES=${OBJECTDIR}/main.o.d ${OBJECTDIR}/ADC.o.d ${OBJECTDIR}/RegEdit.o.d ${OBJECTDIR}/TriacOut.o.d ${OBJECTDIR}/zero_cross_detection.o.d
# Object Files
OBJECTFILES=${OBJECTDIR}/main.o ${OBJECTDIR}/ADC.o ${OBJECTDIR}/RegEdit.o ${OBJECTDIR}/TriacOut.o ${OBJECTDIR}/zero_cross_detection.o
# Source Files
SOURCEFILES=main.c ADC.c RegEdit.c TriacOut.c zero_cross_detection.c
# Pack Options
PACK_COMPILER_OPTIONS=-I "${DFP_DIR}/include"
PACK_COMMON_OPTIONS=-B "${DFP_DIR}/gcc/dev/attiny404"
CFLAGS=
ASFLAGS=
LDLIBSOPTIONS=
############# Tool locations ##########################################
# If you copy a project from one host to another, the path where the #
# compiler is installed may be different. #
# If you open this project with MPLAB X in the new host, this #
# makefile will be regenerated and the paths will be corrected. #
#######################################################################
# fixDeps replaces a bunch of sed/cat/printf statements that slow down the build
FIXDEPS=fixDeps
.build-conf: ${BUILD_SUBPROJECTS}
ifneq ($(INFORMATION_MESSAGE), )
@echo $(INFORMATION_MESSAGE)
endif
${MAKE} -f nbproject/Makefile-default.mk ${DISTDIR}/fg004a.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
MP_PROCESSOR_OPTION=ATtiny404
# ------------------------------------------------------------------------------------
# Rules for buildStep: assemble
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
else
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: assembleWithPreprocess
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
else
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: compile
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
${OBJECTDIR}/main.o: main.c .generated_files/flags/default/fb9268029ec6f74151f2e86d3e38c724cee37776 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/main.o.d
@${RM} ${OBJECTDIR}/main.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/main.o.d" -MT "${OBJECTDIR}/main.o.d" -MT ${OBJECTDIR}/main.o -o ${OBJECTDIR}/main.o main.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD)
${OBJECTDIR}/ADC.o: ADC.c .generated_files/flags/default/f122489a524e88058eea280a192135d1b3c7dcf5 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/ADC.o.d
@${RM} ${OBJECTDIR}/ADC.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/ADC.o.d" -MT "${OBJECTDIR}/ADC.o.d" -MT ${OBJECTDIR}/ADC.o -o ${OBJECTDIR}/ADC.o ADC.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD)
${OBJECTDIR}/RegEdit.o: RegEdit.c .generated_files/flags/default/9bc268bbb52bbf2ec17312e438cb88b01c311165 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/RegEdit.o.d
@${RM} ${OBJECTDIR}/RegEdit.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/RegEdit.o.d" -MT "${OBJECTDIR}/RegEdit.o.d" -MT ${OBJECTDIR}/RegEdit.o -o ${OBJECTDIR}/RegEdit.o RegEdit.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD)
${OBJECTDIR}/TriacOut.o: TriacOut.c .generated_files/flags/default/d135b3bd18c20024d8f416e13555456030bd7791 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/TriacOut.o.d
@${RM} ${OBJECTDIR}/TriacOut.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/TriacOut.o.d" -MT "${OBJECTDIR}/TriacOut.o.d" -MT ${OBJECTDIR}/TriacOut.o -o ${OBJECTDIR}/TriacOut.o TriacOut.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD)
${OBJECTDIR}/zero_cross_detection.o: zero_cross_detection.c .generated_files/flags/default/6a5cfe4cc94a56569160676e4f8ae7e101d86a5e .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/zero_cross_detection.o.d
@${RM} ${OBJECTDIR}/zero_cross_detection.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/zero_cross_detection.o.d" -MT "${OBJECTDIR}/zero_cross_detection.o.d" -MT ${OBJECTDIR}/zero_cross_detection.o -o ${OBJECTDIR}/zero_cross_detection.o zero_cross_detection.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD)
else
${OBJECTDIR}/main.o: main.c .generated_files/flags/default/52eaeaa7d07ae90b9ebbffbef306cbbce3aa5f10 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/main.o.d
@${RM} ${OBJECTDIR}/main.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/main.o.d" -MT "${OBJECTDIR}/main.o.d" -MT ${OBJECTDIR}/main.o -o ${OBJECTDIR}/main.o main.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD)
${OBJECTDIR}/ADC.o: ADC.c .generated_files/flags/default/eede8fb82cddf13164026cbfcbdc2161dc5d1027 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/ADC.o.d
@${RM} ${OBJECTDIR}/ADC.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/ADC.o.d" -MT "${OBJECTDIR}/ADC.o.d" -MT ${OBJECTDIR}/ADC.o -o ${OBJECTDIR}/ADC.o ADC.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD)
${OBJECTDIR}/RegEdit.o: RegEdit.c .generated_files/flags/default/d5ee38712223313b7ee32ed8ef5a076d2a609128 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/RegEdit.o.d
@${RM} ${OBJECTDIR}/RegEdit.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/RegEdit.o.d" -MT "${OBJECTDIR}/RegEdit.o.d" -MT ${OBJECTDIR}/RegEdit.o -o ${OBJECTDIR}/RegEdit.o RegEdit.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD)
${OBJECTDIR}/TriacOut.o: TriacOut.c .generated_files/flags/default/f05fe06cd9004fe425620b9796b5f29c464a514d .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/TriacOut.o.d
@${RM} ${OBJECTDIR}/TriacOut.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/TriacOut.o.d" -MT "${OBJECTDIR}/TriacOut.o.d" -MT ${OBJECTDIR}/TriacOut.o -o ${OBJECTDIR}/TriacOut.o TriacOut.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD)
${OBJECTDIR}/zero_cross_detection.o: zero_cross_detection.c .generated_files/flags/default/ce134025f38c83d75f9f46ccf18023b6ee51cd4 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/zero_cross_detection.o.d
@${RM} ${OBJECTDIR}/zero_cross_detection.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny404 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/zero_cross_detection.o.d" -MT "${OBJECTDIR}/zero_cross_detection.o.d" -MT ${OBJECTDIR}/zero_cross_detection.o -o ${OBJECTDIR}/zero_cross_detection.o zero_cross_detection.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD)
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: compileCPP
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
else
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: link
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
${DISTDIR}/fg004a.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
@${MKDIR} ${DISTDIR}
${MP_CC} $(MP_EXTRA_LD_PRE) -mmcu=attiny404 ${PACK_COMMON_OPTIONS} -gdwarf-2 -D__$(MP_PROCESSOR_OPTION)__ -Wl,-Map="${DISTDIR}\fg004a.X.${IMAGE_TYPE}.map" -o ${DISTDIR}/fg004a.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__ICD2RAM=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1 -Wl,--gc-sections -Wl,--start-group -Wl,-lm -Wl,--end-group
else
${DISTDIR}/fg004a.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
@${MKDIR} ${DISTDIR}
${MP_CC} $(MP_EXTRA_LD_PRE) -mmcu=attiny404 ${PACK_COMMON_OPTIONS} -D__$(MP_PROCESSOR_OPTION)__ -Wl,-Map="${DISTDIR}\fg004a.X.${IMAGE_TYPE}.map" -o ${DISTDIR}/fg004a.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION) -Wl,--gc-sections -Wl,--start-group -Wl,-lm -Wl,--end-group
${MP_CC_DIR}\\avr-objcopy -O ihex "${DISTDIR}/fg004a.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}" "${DISTDIR}/fg004a.X.${IMAGE_TYPE}.hex"
endif
# Subprojects
.build-subprojects:
# Subprojects
.clean-subprojects:
# Clean Targets
.clean-conf: ${CLEAN_SUBPROJECTS}
${RM} -r ${OBJECTDIR}
${RM} -r ${DISTDIR}
# Enable dependency checking
.dep.inc: .depcheck-impl
DEPFILES=$(wildcard ${POSSIBLE_DEPFILES})
ifneq (${DEPFILES},)
include ${DEPFILES}
endif

View File

@ -0,0 +1,13 @@
#
#Mon Jul 01 17:42:53 PDT 2024
default.languagetoolchain.version=1.00
default.Pack.dfplocation=C\:\\Program Files\\Microchip\\MPLABX\\v6.20\\packs\\Microchip\\ATtiny_DFP\\3.1.260
default.com-microchip-mplab-nbide-toolchain-avr-AVRLanguageToolchain.md5=d2326bf6869b96f43e381b4466c214be
conf.ids=default
default.languagetoolchain.dir=C\:\\Program Files\\avr-gcc\\bin
host.id=j1ll-lx4o-q
default.platformTool.md5=null
configurations-xml=1558a6e2a726c6c3f94e84f48431d94a
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=f612087c95360c842296d189edfe3321
proj.dir=C\:\\Users\\Lenovo\\MPLABXProjects\\fg004a.X
host.platform=windows

View File

@ -0,0 +1,69 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a pre- and a post- target defined where you can add customization code.
#
# This makefile implements macros and targets common to all configurations.
#
# NOCDDL
# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
# and .clean-reqprojects-conf unless SUB has the value 'no'
SUB_no=NO
SUBPROJECTS=${SUB_${SUB}}
BUILD_SUBPROJECTS_=.build-subprojects
BUILD_SUBPROJECTS_NO=
BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
CLEAN_SUBPROJECTS_=.clean-subprojects
CLEAN_SUBPROJECTS_NO=
CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
# Project Name
PROJECTNAME=fg004a.X
# Active Configuration
DEFAULTCONF=default
CONF=${DEFAULTCONF}
# All Configurations
ALLCONFS=default
# build
.build-impl: .build-pre
${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-conf
# clean
.clean-impl: .clean-pre
${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .clean-conf
# clobber
.clobber-impl: .clobber-pre .depcheck-impl
${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default clean
# all
.all-impl: .all-pre .depcheck-impl
${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default build
# dependency checking support
.depcheck-impl:
# @echo "# This code depends on make tool being used" >.dep.inc
# @if [ -n "${MAKE_VERSION}" ]; then \
# echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \
# echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
# echo "include \$${DEPFILES}" >>.dep.inc; \
# echo "endif" >>.dep.inc; \
# else \
# echo ".KEEP_STATE:" >>.dep.inc; \
# echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
# fi

View File

@ -0,0 +1,37 @@
#
# Generated Makefile - do not edit!
#
#
# This file contains information about the location of compilers and other tools.
# If you commmit this file into your revision control server, you will be able to
# to checkout the project and build it from the command line with make. However,
# if more than one person works on the same project, then this file might show
# conflicts since different users are bound to have compilers in different places.
# In that case you might choose to not commit this file and let MPLAB X recreate this file
# for each user. The disadvantage of not commiting this file is that you must run MPLAB X at
# least once so the file gets created and the project can be built. Finally, you can also
# avoid using this file at all if you are only building from the command line with make.
# You can invoke make with the values of the macros:
# $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...
#
SHELL=cmd.exe
PATH_TO_IDE_BIN=C:/Program Files/Microchip/MPLABX/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/
# Adding MPLAB X bin directory to path.
PATH:=C:/Program Files/Microchip/MPLABX/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
# Path to java used to run MPLAB X when this makefile was created
MP_JAVA_PATH="C:\Program Files\Microchip\MPLABX\v6.20\sys\java\zulu8.64.0.19-ca-fx-jre8.0.345-win_x64/bin/"
OS_CURRENT="$(shell uname -s)"
MP_CC="C:\Program Files\avr-gcc\bin\avr-gcc.exe"
MP_CPPC="C:\Program Files\avr-gcc\bin\avr-g++.exe"
# MP_BC is not defined
MP_AS="C:\Program Files\avr-gcc\bin\avr-as.exe"
MP_LD="C:\Program Files\avr-gcc\bin\avr-ld.exe"
MP_AR="C:\Program Files\avr-gcc\bin\avr-gcc-ar.exe"
DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files/Microchip/MPLABX/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
MP_CC_DIR="C:\Program Files\avr-gcc\bin"
MP_CPPC_DIR="C:\Program Files\avr-gcc\bin"
# MP_BC_DIR is not defined
MP_AS_DIR="C:\Program Files\avr-gcc\bin"
MP_LD_DIR="C:\Program Files\avr-gcc\bin"
MP_AR_DIR="C:\Program Files\avr-gcc\bin"
DFP_DIR=C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260

View File

@ -0,0 +1,10 @@
#
# Generated - do not edit!
#
# NOCDDL
#
CND_BASEDIR=`pwd`
# default configuration
CND_ARTIFACT_DIR_default=dist/default/production
CND_ARTIFACT_NAME_default=fg004a.X.production.hex
CND_ARTIFACT_PATH_default=dist/default/production/fg004a.X.production.hex

View File

@ -0,0 +1,413 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="65">
<logicalFolder name="root" displayName="root" projectFiles="true">
<logicalFolder name="HeaderFiles"
displayName="Header Files"
projectFiles="true">
<itemPath>config.h</itemPath>
<itemPath>zero_cross_detection.h</itemPath>
<itemPath>RegEdit.h</itemPath>
<itemPath>ADC.h</itemPath>
<itemPath>TriacOut.h</itemPath>
</logicalFolder>
<logicalFolder name="ExternalFiles"
displayName="Important Files"
projectFiles="true">
<itemPath>Makefile</itemPath>
</logicalFolder>
<logicalFolder name="LinkerScript"
displayName="Linker Files"
projectFiles="true">
</logicalFolder>
<logicalFolder name="SourceFiles"
displayName="Source Files"
projectFiles="true">
<itemPath>main.c</itemPath>
<itemPath>ADC.c</itemPath>
<itemPath>RegEdit.c</itemPath>
<itemPath>TriacOut.c</itemPath>
<itemPath>zero_cross_detection.c</itemPath>
</logicalFolder>
</logicalFolder>
<sourceRootList>
<Elem>.</Elem>
</sourceRootList>
<projectmakefile>Makefile</projectmakefile>
<confs>
<conf name="default" type="2">
<toolsSet>
<developmentServer>localhost</developmentServer>
<targetDevice>ATtiny404</targetDevice>
<targetHeader></targetHeader>
<targetPluginBoard></targetPluginBoard>
<platformTool>noID</platformTool>
<languageToolchain>AVR</languageToolchain>
<languageToolchainVersion>1.00</languageToolchainVersion>
<platform>3</platform>
</toolsSet>
<packs>
<pack name="ATtiny_DFP" vendor="Microchip" version="3.1.260"/>
</packs>
<ScriptingSettings>
</ScriptingSettings>
<compileType>
<linkerTool>
<linkerLibItems>
</linkerLibItems>
</linkerTool>
<archiverTool>
</archiverTool>
<loading>
<useAlternateLoadableFile>false</useAlternateLoadableFile>
<parseOnProdLoad>false</parseOnProdLoad>
<alternateLoadableFile></alternateLoadableFile>
</loading>
<subordinates>
</subordinates>
</compileType>
<makeCustomizationType>
<makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
<makeUseCleanTarget>false</makeUseCleanTarget>
<makeCustomizationPreStep></makeCustomizationPreStep>
<makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
<makeCustomizationPostStep></makeCustomizationPostStep>
<makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
<makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
<makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
</makeCustomizationType>
<AVR-AR>
<property key="archiver-flags" value="-r"/>
</AVR-AR>
<AVR-AS>
<property key="announce-version" value="false"/>
<property key="include-paths" value=""/>
<property key="suppress-warnings" value="false"/>
</AVR-AS>
<AVR-AS-PRE>
<property key="announce-version" value="false"/>
<property key="include-paths" value=""/>
<property key="preprocessor-macros" value=""/>
<property key="preprocessor-macros-undefined" value=""/>
<property key="suppress-warnings" value="false"/>
</AVR-AS-PRE>
<AVR-CPP>
<property key="additional-warnings" value="true"/>
<property key="call-prologues" value="false"/>
<property key="default-bitfield-type" value="true"/>
<property key="default-char-type" value="true"/>
<property key="extra-include-directories" value=""/>
<property key="garbage-collect-data" value="true"/>
<property key="garbage-collect-functions" value="true"/>
<property key="inhibit-all" value="false"/>
<property key="make-warnings-into-errors" value="false"/>
<property key="no-interrupts" value="false"/>
<property key="no-system-directories" value="false"/>
<property key="optimization-level" value="-O1"/>
<property key="pack-struct" value="true"/>
<property key="preprocess-only" value="false"/>
<property key="preprocessor-macros" value=""/>
<property key="preprocessor-macros-undefined" value=""/>
<property key="save-temps" value="false"/>
<property key="short-calls" value="false"/>
<property key="short-enums" value="true"/>
<property key="strict-ansi" value="false"/>
<property key="strict-ansi-errors" value="false"/>
<property key="support-ansi" value="false"/>
<property key="syntax-only" value="false"/>
<property key="undefined-identifier" value="false"/>
<property key="verbose" value="false"/>
</AVR-CPP>
<AVR-GCC>
<property key="additional-warnings" value="true"/>
<property key="call-prologues" value="false"/>
<property key="default-bitfield-type" value="true"/>
<property key="default-char-type" value="true"/>
<property key="extra-include-directories" value=""/>
<property key="extra-warnings" value="false"/>
<property key="garbage-collect-data" value="true"/>
<property key="garbage-collect-functions" value="true"/>
<property key="inhibit-all" value="false"/>
<property key="make-warnings-into-errors" value="false"/>
<property key="no-interrupts" value="false"/>
<property key="no-system-directories" value="false"/>
<property key="optimization-level" value="-O1"/>
<property key="pack-struct" value="true"/>
<property key="preprocessor-macros" value=""/>
<property key="preprocessor-macros-undefined" value=""/>
<property key="save-temps" value="false"/>
<property key="short-calls" value="false"/>
<property key="short-enums" value="true"/>
<property key="strict-ansi" value="false"/>
<property key="strict-ansi-errors" value="false"/>
<property key="support-ansi" value="false"/>
<property key="syntax-only" value="false"/>
<property key="undefined-identifier" value="false"/>
<property key="verbose" value="false"/>
</AVR-GCC>
<AVR-Global>
<property key="common-include-directories" value=""/>
<property key="eep" value="false"/>
<property key="external-ram-check" value="false"/>
<property key="hex" value="true"/>
<property key="lss" value="false"/>
<property key="omit-pack-options" value="false"/>
<property key="relax-branches" value="false"/>
<property key="srec" value="false"/>
<property key="user-pack-device-support" value=""/>
<property key="user-pack-include" value=""/>
<property key="usersig" value="false"/>
</AVR-Global>
<AVR-LD>
<property key="eeprom-segment" value=""/>
<property key="exclude-standard-libraries" value="false"/>
<property key="extra-lib-directories" value=""/>
<property key="flash-segment" value=""/>
<property key="generate-map-file" value="true"/>
<property key="initial-stack-address" value=""/>
<property key="input-libraries" value="libm"/>
<property key="no-default-libs" value="false"/>
<property key="no-shared-libraries" value="false"/>
<property key="no-startup-files" value="false"/>
<property key="omit-symbol-information" value="false"/>
<property key="other-options" value=""/>
<property key="remove-unused-sections" value="true"/>
<property key="rodata-writable" value="false"/>
<property key="sram-segment" value=""/>
<property key="v-printf" value="false"/>
</AVR-LD>
<HI-TECH-COMP>
<property key="additional-warnings" value="true"/>
<property key="asmlist" value="true"/>
<property key="call-prologues" value="false"/>
<property key="default-bitfield-type" value="true"/>
<property key="default-char-type" value="true"/>
<property key="define-macros" value=""/>
<property key="disable-optimizations" value="false"/>
<property key="extra-include-directories" value=""/>
<property key="favor-optimization-for" value="-speed,+space"/>
<property key="garbage-collect-data" value="true"/>
<property key="garbage-collect-functions" value="true"/>
<property key="identifier-length" value="255"/>
<property key="local-generation" value="false"/>
<property key="operation-mode" value="free"/>
<property key="opt-xc8-compiler-strict_ansi" value="false"/>
<property key="optimization-assembler" value="true"/>
<property key="optimization-assembler-files" value="true"/>
<property key="optimization-debug" value="false"/>
<property key="optimization-invariant-enable" value="false"/>
<property key="optimization-invariant-value" value="16"/>
<property key="optimization-level" value="-O1"/>
<property key="optimization-speed" value="false"/>
<property key="optimization-stable-enable" value="false"/>
<property key="preprocess-assembler" value="true"/>
<property key="short-enums" value="true"/>
<property key="tentative-definitions" value="-fno-common"/>
<property key="undefine-macros" value=""/>
<property key="use-cci" value="false"/>
<property key="use-iar" value="false"/>
<property key="verbose" value="false"/>
<property key="warning-level" value="-3"/>
<property key="what-to-do" value="ignore"/>
</HI-TECH-COMP>
<HI-TECH-LINK>
<property key="additional-options-checksum" value=""/>
<property key="additional-options-checksumAVR" value=""/>
<property key="additional-options-code-offset" value=""/>
<property key="additional-options-command-line" value=""/>
<property key="additional-options-errata" value=""/>
<property key="additional-options-extend-address" value="false"/>
<property key="additional-options-trace-type" value=""/>
<property key="additional-options-use-response-files" value="false"/>
<property key="backup-reset-condition-flags" value="false"/>
<property key="calibrate-oscillator" value="false"/>
<property key="calibrate-oscillator-value" value="0x3400"/>
<property key="clear-bss" value="true"/>
<property key="code-model-external" value="wordwrite"/>
<property key="code-model-rom" value=""/>
<property key="create-html-files" value="false"/>
<property key="data-model-ram" value=""/>
<property key="data-model-size-of-double" value="24"/>
<property key="data-model-size-of-double-gcc" value="no-short-double"/>
<property key="data-model-size-of-float" value="24"/>
<property key="data-model-size-of-float-gcc" value="no-short-float"/>
<property key="display-class-usage" value="false"/>
<property key="display-hex-usage" value="false"/>
<property key="display-overall-usage" value="true"/>
<property key="display-psect-usage" value="false"/>
<property key="extra-lib-directories" value=""/>
<property key="fill-flash-options-addr" value=""/>
<property key="fill-flash-options-const" value=""/>
<property key="fill-flash-options-how" value="0"/>
<property key="fill-flash-options-inc-const" value="1"/>
<property key="fill-flash-options-increment" value=""/>
<property key="fill-flash-options-seq" value=""/>
<property key="fill-flash-options-what" value="0"/>
<property key="format-hex-file-for-download" value="false"/>
<property key="initialize-data" value="true"/>
<property key="input-libraries" value="libm"/>
<property key="keep-generated-startup.as" value="false"/>
<property key="link-in-c-library" value="true"/>
<property key="link-in-c-library-gcc" value=""/>
<property key="link-in-peripheral-library" value="false"/>
<property key="managed-stack" value="false"/>
<property key="opt-xc8-linker-file" value="false"/>
<property key="opt-xc8-linker-link_startup" value="false"/>
<property key="opt-xc8-linker-serial" value=""/>
<property key="program-the-device-with-default-config-words" value="false"/>
<property key="remove-unused-sections" value="true"/>
</HI-TECH-LINK>
<PK5Tool>
<property key="AutoSelectMemRanges" value="auto"/>
<property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
<property key="ToolFirmwareFilePath"
value="Press to browse for a specific firmware version"/>
<property key="ToolFirmwareOption.UpdateOptions"
value="ToolFirmwareOption.UseLatest"/>
<property key="ToolFirmwareToolPack"
value="Press to select which tool pack to use"/>
<property key="communication.activationmode" value="nohv"/>
<property key="communication.interface" value="updi"/>
<property key="communication.interface.jtag" value="2wire"/>
<property key="communication.speed" value="0.500"/>
<property key="debugoptions.debug-startup" value="Use system settings"/>
<property key="debugoptions.reset-behaviour" value="Use system settings"/>
<property key="debugoptions.useswbreakpoints" value="false"/>
<property key="event.recorder.debugger.behavior" value="Running"/>
<property key="event.recorder.enabled" value="false"/>
<property key="event.recorder.scvd.files" value=""/>
<property key="hwtoolclock.frcindebug" value="false"/>
<property key="lastid" value=""/>
<property key="memories.aux" value="false"/>
<property key="memories.bootflash" value="true"/>
<property key="memories.configurationmemory" value="true"/>
<property key="memories.configurationmemory2" value="true"/>
<property key="memories.dataflash" value="true"/>
<property key="memories.eeprom" value="true"/>
<property key="memories.exclude.configurationmemory" value="true"/>
<property key="memories.flashdata" value="true"/>
<property key="memories.id" value="true"/>
<property key="memories.instruction.ram.ranges"
value="${memories.instruction.ram.ranges}"/>
<property key="memories.programmemory" value="true"/>
<property key="memories.programmemory.ranges" value="0-7ff"/>
<property key="poweroptions.powerenable" value="true"/>
<property key="programmerToGoImageName" value="fg004a_ptg"/>
<property key="programoptions.donoteraseauxmem" value="false"/>
<property key="programoptions.eraseb4program" value="true"/>
<property key="programoptions.ledbrightness" value="5"/>
<property key="programoptions.pgcconfig" value="pull down"/>
<property key="programoptions.pgcresistor.value" value="4.7"/>
<property key="programoptions.pgdconfig" value="pull down"/>
<property key="programoptions.pgdresistor.value" value="4.7"/>
<property key="programoptions.pgmentry.voltage" value="low"/>
<property key="programoptions.pgmspeed" value="Med"/>
<property key="programoptions.preservedataflash" value="false"/>
<property key="programoptions.preserveeeprom" value="false"/>
<property key="programoptions.preserveeeprom.ranges" value="1400-147f"/>
<property key="programoptions.preserveprogram.ranges" value=""/>
<property key="programoptions.preserveprogramrange" value="false"/>
<property key="programoptions.preserveuserid" value="false"/>
<property key="programoptions.program.otpconfig" value="false"/>
<property key="programoptions.programcalmem" value="false"/>
<property key="programoptions.programuserotp" value="false"/>
<property key="programoptions.smart.program" value="When debugging only"/>
<property key="programoptions.testmodeentrymethod" value="VDDFirst"/>
<property key="ptgProgramImage" value="true"/>
<property key="ptgSendImage" value="true"/>
<property key="toolpack.updateoptions"
value="toolpack.updateoptions.uselatestoolpack"/>
<property key="toolpack.updateoptions.packversion"
value="Press to select which tool pack to use"/>
<property key="voltagevalue" value="5.0"/>
</PK5Tool>
<Tool>
<property key="AutoSelectMemRanges" value="auto"/>
<property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
<property key="ToolFirmwareFilePath"
value="Press to browse for a specific firmware version"/>
<property key="ToolFirmwareOption.UpdateOptions"
value="ToolFirmwareOption.UseLatest"/>
<property key="ToolFirmwareToolPack"
value="Press to select which tool pack to use"/>
<property key="communication.activationmode" value="nohv"/>
<property key="communication.interface" value="updi"/>
<property key="communication.interface.jtag" value="2wire"/>
<property key="communication.speed" value="0.500"/>
<property key="debugoptions.debug-startup" value="Use system settings"/>
<property key="debugoptions.reset-behaviour" value="Use system settings"/>
<property key="debugoptions.useswbreakpoints" value="false"/>
<property key="event.recorder.debugger.behavior" value="Running"/>
<property key="event.recorder.enabled" value="false"/>
<property key="event.recorder.scvd.files" value=""/>
<property key="hwtoolclock.frcindebug" value="false"/>
<property key="lastid" value=""/>
<property key="memories.aux" value="false"/>
<property key="memories.bootflash" value="true"/>
<property key="memories.configurationmemory" value="true"/>
<property key="memories.configurationmemory2" value="true"/>
<property key="memories.dataflash" value="true"/>
<property key="memories.eeprom" value="true"/>
<property key="memories.exclude.configurationmemory" value="true"/>
<property key="memories.flashdata" value="true"/>
<property key="memories.id" value="true"/>
<property key="memories.instruction.ram.ranges"
value="${memories.instruction.ram.ranges}"/>
<property key="memories.programmemory" value="true"/>
<property key="memories.programmemory.ranges" value="0-7ff"/>
<property key="poweroptions.powerenable" value="true"/>
<property key="programmerToGoFilePath"
value="C:/Users/Lenovo/MPLABXProjects/fg004a.X/debug/default/fg004a_ptg"/>
<property key="programmerToGoImageName" value="fg004a_ptg"/>
<property key="programoptions.donoteraseauxmem" value="false"/>
<property key="programoptions.eraseb4program" value="true"/>
<property key="programoptions.ledbrightness" value="5"/>
<property key="programoptions.pgcconfig" value="pull down"/>
<property key="programoptions.pgcresistor.value" value="4.7"/>
<property key="programoptions.pgdconfig" value="pull down"/>
<property key="programoptions.pgdresistor.value" value="4.7"/>
<property key="programoptions.pgmentry.voltage" value="low"/>
<property key="programoptions.pgmspeed" value="Med"/>
<property key="programoptions.preservedataflash" value="false"/>
<property key="programoptions.preserveeeprom" value="false"/>
<property key="programoptions.preserveeeprom.ranges" value="1400-147f"/>
<property key="programoptions.preserveprogram.ranges" value=""/>
<property key="programoptions.preserveprogramrange" value="false"/>
<property key="programoptions.preserveuserid" value="false"/>
<property key="programoptions.program.otpconfig" value="false"/>
<property key="programoptions.programcalmem" value="false"/>
<property key="programoptions.programuserotp" value="false"/>
<property key="programoptions.smart.program" value="When debugging only"/>
<property key="programoptions.testmodeentrymethod" value="VDDFirst"/>
<property key="ptgProgramImage" value="true"/>
<property key="ptgSendImage" value="true"/>
<property key="toolpack.updateoptions"
value="toolpack.updateoptions.uselatestoolpack"/>
<property key="toolpack.updateoptions.packversion"
value="Press to select which tool pack to use"/>
<property key="voltagevalue" value="5.0"/>
</Tool>
<XC8-CO>
<property key="coverage-enable" value=""/>
<property key="stack-guidance" value="false"/>
</XC8-CO>
<XC8-config-global>
<property key="advanced-elf" value="true"/>
<property key="constdata-progmem" value="false"/>
<property key="gcc-opt-driver-new" value="true"/>
<property key="gcc-opt-std" value="-std=c99"/>
<property key="gcc-output-file-format" value="dwarf-3"/>
<property key="mapped-progmem" value="false"/>
<property key="omit-pack-options" value="false"/>
<property key="omit-pack-options-new" value="1"/>
<property key="output-file-format" value="-mcof,+elf"/>
<property key="smart-io-format" value=""/>
<property key="stack-size-high" value="auto"/>
<property key="stack-size-low" value="auto"/>
<property key="stack-size-main" value="auto"/>
<property key="stack-type" value="compiled"/>
<property key="user-pack-device-support" value=""/>
<property key="wpo-lto" value="false"/>
</XC8-config-global>
</conf>
</confs>
</configurationDescriptor>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="65">
<projectmakefile>Makefile</projectmakefile>
<defaultConf>0</defaultConf>
<confs>
<conf name="default" type="2">
<platformToolSN>noToolString</platformToolSN>
<languageToolchainDir>C:\Program Files\avr-gcc\bin</languageToolchainDir>
<mdbdebugger version="1">
<placeholder1>place holder 1</placeholder1>
<placeholder2>place holder 2</placeholder2>
</mdbdebugger>
<runprofile version="6">
<args></args>
<rundir></rundir>
<buildfirst>true</buildfirst>
<console-type>0</console-type>
<terminal-type>0</terminal-type>
<remove-instrumentation>0</remove-instrumentation>
<environment>
</environment>
</runprofile>
</conf>
</confs>
</configurationDescriptor>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/C:/Users/Lenovo/MPLABXProjects/fg004a.X/main.c</file>
</group>
</open-files>
</project-private>

25
nbproject/project.xml Normal file
View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>com.microchip.mplab.nbide.embedded.makeproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/make-project/1">
<name>fg004a</name>
<creation-uuid>428c0aa9-0d58-40bd-97a0-d26a5305fcb1</creation-uuid>
<make-project-type>0</make-project-type>
<sourceEncoding>UTF-8</sourceEncoding>
<make-dep-projects/>
<sourceRootList>
<sourceRootElem>.</sourceRootElem>
</sourceRootList>
<confList>
<confElem>
<name>default</name>
<type>2</type>
</confElem>
</confList>
<formatting>
<project-formatting-style>false</project-formatting-style>
</formatting>
</data>
</configuration>
</project>

51
zero_cross_detection.c Normal file
View File

@ -0,0 +1,51 @@
/*
* Author: Jake G
* Date: 2024
* filename: zero_cross_detection.c
* description:
*/
#include "zero_cross_detection.h"
#define TRIGGERVAL 512
#ifndef UNIT_TESTING
#include "ADC.h"
#else
#include "MockADC/MockADC.h"
#endif
void ZCD_Setup(void)
{
ADC_Init(7);
ADC_Enable(7);
}
bool ZCD_IsTriggered()
{
uint16_t first, second;
ZCD_Setup();
first = ADC_ReadValue(7);
ADC_Disable();
ZCD_Setup();
second = ADC_ReadValue(7);
ADC_Disable();
if(second < TRIGGERVAL){
return false;
}
if(second < first){
return false;
}
return true;
}
void ZCD_Poll(void)
{
while(true){
if(ZCD_IsTriggered()){
break;
}
}
}

49
zero_cross_detection.h Normal file
View File

@ -0,0 +1,49 @@
/**
* @file zero_cross_detection.h
* @author Jake G
* @date 16 June 2024
* @brief File contains the zero cross detection functions
*
* This file holds all the code/functions needed to read the value of the AC
* waveform. It uses the trigger value from the `config.h` file to evaluate the
* state.
*
* This module depends on the ADC.h module to get readings from the ADC
* hardware.
*/
#ifndef ZERO_CROSS_DETECTION
#define ZERO_CROSS_DETECTION
#include <stdint.h>
#include <stdbool.h>
/**
* @brief Zero Cross Detection Setup
*
* Sets up the hardware to read the values coming from the AC input waveform.
*
*/
void ZCD_Setup(void);
//int ZCD_Setup(volatile uint8_t *ddrx, uint8_t *port, uint8_t pin);
/**
* @brief Checks if ZCD should trigger on value
*
* The function checks for a positive edge first using the ZCD_IsPositiveEdge
* function. If a positive edge was found, then it takes an addition set of
* samples and averages them; only triggering(returning true) in the case
* that the average is higher than the previous sample.
*/
bool ZCD_IsTriggered(void);
/**
* @brief Function blocks execution until ZCD is triggered.
*
*/
void ZCD_Poll(void);
#endif //ZERO_CROSS_DETECTION