mirror of
https://github.com/caperren/school_archives.git
synced 2025-11-09 13:41:13 +00:00
Added OSU Mars Rover 2104 Firmware and Design Files
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Atmel Studio Solution File, Format Version 11.00
|
||||
Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "AngleRadioRover", "AngleRadioRover.cppproj", "{765D9589-720A-431F-86AA-13FF35F5F0D7}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|AVR = Debug|AVR
|
||||
Release|AVR = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{765D9589-720A-431F-86AA-13FF35F5F0D7}.Debug|AVR.ActiveCfg = Debug|AVR
|
||||
{765D9589-720A-431F-86AA-13FF35F5F0D7}.Debug|AVR.Build.0 = Debug|AVR
|
||||
{765D9589-720A-431F-86AA-13FF35F5F0D7}.Release|AVR.ActiveCfg = Release|AVR
|
||||
{765D9589-720A-431F-86AA-13FF35F5F0D7}.Release|AVR.Build.0 = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* AngleRadioRover.cpp
|
||||
*
|
||||
* Created: 4/23/2014 2:39:18 AM
|
||||
* Author: corwin
|
||||
*/
|
||||
|
||||
|
||||
#include <avr/io.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
//TODO:: Please write your application code
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectVersion>6.2</ProjectVersion>
|
||||
<ToolchainName>com.Atmel.AVRGCC8.CPP</ToolchainName>
|
||||
<ProjectGuid>{765d9589-720a-431f-86aa-13ff35f5f0d7}</ProjectGuid>
|
||||
<avrdevice>ATxmega32D4</avrdevice>
|
||||
<avrdeviceseries>none</avrdeviceseries>
|
||||
<OutputType>Executable</OutputType>
|
||||
<Language>CPP</Language>
|
||||
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
|
||||
<OutputFileExtension>.elf</OutputFileExtension>
|
||||
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
|
||||
<AssemblyName>AngleRadioRover</AssemblyName>
|
||||
<Name>AngleRadioRover</Name>
|
||||
<RootNamespace>AngleRadioRover</RootNamespace>
|
||||
<ToolchainFlavour>Native</ToolchainFlavour>
|
||||
<KeepTimersRunning>true</KeepTimersRunning>
|
||||
<OverrideVtor>false</OverrideVtor>
|
||||
<CacheFlash>true</CacheFlash>
|
||||
<ProgFlashFromRam>true</ProgFlashFromRam>
|
||||
<RamSnippetAddress />
|
||||
<UncachedRange />
|
||||
<OverrideVtorValue />
|
||||
<BootSegment>2</BootSegment>
|
||||
<eraseonlaunchrule>1</eraseonlaunchrule>
|
||||
<AsfFrameworkConfig>
|
||||
<framework-data xmlns="">
|
||||
<options />
|
||||
<configurations />
|
||||
<files />
|
||||
<documentation help="" />
|
||||
<offline-documentation help="" />
|
||||
<dependencies>
|
||||
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.15.0" />
|
||||
</dependencies>
|
||||
</framework-data>
|
||||
</AsfFrameworkConfig>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGccCpp>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<avrgcccpp.compiler.optimization.level>Optimize for size (-Os)</avrgcccpp.compiler.optimization.level>
|
||||
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
||||
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.linker.libraries.Libraries>
|
||||
</AvrGccCpp>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGccCpp>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<avrgcccpp.compiler.optimization.level>Optimize (-O1)</avrgcccpp.compiler.optimization.level>
|
||||
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
||||
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
|
||||
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.linker.libraries.Libraries>
|
||||
<avrgcccpp.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcccpp.assembler.debugging.DebugLevel>
|
||||
</AvrGccCpp>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AngleRadioRover.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,3 @@
|
||||
Firmware for all final boards should go here.
|
||||
|
||||
All firmware developed using Atmel Studio 6.2.
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Atmel Studio Solution File, Format Version 11.00
|
||||
Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "ArmControl", "ArmControl.cppproj", "{1FC16D6E-A0D0-480A-BA3E-D179A1655ABB}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|AVR = Debug|AVR
|
||||
Release|AVR = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{1FC16D6E-A0D0-480A-BA3E-D179A1655ABB}.Debug|AVR.ActiveCfg = Debug|AVR
|
||||
{1FC16D6E-A0D0-480A-BA3E-D179A1655ABB}.Debug|AVR.Build.0 = Debug|AVR
|
||||
{1FC16D6E-A0D0-480A-BA3E-D179A1655ABB}.Release|AVR.ActiveCfg = Release|AVR
|
||||
{1FC16D6E-A0D0-480A-BA3E-D179A1655ABB}.Release|AVR.Build.0 = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Binary file not shown.
@@ -0,0 +1,476 @@
|
||||
/*
|
||||
* ArmControl.cpp
|
||||
*
|
||||
* Created: 4/22/2014 8:54:20 PM
|
||||
<<<<<<< HEAD
|
||||
* Author: NICK!
|
||||
* PA0 is Step2POT
|
||||
* PA1 is Step1POT
|
||||
=======
|
||||
|
||||
PB3 = Limit 1 = Grip Limit
|
||||
PA3 = Limit 2 = Grip Close
|
||||
PA2 = Limit 3 = Rotation Calibration
|
||||
|
||||
|
||||
* Author: Nick
|
||||
>>>>>>> 034fb4b9ec9e5b3ad4812938ac8725fedd57e6b0
|
||||
*/
|
||||
|
||||
#define F_CPU 32000000UL
|
||||
#define MAXTIMEOUT 20
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include <stdio.h>
|
||||
|
||||
extern "C" {
|
||||
#include "avr_compiler.h"
|
||||
#include "usart_driver.h"
|
||||
};
|
||||
|
||||
#include "Sabertooth.h"
|
||||
#include "XMegaMacros.h"
|
||||
#include "adc.h" //Include the ADC functions
|
||||
#include "motorInfo.h" //Include the motor information
|
||||
#include "stepperInfo.h"
|
||||
#include "rotateStepper.h"
|
||||
#include "Misc.h"
|
||||
|
||||
int swap = 0;
|
||||
USART_data_t USART_PC_Data;
|
||||
|
||||
|
||||
motorInfo lowerAct;
|
||||
motorInfo upperAct;
|
||||
stepperInfo gripStepper;
|
||||
rotateStepper baseStepper;
|
||||
|
||||
#define LOWER 0
|
||||
#define UPPER 1
|
||||
|
||||
#define GRIP 0
|
||||
#define RELEASE 1
|
||||
|
||||
#define GRIP_BM_SERIAL (1 << 1)
|
||||
|
||||
volatile bool canAcceptPackets = true;
|
||||
volatile bool IsPacketToParse = false;
|
||||
|
||||
volatile unsigned char ARM_Dock_State = 0;
|
||||
unsigned char ARM_Dock_State_Prev = 0;
|
||||
|
||||
volatile bool ShouldRECAL = 0;
|
||||
|
||||
volatile unsigned char bufferIndex = 0;
|
||||
|
||||
volatile long unsigned int TimeSinceInit = 0;
|
||||
long unsigned int TimePrevious = 0;
|
||||
|
||||
volatile int v = 0;
|
||||
|
||||
#define PACKETSIZE 10
|
||||
volatile char recieveBuffer[PACKETSIZE];
|
||||
volatile char SendBuffer[100];
|
||||
|
||||
enum { HEADER, COMMAND, BASEROTVAL1, BASEROTVAL2, ACT1VAL1, ACT1VAL2, ACT2VAL1, ACT2VAL2, CHECKSUM, TAIL};
|
||||
|
||||
enum XMegaStates{
|
||||
WaitForHost,
|
||||
ARMControl
|
||||
} CurrentState = WaitForHost;
|
||||
|
||||
void SetupResetTimer(){
|
||||
TCD0.CTRLA = TC_CLKSEL_DIV1024_gc; //31250 counts per second with 32Mhz Processor
|
||||
TCD0.CTRLB = TC_WGMODE_NORMAL_gc;
|
||||
TCD0.PER = 31250;
|
||||
TCD0.INTCTRLA = TC_OVFINTLVL_LO_gc;
|
||||
}
|
||||
|
||||
void FlushSerialBuffer(USART_data_t *UsartBuffer){
|
||||
while(USART_RXBufferData_Available(UsartBuffer)){
|
||||
USART_RXBuffer_GetByte(UsartBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
ISR(USARTC0_RXC_vect){
|
||||
USART_RXComplete(&USART_PC_Data);
|
||||
|
||||
if(USART_RXBufferData_Available(&USART_PC_Data)){
|
||||
recieveBuffer[bufferIndex] = USART_RXBuffer_GetByte(&USART_PC_Data);
|
||||
bufferIndex++;
|
||||
}
|
||||
|
||||
if((bufferIndex == PACKETSIZE)){
|
||||
FlushSerialBuffer(&USART_PC_Data);
|
||||
if(recieveBuffer[8] == (recieveBuffer[1] ^ recieveBuffer[2] ^ recieveBuffer[3] ^ recieveBuffer[4] ^ recieveBuffer[5] ^ recieveBuffer[6] ^ recieveBuffer[7])){
|
||||
ShouldRECAL = recieveBuffer[1] & 0b00001000;
|
||||
ARM_Dock_State = recieveBuffer[1] & 0b00000100;
|
||||
gripStepper.desiredGripState = !(recieveBuffer[1] & GRIP_BM_SERIAL); //0b00000010
|
||||
baseStepper.desiredPos = (recieveBuffer[3]+recieveBuffer[2]);
|
||||
lowerAct.setDesired((double(recieveBuffer[5]+recieveBuffer[4]) / double(100)));
|
||||
upperAct.setDesired((double(recieveBuffer[7]+recieveBuffer[6]) / double(100)));
|
||||
IsPacketToParse = true;
|
||||
}else{
|
||||
while(!USART_IsTXDataRegisterEmpty(&USARTC0));
|
||||
USART_PutChar(&USARTC0, 255);
|
||||
while(!USART_IsTXDataRegisterEmpty(&USARTC0));
|
||||
USART_PutChar(&USARTC0,0); //Checksum failed
|
||||
while(!USART_IsTXDataRegisterEmpty(&USARTC0));
|
||||
USART_PutChar(&USARTC0,255);
|
||||
|
||||
bufferIndex = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ISR(USARTC0_DRE_vect){
|
||||
USART_DataRegEmpty(&USART_PC_Data);
|
||||
}
|
||||
|
||||
|
||||
void SetXMEGA32MhzCalibrated(){
|
||||
CCP = CCP_IOREG_gc; //Disable register security for oscillator update
|
||||
OSC.CTRL = OSC_RC32MEN_bm; //Enable 32MHz oscillator
|
||||
while(!(OSC.STATUS & OSC_RC32MRDY_bm)); //Wait for oscillator to be ready
|
||||
CCP = CCP_IOREG_gc; //Disable register security for clock update
|
||||
CLK.CTRL = CLK_SCLKSEL_RC32M_gc; //Switch to 32MHz clock
|
||||
|
||||
|
||||
CCP = CCP_IOREG_gc; //Disable register security for oscillator update
|
||||
OSC.CTRL |= OSC_RC32KEN_bm; //Enable 32Khz oscillator
|
||||
while(!(OSC.STATUS & OSC_RC32KRDY_bm)); //Wait for oscillator to be ready
|
||||
OSC.DFLLCTRL &= ~OSC_RC32MCREF_bm; //Set up calibration source to be 32Khz crystal
|
||||
DFLLRC32M.CTRL |= DFLL_ENABLE_bm; //Enable calibration of 32Mhz oscillator
|
||||
}
|
||||
|
||||
void SetupPCComms(){
|
||||
PORTC.DIRSET = PIN3_bm; //Sets TX Pin as output
|
||||
PORTC.DIRCLR = PIN2_bm; //Sets RX pin as input
|
||||
|
||||
USART_InterruptDriver_Initialize(&USART_PC_Data, &USARTC0, USART_DREINTLVL_LO_gc); //Initialize USARTC0 as interrupt driven serial and clear it's buffers
|
||||
USART_Format_Set(USART_PC_Data.usart, USART_CHSIZE_8BIT_gc, USART_PMODE_DISABLED_gc, false); //Set the data format of 8 bits, no parity, 1 stop bit
|
||||
USART_RxdInterruptLevel_Set(USART_PC_Data.usart, USART_RXCINTLVL_LO_gc); //Enable the receive interrupt
|
||||
USART_Baudrate_Set(&USARTC0, 207 , 0); //Set baudrate to 9600 with 32Mhz system clock
|
||||
USART_Rx_Enable(USART_PC_Data.usart); //Enable receiving over serial
|
||||
USART_Tx_Enable(USART_PC_Data.usart); //Enable transmitting over serial
|
||||
PMIC.CTRL |= PMIC_LOLVLEX_bm; //Enable PMIC interrupt level low (No idea what this does, but is necessary)
|
||||
}
|
||||
|
||||
|
||||
//Motor 1 is Gripper
|
||||
//Motor 2 is Base Stepper
|
||||
void DemInitThingsYouBeenDoing(){
|
||||
SetXMEGA32MhzCalibrated();
|
||||
SetupPCComms();
|
||||
SetupResetTimer();
|
||||
|
||||
//Setup Status and Error LEDS
|
||||
PORTC.DIRSET = (PIN5_bm | PIN6_bm | PIN7_bm);
|
||||
|
||||
//Setup Outputs
|
||||
PORTD.DIRSET = (PIN0_bm | PIN1_bm | PIN2_bm | PIN3_bm | PIN4_bm | PIN5_bm | PIN6_bm | PIN7_bm);
|
||||
PORTA.DIRSET = (PIN5_bm | PIN6_bm | PIN7_bm); //First set of M settings
|
||||
PORTB.DIRSET = (PIN0_bm | PIN1_bm | PIN2_bm); //Second set of M settings
|
||||
|
||||
//Setup Inputs
|
||||
PORTA.DIRCLR = (PIN2_bm); //Rotation Calibration
|
||||
PORTA.DIRCLR = (PIN3_bm); //Grip Close
|
||||
PORTB.DIRCLR = (PIN3_bm); //Grip Limit
|
||||
PORTA.DIRCLR = (PIN4_bm); //'IsRoving' check
|
||||
|
||||
PORTA.PIN3CTRL = PORT_OPC_PULLUP_gc;
|
||||
PORTB.PIN3CTRL = PORT_OPC_PULLUP_gc;
|
||||
|
||||
//GRIP STEPPER is MD1
|
||||
|
||||
//SETUP "UPPER" DRIVER
|
||||
MD1_ENABLE();
|
||||
|
||||
//Setup Microstepping
|
||||
MD1_M0_CLR();
|
||||
MD1_M1_CLR();
|
||||
MD1_M2_SET();
|
||||
|
||||
MD1_DIR_CLR();
|
||||
MD1_STEP_CLR();
|
||||
|
||||
|
||||
//BASE STEPPER is MD2
|
||||
|
||||
//Motor Driver 2 setup
|
||||
MD2_ENABLE();
|
||||
|
||||
//Setup Microstepping
|
||||
MD2_M0_SET(); //Small amount of micro stepping is sufficient
|
||||
MD2_M1_SET();
|
||||
MD2_M2_CLR();
|
||||
|
||||
MD2_DIR_CLR();
|
||||
MD2_STEP_CLR();
|
||||
|
||||
sei();
|
||||
}
|
||||
|
||||
void SendStringPC(char *stufftosend){
|
||||
for(int i = 0 ; stufftosend[i] != '\0' ; i++){
|
||||
while(!USART_IsTXDataRegisterEmpty(&USARTC0));
|
||||
USART_PutChar(&USARTC0, stufftosend[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//DOCUMENTATION NEEDED :D
|
||||
double abs(double input){
|
||||
if(input > 0)
|
||||
return input;
|
||||
else
|
||||
return input * -1;
|
||||
}
|
||||
|
||||
//PA1 is lower act
|
||||
|
||||
//If a 0 is passed in, then the lower act is read
|
||||
//0 = LOWER ACT
|
||||
//1 = UPPER ACT
|
||||
int smoothADC(int act){
|
||||
const int smoothFactor = 7;
|
||||
int count = 0;
|
||||
for(int i = 0; i < smoothFactor; ++i){
|
||||
if(act == LOWER){
|
||||
count += ReadADC(1,1);
|
||||
}
|
||||
else if(act == UPPER) {
|
||||
count += ReadADC(0,1);
|
||||
}
|
||||
_delay_ms(1);
|
||||
}
|
||||
return count/smoothFactor;
|
||||
}
|
||||
|
||||
//lowerAct upperAct
|
||||
void checkActPosition(){
|
||||
|
||||
if (abs(lowerAct.currentPos - lowerAct.desiredPos) < lowerAct.acceptableError){
|
||||
++lowerAct.acceptableCount;
|
||||
}
|
||||
else{
|
||||
lowerAct.acceptableCount = 0;
|
||||
}
|
||||
if (abs(upperAct.currentPos - upperAct.desiredPos) < upperAct.acceptableError){
|
||||
++upperAct.acceptableCount;
|
||||
}
|
||||
else{
|
||||
upperAct.acceptableCount = 0;
|
||||
}
|
||||
|
||||
if(upperAct.acceptableCount >= upperAct.acceptableCountMax){
|
||||
upperAct.disable();
|
||||
}
|
||||
if(lowerAct.acceptableCount >= upperAct.acceptableCountMax){
|
||||
lowerAct.disable();
|
||||
}
|
||||
|
||||
|
||||
lowerAct.currentPos = smoothADC(LOWER)/58.13 -.41;
|
||||
upperAct.currentPos = smoothADC(UPPER)/58.13 -.41;
|
||||
}
|
||||
|
||||
int getMotorSpeed(int act){
|
||||
|
||||
if(act == LOWER){
|
||||
if(abs(lowerAct.currentPos - lowerAct.desiredPos) < lowerAct.slowRange/2)
|
||||
return lowerAct.speed / 3;
|
||||
else if(abs(lowerAct.currentPos - lowerAct.desiredPos) < lowerAct.slowRange)
|
||||
return lowerAct.speed / 2;
|
||||
else
|
||||
return lowerAct.speed;
|
||||
}
|
||||
else if (act == UPPER){
|
||||
if(abs(upperAct.currentPos - upperAct.desiredPos) < upperAct.slowRange/2)
|
||||
return upperAct.speed / 3;
|
||||
else if(abs(upperAct.currentPos - upperAct.desiredPos) < upperAct.slowRange)
|
||||
return upperAct.speed / 2;
|
||||
else
|
||||
return upperAct.speed;
|
||||
}
|
||||
|
||||
|
||||
////////
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*Returns a 1 or a -1, depending on whether the actuator needs to retract
|
||||
or extend
|
||||
*/
|
||||
int getMotorDir(int act){
|
||||
if(act == LOWER){
|
||||
if(!lowerAct.enabled)
|
||||
return 0;
|
||||
|
||||
if(lowerAct.currentPos > lowerAct.desiredPos)
|
||||
return -1;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
else if(act == UPPER){
|
||||
if(!upperAct.enabled)
|
||||
return 0;
|
||||
|
||||
if(upperAct.currentPos > upperAct.desiredPos)
|
||||
return -1;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
/////////
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
DemInitThingsYouBeenDoing(); //All init moved to nicer spot
|
||||
_delay_ms(1000);
|
||||
|
||||
|
||||
Sabertooth DriveSaber(&USARTD0, &PORTD);
|
||||
|
||||
|
||||
upperAct.desiredPos = 3.0;
|
||||
lowerAct.desiredPos = 3.5;
|
||||
|
||||
//Wait until rover is unpaused
|
||||
while(!CHECK_ISROVING());
|
||||
|
||||
lowerAct.enable();
|
||||
upperAct.enable();
|
||||
|
||||
|
||||
/////////////Initial Calibration and Default Positions//////////////////////
|
||||
while((lowerAct.enabled || upperAct.enabled)){
|
||||
checkActPosition();
|
||||
DriveSaber.ParsePacket(127+getMotorSpeed(LOWER)*getMotorDir(LOWER), 127+getMotorSpeed(UPPER)*getMotorDir(UPPER));
|
||||
while(!CHECK_ISROVING()){
|
||||
DriveSaber.ParsePacket(127,127);
|
||||
}
|
||||
}
|
||||
baseStepper.calibrateBase();
|
||||
MD2_DIR_CLR();
|
||||
baseStepper.rotateBase(0); //Note that this function takes an angle relative
|
||||
|
||||
|
||||
gripStepper.enable(); //to the absolute 0 on the robot
|
||||
gripStepper.processCommand(RELEASE);
|
||||
/*
|
||||
_delay_ms(5000);
|
||||
gripStepper.enable();
|
||||
gripStepper.processCommand(GRIP);
|
||||
*/
|
||||
///////////////// DEBUG (and not wasting power) purposes!
|
||||
//MD2_DISABLE();
|
||||
/////////////////
|
||||
|
||||
/////////////Initial Calibration and Default Positions//////////////////////
|
||||
|
||||
// sprintf(SendBuffer, "Multiplier: %d \r\n \r\n", (int) baseStepper.multiplier);
|
||||
// SendStringPC(SendBuffer); //Send Dem Strings
|
||||
while(1){
|
||||
if(CurrentState == WaitForHost){
|
||||
SendStringPC("ID: ArmControl\r\n");
|
||||
_delay_ms(500);
|
||||
if(recieveBuffer[0] == 'r'){
|
||||
CurrentState = ARMControl;
|
||||
while(!USART_IsTXDataRegisterEmpty(&USARTC0));
|
||||
USART_PutChar(&USARTC0, 'r');
|
||||
TimePrevious = TimeSinceInit;
|
||||
}
|
||||
bufferIndex = 0;
|
||||
}else if(CurrentState == ARMControl){
|
||||
if(IsPacketToParse){
|
||||
if(ShouldRECAL == true){
|
||||
|
||||
|
||||
upperAct.desiredPos = 3.0;
|
||||
lowerAct.desiredPos = 3.5;
|
||||
|
||||
lowerAct.enable();
|
||||
upperAct.enable();
|
||||
|
||||
/////////////Initial Calibration and Default Positions//////////////////////
|
||||
while((lowerAct.enabled || upperAct.enabled)){
|
||||
checkActPosition();
|
||||
DriveSaber.ParsePacket(127+getMotorSpeed(LOWER)*getMotorDir(LOWER), 127+getMotorSpeed(UPPER)*getMotorDir(UPPER));
|
||||
while(!CHECK_ISROVING()){
|
||||
DriveSaber.ParsePacket(127,127);
|
||||
}
|
||||
}
|
||||
|
||||
baseStepper.calibrateBase();
|
||||
MD2_DIR_CLR();
|
||||
baseStepper.rotateBase(0); //Note that this function takes an angle relative
|
||||
|
||||
if(gripStepper.desiredGripState){
|
||||
gripStepper.enable(); //to the absolute 0 on the robot
|
||||
gripStepper.processCommand(RELEASE);
|
||||
}
|
||||
|
||||
ShouldRECAL = false;
|
||||
|
||||
}else{
|
||||
ERROR_SET(); //Show light when done with actuators
|
||||
lowerAct.enable(); //Re-enable lower actuator
|
||||
upperAct.enable(); //Re-enabled lower actuator
|
||||
|
||||
baseStepper.rotateBase(baseStepper.desiredPos); //Move base to position
|
||||
|
||||
checkActPosition(); //Check once to avoid loop is possible
|
||||
while(lowerAct.enabled || upperAct.enabled){ //If a motor needs to move, do below
|
||||
checkActPosition(); //Check positions
|
||||
DriveSaber.ParsePacket(127+getMotorSpeed(LOWER)*getMotorDir(LOWER), 127+getMotorSpeed(LOWER)*getMotorDir(UPPER)); //Move to position
|
||||
while(!CHECK_ISROVING()){
|
||||
DriveSaber.ParsePacket(127,127);
|
||||
} //e-stop check
|
||||
} //Exit when done moving
|
||||
|
||||
|
||||
DriveSaber.ParsePacket(127,127); //Stop actuators from moving any more
|
||||
|
||||
if((gripStepper.desiredGripState == GRIP)){
|
||||
gripStepper.enable();
|
||||
gripStepper.processCommand(GRIP);
|
||||
}else if(gripStepper.desiredGripState == RELEASE){
|
||||
gripStepper.enable();
|
||||
gripStepper.processCommand(RELEASE);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
IsPacketToParse = false;
|
||||
ERROR_CLR();
|
||||
while(!USART_IsTXDataRegisterEmpty(&USARTC0));
|
||||
USART_PutChar(&USARTC0, 255);
|
||||
while(!USART_IsTXDataRegisterEmpty(&USARTC0));
|
||||
USART_PutChar(&USARTC0, 0b00000010 | CHECK_GRIP_CLOSE());
|
||||
while(!USART_IsTXDataRegisterEmpty(&USARTC0));
|
||||
USART_PutChar(&USARTC0,255);
|
||||
bufferIndex = 0;
|
||||
TimePrevious = TimeSinceInit;
|
||||
}
|
||||
|
||||
//if((TimePrevious - TimeSinceInit) > MAXTIMEOUT){
|
||||
// CurrentState = WaitForHost;
|
||||
// bufferIndex = 0;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ISR(TCD0_OVF_vect){
|
||||
TimeSinceInit++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,177 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectVersion>6.2</ProjectVersion>
|
||||
<ToolchainName>com.Atmel.AVRGCC8.CPP</ToolchainName>
|
||||
<ProjectGuid>{1fc16d6e-a0d0-480a-ba3e-d179a1655abb}</ProjectGuid>
|
||||
<avrdevice>ATxmega32D4</avrdevice>
|
||||
<avrdeviceseries>none</avrdeviceseries>
|
||||
<OutputType>Executable</OutputType>
|
||||
<Language>CPP</Language>
|
||||
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
|
||||
<OutputFileExtension>.elf</OutputFileExtension>
|
||||
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
|
||||
<AssemblyName>ArmControl</AssemblyName>
|
||||
<Name>ArmControl</Name>
|
||||
<RootNamespace>ArmControl</RootNamespace>
|
||||
<ToolchainFlavour>Native</ToolchainFlavour>
|
||||
<KeepTimersRunning>true</KeepTimersRunning>
|
||||
<OverrideVtor>false</OverrideVtor>
|
||||
<CacheFlash>true</CacheFlash>
|
||||
<ProgFlashFromRam>true</ProgFlashFromRam>
|
||||
<RamSnippetAddress />
|
||||
<UncachedRange />
|
||||
<OverrideVtorValue />
|
||||
<BootSegment>2</BootSegment>
|
||||
<eraseonlaunchrule>1</eraseonlaunchrule>
|
||||
<AsfFrameworkConfig>
|
||||
<framework-data xmlns="">
|
||||
<options />
|
||||
<configurations />
|
||||
<files />
|
||||
<documentation help="" />
|
||||
<offline-documentation help="" />
|
||||
<dependencies>
|
||||
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.15.0" />
|
||||
</dependencies>
|
||||
</framework-data>
|
||||
</AsfFrameworkConfig>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGccCpp>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<avrgcccpp.compiler.optimization.level>Optimize for size (-Os)</avrgcccpp.compiler.optimization.level>
|
||||
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
||||
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.linker.libraries.Libraries>
|
||||
</AvrGccCpp>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGccCpp>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcc.compiler.miscellaneous.OtherFlags>-std=gnu99 -Wl,-7u,vfprintf -lprintf_flt -lm</avrgcc.compiler.miscellaneous.OtherFlags>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<avrgcccpp.compiler.optimization.level>Optimize (-O1)</avrgcccpp.compiler.optimization.level>
|
||||
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
||||
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
|
||||
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.compiler.miscellaneous.OtherFlags>-Wl,-u,vfprintf -lprintf_flt -lm</avrgcccpp.compiler.miscellaneous.OtherFlags>
|
||||
<avrgcccpp.compiler.miscellaneous.Verbose>True</avrgcccpp.compiler.miscellaneous.Verbose>
|
||||
<avrgcccpp.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.linker.libraries.Libraries>
|
||||
<avrgcccpp.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcccpp.assembler.debugging.DebugLevel>
|
||||
</AvrGccCpp>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="adc.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="adc.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ArmControl.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="avr_compiler.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Misc.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Misc.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="motorInfo.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="motorInfo.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="rotateStepper.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="rotateStepper.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Sabertooth.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Sabertooth.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="stepperInfo.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="stepperInfo.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usart_driver.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usart_driver.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="XMegaMacros.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,91 @@
|
||||
ArmControl.d ArmControl.o: .././ArmControl.cpp \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
|
||||
.././avr_compiler.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
|
||||
.././usart_driver.h .././Sabertooth.h .././XMegaMacros.h .././adc.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\ctype.h \
|
||||
.././motorInfo.h .././stepperInfo.h .././rotateStepper.h .././Misc.h
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||
|
||||
.././avr_compiler.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
|
||||
.././usart_driver.h:
|
||||
|
||||
.././Sabertooth.h:
|
||||
|
||||
.././XMegaMacros.h:
|
||||
|
||||
.././adc.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\ctype.h:
|
||||
|
||||
.././motorInfo.h:
|
||||
|
||||
.././stepperInfo.h:
|
||||
|
||||
.././rotateStepper.h:
|
||||
|
||||
.././Misc.h:
|
||||
@@ -0,0 +1 @@
|
||||
:00000001FF
|
||||
Binary file not shown.
@@ -0,0 +1,409 @@
|
||||
:100000000C94B8000C94E0000C94E0000C94E00018
|
||||
:100010000C94E0000C94E0000C94E0000C94E000E0
|
||||
:100020000C94E0000C94E0000C94E0000C94E000D0
|
||||
:100030000C94E0000C94E0000C94E0000C94E000C0
|
||||
:100040000C94E0000C94E0000C94E0000C94E000B0
|
||||
:100050000C94E0000C94E0000C94E0000C94E000A0
|
||||
:100060000C94E0000C944D010C9419020C94E000E7
|
||||
:100070000C94E0000C94E0000C94E0000C94E00080
|
||||
:100080000C94E0000C94E0000C94E0000C94E00070
|
||||
:100090000C94E0000C94E0000C94E0000C94E00060
|
||||
:1000A0000C94E0000C94E0000C94E0000C94E00050
|
||||
:1000B0000C94E0000C94E0000C94E0000C94E00040
|
||||
:1000C0000C94E0000C94E0000C94E0000C94E00030
|
||||
:1000D0000C94E0000C94E0000C94E0000C94E00020
|
||||
:1000E0000C94E0000C94E0000C94E0000C94E00010
|
||||
:1000F0000C94E0000C94E0000C94E0000C94E00000
|
||||
:100100000C94E0000C94E0000C94E0000C94E000EF
|
||||
:100110000C94E0000C94E0000C94E0000C94E000DF
|
||||
:100120000C94E0000C94E0000C94E0000C94E000CF
|
||||
:100130000C94E0000C944F070C94E0000C94E00049
|
||||
:100140000C94E0000C94E0000C94E0000C94E000AF
|
||||
:100150000C94E0000C94E0000C94E0000C94E0009F
|
||||
:100160000C94E0000C94E0000C94E0007407850708
|
||||
:1001700011241FBECFEFCDBFDFE2DEBF10E2A0E053
|
||||
:10018000B0E2EAE5F9E102C005900D92A231B107B3
|
||||
:10019000D9F720E2A2E1B0E201C01D92AB37B2076D
|
||||
:1001A000E1F711E0CEE6D1E004C02297FE010E9403
|
||||
:1001B0009C0CCC36D107C9F70E9436050C94A00CD4
|
||||
:1001C0000C940000AAECB1E022E02C93FC01849195
|
||||
:1001D0001C9208950F931F93CF93DF93182F062F30
|
||||
:1001E0008091000280FD1BC0C0E0D2E081E08883E6
|
||||
:1001F00084E0898380E18A831B8286E08C8380E2AD
|
||||
:1002000090E00E94E2008C8781E290E00E94E20090
|
||||
:100210008D878FE79CE00197F1F700C00000E0E0D8
|
||||
:10022000F2E000A3110F110F110F11A312A280A170
|
||||
:10023000806880A386818823E9F3E0E0F2E086818C
|
||||
:10024000868380A1806880A386818823E9F3E0E02B
|
||||
:10025000F2E08681868380899189DF91CF911F9119
|
||||
:100260000F910895E0E0F9E087E08083118282E158
|
||||
:100270009AE786A397A381E086830895CF93DF93BF
|
||||
:10028000EC0103C0CE010E94200ACE010E94180A90
|
||||
:100290008111F8CFDF91CF9108951F920F920FB681
|
||||
:1002A0000F9211242F933F934F935F936F937F93FC
|
||||
:1002B0008F939F93AF93BF93CF93DF93EF93FF936E
|
||||
:1002C0008CE690E20E942C0A8CE690E20E94180ACA
|
||||
:1002D000882379F0C0912520D0E08CE690E20E943E
|
||||
:1002E000200ACD5EDF4D8883809125208F5F80932B
|
||||
:1002F0002520809125208A3009F088C08CE690E284
|
||||
:100300000E943E0190911B20809114207091152035
|
||||
:10031000609116205091172040911820309119209B
|
||||
:1003200020911A20872786278527842783278227DD
|
||||
:10033000981353C0E4E1F0E2808183FB882780F9C1
|
||||
:100340008093262080818470809327208081C1E063
|
||||
:10035000869581708C2780933B2020911620809178
|
||||
:10036000152090E0820F911D8093332090933420CC
|
||||
:10037000809118206091172070E0680F711D882708
|
||||
:1003800077FD8095982F0E945B0B20E030E048ECD1
|
||||
:1003900052E40E94C00AAB01BC0184E590E20E94D5
|
||||
:1003A000BF0780911A206091192070E0680F711DBD
|
||||
:1003B000882777FD8095982F0E945B0B20E030E026
|
||||
:1003C00048EC52E40E94C00AAB01BC018CE390E20D
|
||||
:1003D0000E94BF07C093282019C0E0EAF8E081819D
|
||||
:1003E00085FFFDCF8FEF8093A008E0EAF8E08181E0
|
||||
:1003F00085FFFDCF1092A008E0EAF8E0818185FF3B
|
||||
:10040000FDCF8FEF8093A00810922520FF91EF91F0
|
||||
:10041000DF91CF91BF91AF919F918F917F916F911C
|
||||
:100420005F914F913F912F910F900FBE0F901F90B2
|
||||
:1004300018951F920F920FB60F9211242F933F938E
|
||||
:100440004F935F936F937F938F939F93AF93BF93DC
|
||||
:10045000EF93FF938CE690E20E94410AFF91EF91A7
|
||||
:10046000BF91AF919F918F917F916F915F914F91CC
|
||||
:100470003F912F910F900FBE0F901F90189588ED10
|
||||
:1004800084BF82E080935000E0E5F0E0818181FF4D
|
||||
:10049000FDCF88ED84BF91E09093400084BFE0E5FC
|
||||
:1004A000F0E0808184608083818182FFFDCFE0E580
|
||||
:1004B000F0E086818D7F8683E0E6F0E080818160D8
|
||||
:1004C00080830895E0E4F6E088E0818384E082831D
|
||||
:1004D00041E060EA78E08CE690E20E940F0AE09149
|
||||
:1004E0006C20F0916D2083E0858383818F7C806117
|
||||
:1004F0008383A0EAB8E08FEC16968C931697179634
|
||||
:100500001C92848180618483848188608483E0EA92
|
||||
:10051000F0E08281816082830895CF93DF930E940F
|
||||
:100520003F020E9462020E94320180EEE0E4F6E0A7
|
||||
:100530008183A0E6B6E09FEF11969C931197E0E0CF
|
||||
:10054000F6E08183C0E2D6E087E0898384E082839D
|
||||
:1005500098E092839A8320E1228398E1938B9B8B8E
|
||||
:1005600030E416963C93169790E29683368330E8F3
|
||||
:10057000358316962C93169716969C931697169677
|
||||
:100580008C93169721E02D8392E09D838E8316969F
|
||||
:100590002C93169716969C937894DF91CF9108959B
|
||||
:1005A000FC012081222359F0DC011196E0EAF8E0F9
|
||||
:1005B000818185FFFDCF20832D912111F9CF0895F1
|
||||
:1005C000EF92FF920F931F93CF93DF938C01C7E0BD
|
||||
:1005D000D0E0E12CF12C0115110539F461E081E046
|
||||
:1005E0000E94EA00E80EF91E09C00130110531F43D
|
||||
:1005F00061E080E00E94EA00E80EF91E8FE39FE1CF
|
||||
:100600000197F1F700C000002197209721F7C7015B
|
||||
:1006100067E070E00E94720CCB01DF91CF911F91D7
|
||||
:100620000F91FF90EF900895CF92DF92EF92FF929B
|
||||
:10063000209168203091692040916A2050916B2070
|
||||
:100640006091642070916520809166209091672070
|
||||
:100650000E945B0A6B017C0120E030E0A9010E944E
|
||||
:10066000E70B181624F0F7FAF094F7F8F094A701C6
|
||||
:100670009601609158207091592080915A20909154
|
||||
:100680005B200E94E70B181644F4E6E5F0E2808157
|
||||
:10069000918101968083918304C01092562010921C
|
||||
:1006A000572020915020309151204091522050915C
|
||||
:1006B000532060914C2070914D2080914E2090915C
|
||||
:1006C0004F200E945B0A6B017C0120E030E0A90111
|
||||
:1006D0000E94E70B181624F0F7FAF094F7F8F0945C
|
||||
:1006E000A7019601609140207091412080914220A5
|
||||
:1006F000909143200E94E70B181644F4EEE3F0E2D9
|
||||
:100700008081918101968083918304C010923E2064
|
||||
:1007100010923F2020913E2030913F2080913C203C
|
||||
:1007200090913D202817390724F08CE390E20E9435
|
||||
:10073000BB07209156203091572080913C2090910A
|
||||
:100740003D202817390724F084E590E20E94BB077A
|
||||
:1007500080E090E00E94E002BC01882777FD809550
|
||||
:10076000982F0E945B0B2FE135E848E652E40E9487
|
||||
:10077000C00A25E83BEE41ED5EE30E945B0A609310
|
||||
:10078000642070936520809366209093672081E0B9
|
||||
:1007900090E00E94E002BC01882777FD8095982FA9
|
||||
:1007A0000E945B0B2FE135E848E652E40E94C00A44
|
||||
:1007B00025E83BEE41ED5EE30E945B0A60934C202E
|
||||
:1007C00070934D2080934E2090934F20FF90EF9098
|
||||
:1007D000DF90CF9008954F925F926F927F928F92A9
|
||||
:1007E0009F92AF92BF92CF92DF92EF92FF920097CB
|
||||
:1007F00009F071C0409064205090652060906620A0
|
||||
:1008000070906720209168203091692040916A2083
|
||||
:1008100050916B20C301B2010E945B0A6B017C0105
|
||||
:1008200020E030E0A9010E94E70B181624F0F7FA47
|
||||
:10083000F094F7F8F09480905C2090905D20A09068
|
||||
:100840005E20B0905F2020E030E040E05FE3C50133
|
||||
:10085000B4010E94EB0BA70196010E94E70B18164A
|
||||
:1008600054F4809160209091612063E070E00E94D8
|
||||
:10087000720CCB01A6C02091682030916920409174
|
||||
:100880006A2050916B20C301B2010E945B0A6B0188
|
||||
:100890007C0120E030E0A9010E94E70B181624F04B
|
||||
:1008A000F7FAF094F7F8F094A7019601C501B401A6
|
||||
:1008B0000E94E70B181654F48091602090916120FB
|
||||
:1008C00099230CF40196959587957BC080916020C3
|
||||
:1008D0009091612076C0019709F071C040904C2042
|
||||
:1008E00050904D2060904E2070904F2020915020CD
|
||||
:1008F000309151204091522050915320C301B201B8
|
||||
:100900000E945B0A6B017C0120E030E0A9010E949B
|
||||
:10091000E70B181624F0F7FAF094F7F8F0948090AB
|
||||
:10092000442090904520A0904620B090472020E0A1
|
||||
:1009300030E040E05FE3C501B4010E94EB0BA7018A
|
||||
:1009400096010E94E70B181654F48091482090916C
|
||||
:10095000492063E070E00E94720CCB0132C020910C
|
||||
:100960005020309151204091522050915320C3018A
|
||||
:10097000B2010E945B0A6B017C0120E030E0A9011A
|
||||
:100980000E94E70B181624F0F7FAF094F7F8F094A9
|
||||
:10099000A7019601C501B4010E94E70B181654F493
|
||||
:1009A000809148209091492099230CF401969595C7
|
||||
:1009B000879507C0809148209091492002C080E02F
|
||||
:1009C00090E0FF90EF90DF90CF90BF90AF909F901E
|
||||
:1009D0008F907F906F905F904F9008950097F1F403
|
||||
:1009E0008091622090916320009709F43EC020918D
|
||||
:1009F00068203091692040916A2050916B2060916D
|
||||
:100A000064207091652080916620909167200E94FB
|
||||
:100A1000E70B181614F58FEF9FEF0895019701F576
|
||||
:100A200080914A2090914B200097F9F0209150201E
|
||||
:100A300030915120409152205091532060914C2090
|
||||
:100A400070914D2080914E2090914F200E94E70B95
|
||||
:100A500018164CF48FEF9FEF089581E090E0089511
|
||||
:100A600080E090E0089581E090E00895CF93DF93D7
|
||||
:100A700000D000D0CDB7DEB70E948D022FEF87EAFD
|
||||
:100A800091E6215080409040E1F700C0000040E630
|
||||
:100A900056E060EA79E0CE0101960E94280980E0E4
|
||||
:100AA00090E0A0E4B0E48093502090935120A09374
|
||||
:100AB0005220B093532080E090E0A0E6B0E4809311
|
||||
:100AC000682090936920A0936A20B0936B20E0E0A7
|
||||
:100AD000F6E0808584FFFDCF84E590E20E94B507B3
|
||||
:100AE0008CE390E20E94B5070F2EF2E6CF2EF0E2E3
|
||||
:100AF000DF2EF02D0F2EFAE4EF2EF0E2FF2EF02D78
|
||||
:100B000000E016E031C00E94140381E090E00E94F2
|
||||
:100B1000EB03A82E81E090E00E94EE04982E80E086
|
||||
:100B200090E00E94EB03B82E80E090E00E94EE047B
|
||||
:100B30009A9C402D112441588B9D802D11246FE7E4
|
||||
:100B4000680FCE0101960E94E008D80118968C919A
|
||||
:100B500084FD0AC04FE76FE7CE0101960E94E008CE
|
||||
:100B6000F801808584FFF6CFD6018D919C91892B69
|
||||
:100B700051F6F70180819181892B29F689E290E273
|
||||
:100B80000E94DA0781E0E0E6F6E0868360E070E04C
|
||||
:100B900089E290E20E94980885E390E20E94090AA7
|
||||
:100BA00061E070E085E390E20E9467090F2EF0EAB1
|
||||
:100BB000EF2EF8E0FF2EF02D00E016E00F2EF2E60B
|
||||
:100BC000CF2EF0E2DF2EF02D0F2EFAE4AF2EF0E262
|
||||
:100BD000BF2EF02D412C512C6894662466F8762C9B
|
||||
:100BE0008091122081112FC080E090E20E94D002FB
|
||||
:100BF000FFEF23ED80E3F15020408040E1F700C09B
|
||||
:100C00000000809113208237D9F481E08093122074
|
||||
:100C1000D70111968C91119785FFFACF82E78C93BB
|
||||
:100C20008091212090912220A0912320B091242016
|
||||
:100C300080931D2090931E20A0931F20B09320200E
|
||||
:100C400010922520CDCF813059F68091282088231D
|
||||
:100C500039F280912620882309F477C040925020F1
|
||||
:100C600050925120609252207092532080E090E088
|
||||
:100C7000A0E6B0E48093682090936920A0936A2056
|
||||
:100C8000B0936B2084E590E20E94B5078CE390E27C
|
||||
:100C90000E94B50731C00E94140381E090E00E94D9
|
||||
:100CA000EB03882E81E090E00E94EE04382E80E075
|
||||
:100CB00090E00E94EB03982E80E090E00E94EE040A
|
||||
:100CC000389C402D11244158899D802D11246FE7B7
|
||||
:100CD000680FCE0101960E94E008D80118968C9109
|
||||
:100CE00084FD0AC04FE76FE7CE0101960E94E0083D
|
||||
:100CF000F801808584FFF6CFD6018D919C91892BD8
|
||||
:100D000051F6F50180819181892B29F689E290E2E3
|
||||
:100D10000E94DA0781E0E0E6F6E0868360E070E0BA
|
||||
:100D200089E290E20E94980880913B20882351F04C
|
||||
:100D300085E390E20E94090A61E070E085E390E2B9
|
||||
:100D40000E9467091092262074C080E880934506AF
|
||||
:100D500084E590E20E94B5078CE390E20E94B5071B
|
||||
:100D6000609133207091342089E290E20E949808CB
|
||||
:100D70000E94140331C00E94140380E090E00E949E
|
||||
:100D8000EB03882E81E090E00E94EE04382E80E094
|
||||
:100D900090E00E94EB03982E80E090E00E94EE0429
|
||||
:100DA000389C402D11244158899D802D11246FE7D6
|
||||
:100DB000680FCE0101960E94E008D80118968C9128
|
||||
:100DC00084FD0AC04FE76FE7CE0101960E94E0085C
|
||||
:100DD000F801808584FFF6CFD6018D919C91892BF7
|
||||
:100DE00051F6F50180819181892B29F64FE76FE754
|
||||
:100DF000CE0101960E94E00880913B2081110BC03A
|
||||
:100E000085E390E20E94090A60E070E085E390E2E9
|
||||
:100E10000E9467090EC080913B20813051F485E328
|
||||
:100E200090E20E94090A61E070E085E390E20E948E
|
||||
:100E300067091092282080E880934606D701119612
|
||||
:100E40008C91119785FFFACF8FEF8C93F7018181F9
|
||||
:100E500085FFFCCFD80118968C9183FD02C083E0FA
|
||||
:100E600001C082E0F7018083D70111968C91119720
|
||||
:100E700085FFFACF8FEF8C9310922520809121204F
|
||||
:100E800090912220A0912320B091242080931D20B6
|
||||
:100E900090931E20A0931F20B0932020A1CE1F92DC
|
||||
:100EA0000F920FB60F9211248F939F93AF93BF931E
|
||||
:100EB0008091212090912220A0912320B091242084
|
||||
:100EC0000196A11DB11D8093212090932220A09313
|
||||
:100ED0002320B0932420BF91AF919F918F910F90C9
|
||||
:100EE0000FBE0F901F90189584E590E20E94960720
|
||||
:100EF0008CE390E20E94960785E390E20E945A09F3
|
||||
:100F000089E290E20E94C507089589E290E20E947A
|
||||
:100F1000D90785E390E20E9466098CE390E20E9483
|
||||
:100F2000B40784E590E20E94B4070895FC011282A0
|
||||
:100F3000138285E090E0808391834DEC5CEC6CE45F
|
||||
:100F40007EE3448355836683778340E050E060E42A
|
||||
:100F50007FE3408751876287738784E690E08487C8
|
||||
:100F60009587168617860895089521E030E0FC01E4
|
||||
:100F7000268737870895FC01168617860895FC0199
|
||||
:100F8000448B558B668B778B0895FC0140E050E0D5
|
||||
:100F90006FE773E4448355836683778340E050E0D2
|
||||
:100FA00060E87FEB408351836283738310861186F0
|
||||
:100FB00008950895CF93DF93EC0181E0E0E6F6E039
|
||||
:100FC000868360E070E020E0E0E0F6E0A0E6B6E0D6
|
||||
:100FD00031E052E0808584FFFDCF808582FF10C024
|
||||
:100FE000211110C015963C9315972FEF4FE285E71E
|
||||
:100FF000215040408040E1F700C00000232F02C094
|
||||
:10100000222341F06F5F7F4F673971051CF08085A7
|
||||
:1010100082FD13C016965C9316978FEB92E10197B1
|
||||
:10102000F1F700C0000015965C9315978FEB92E1E5
|
||||
:101030000197F1F700C00000CDCF82E0E0E6F6E0D6
|
||||
:1010400086838FEB92E10197F1F700C0000082E008
|
||||
:1010500085838FEB92E10197F1F700C000001886BD
|
||||
:101060001986882777FD8095982F0E945B0B2C812D
|
||||
:101070003D814E815F810E94C00A688379838A83A3
|
||||
:101080009B839FEF2FE245E7915020404040E1F7DE
|
||||
:1010900000C00000DF91CF910895CF93DF93EC0162
|
||||
:1010A000CB01181619062CF421E0E0E6F6E02683C1
|
||||
:1010B00004C021E0E0E6F6E02583BC01992324F496
|
||||
:1010C00066277727681B790B882777FD8095982FEF
|
||||
:1010D0000E945B0B288139814A815B810E94EB0B66
|
||||
:1010E0000E94280B1616170604F580E090E0E0E059
|
||||
:1010F000F6E0A0E6B6E032E0208524FFFDCF1696AC
|
||||
:101100003C931697CFE7DCE02197F1F700C0000091
|
||||
:1011100015963C931597CFE9DFE02197F1F700C0D2
|
||||
:10112000000001968617970739F7DF91CF91089550
|
||||
:10113000CF92DF92EF92FF92CF93DF93EC0188275B
|
||||
:1011400077FD8095982F0E945B0B29E23CE540E1FA
|
||||
:1011500052E40E945C0A0E94280B6B017C01888586
|
||||
:101160009985B601681B790BCE010E944D08C8868F
|
||||
:10117000D986DF91CF91FF90EF90DF90CF900895C7
|
||||
:10118000DC01ED91FC911197818185FFFDCF80E815
|
||||
:101190008083ED91FC911197818185FFFDCF608364
|
||||
:1011A000ED91FC911197818185FFFDCF4083ED91F9
|
||||
:1011B000FC91818185FFFDCF640F6F776083089577
|
||||
:1011C0000F931F93CF93DF93EC01842F6F3761F060
|
||||
:1011D0006F3720F44FE7461B61E00BC066233CF4F9
|
||||
:1011E00041E8460F60E005C040E060E002C040E03A
|
||||
:1011F00060E08F3761F08F3720F40FE7081B15E0B0
|
||||
:101200000BC088233CF401E8080F14E005C000E09F
|
||||
:1012100014E002C000E014E0CE010E94C008402F9C
|
||||
:10122000612FCE010E94C008DF91CF911F910F91D5
|
||||
:101230000895CF93DF93EC0140E060E00E94C00886
|
||||
:1012400040E064E0CE010E94C008DF91CF91089594
|
||||
:10125000CF93DF93EC01688379834A835B8388E0D3
|
||||
:10126000FA018183E881F98183E08583E881F9814E
|
||||
:101270008FEC8683E881F9811782E881F981848186
|
||||
:1012800088608483FFEF23EC89E0F15020408040A8
|
||||
:10129000E1F700C00000E881F9818AEA808344E137
|
||||
:1012A0006EE0CE010E94C008CE010E941909DF91B4
|
||||
:1012B000CF910895FC01108211828FEF9FEF8283FE
|
||||
:1012C000938381E090E08483958308950895CF937C
|
||||
:1012D000DF93EC0128813981232B09F497C0623018
|
||||
:1012E000710508F093C02A813B812617370709F45E
|
||||
:1012F0008DC06A837B836115710529F420E1E0E6E6
|
||||
:10130000F6E0258307C06130710521F420E1E0E6B5
|
||||
:10131000F6E02683FC0124813581232B11F520E1A1
|
||||
:1013200037E2E0E0F6E0A0E6B6E050E2408544FFB8
|
||||
:10133000FDCF15965C931597CFE8D1E02197F1F793
|
||||
:1013400000C0000016965C931697CFE9DFE0219766
|
||||
:10135000F1F700C00000215031092115310531F7A6
|
||||
:1013600003C0FC01148215826115710531F548EA4C
|
||||
:1013700052ED62E070E0E0E0F6E0A0E6B6E030E2D8
|
||||
:10138000208524FFFDCF15963C93159725ED2A95D2
|
||||
:10139000F1F7000016963C931697CFE3D1E0219722
|
||||
:1013A000F1F700C000004150510961097109411570
|
||||
:1013B00051056105710521F726C06130710519F5E8
|
||||
:1013C000E0E2F6E0208523FD1EC0E0E0F6E0A0E6C6
|
||||
:1013D000B6E050E260E276E0408544FFFDCF15962E
|
||||
:1013E0005C931597D5EDDA95F1F7000016965C93AE
|
||||
:1013F0001697CFE3D1E02197F1F700C00000EB0191
|
||||
:10140000488543FFE9CFFC0110821182DF91CF9123
|
||||
:10141000089521E030E0FC01208331830895FC0130
|
||||
:101420006083718342831486138616861586089519
|
||||
:10143000FC012385948581E0291301C080E0089593
|
||||
:10144000FC018485DF01A80FB11D13968C91948552
|
||||
:101450009F5F937094870895FC0183858F5F8370ED
|
||||
:101460009485A081B1812C91891749F09385DF0182
|
||||
:10147000A90FB11D13962C93838781E0089580E016
|
||||
:101480000895FC0186859585981307C00190F08129
|
||||
:10149000E02D83818C7F838308958685DF01A80FEB
|
||||
:1014A000B11D17968C91A081B1818C9386858F5F39
|
||||
:1014B0008370868708955058BB27AA270ED04DC148
|
||||
:1014C0003ED130F043D120F031F49F3F11F41EF4AF
|
||||
:1014D00033C10EF4E095E7FB29C1E92F4FD180F32A
|
||||
:1014E000BA17620773078407950718F071F49EF521
|
||||
:1014F00067C10EF4E0950B2EBA2FA02D0B01B90198
|
||||
:1015000090010C01CA01A0011124FF27591B99F079
|
||||
:10151000593F50F4503E68F11A16F040A22F232F85
|
||||
:10152000342F4427585FF3CF469537952795A795D5
|
||||
:10153000F0405395C9F77EF41F16BA0B620B730B7C
|
||||
:10154000840BBAF09150A1F0FF0FBB1F661F771FED
|
||||
:10155000881FC2F70EC0BA0F621F731F841F48F4A2
|
||||
:10156000879577956795B795F7959E3F08F0B3CF28
|
||||
:101570009395880F08F09927EE0F97958795089512
|
||||
:101580000CD0EBC0E3D040F0DAD030F021F45F3F74
|
||||
:1015900019F0CCC0511115C1CFC0F0D098F39923E8
|
||||
:1015A000C9F35523B1F3951B550BBB27AA27621727
|
||||
:1015B0007307840738F09F5F5F4F220F331F441F6C
|
||||
:1015C000AA1FA9F333D00E2E3AF0E0E830D09150A4
|
||||
:1015D0005040E695001CCAF729D0FE2F27D0660F91
|
||||
:1015E000771F881FBB1F261737074807AB07B0E8D0
|
||||
:1015F00009F0BB0B802DBF01FF2793585F4F2AF0E6
|
||||
:101600009E3F510568F092C0DCC05F3FECF3983E0E
|
||||
:10161000DCF3869577956795B795F7959F5FC9F742
|
||||
:10162000880F911D9695879597F90895E1E0660FCB
|
||||
:10163000771F881FBB1F621773078407BA0720F044
|
||||
:10164000621B730B840BBA0BEE1F88F7E0950895AD
|
||||
:1016500004D06894B111B5C0089598D088F09F5710
|
||||
:1016600090F0B92F9927B751A0F0D1F0660F771FEE
|
||||
:10167000881F991F1AF0BA95C9F712C0B13081F0CE
|
||||
:101680009FD0B1E008959CC0672F782F8827B85F5E
|
||||
:1016900039F0B93FCCF3869577956795B395D9F72F
|
||||
:1016A0003EF490958095709561957F4F8F4F9F4F39
|
||||
:1016B0000895E89409C097FB3EF490958095709545
|
||||
:1016C00061957F4F8F4F9F4F9923A9F0F92F96E98E
|
||||
:1016D000BB279395F695879577956795B795F11103
|
||||
:1016E000F8CFFAF4BB0F11F460FF1BC06F5F7F4FA0
|
||||
:1016F0008F4F9F4F16C0882311F096E911C07723B2
|
||||
:1017000021F09EE8872F762F05C0662371F096E8BA
|
||||
:10171000862F70E060E02AF09A95660F771F881F89
|
||||
:10172000DAF7880F9695879597F9089597F99F6747
|
||||
:1017300080E870E060E008959FEF80EC0895002459
|
||||
:101740000A941616170618060906089500240A9426
|
||||
:1017500012161306140605060895092E0394000CAC
|
||||
:1017600011F4882352F0BB0F40F4BF2B11F460FF3B
|
||||
:1017700004C06F5F7F4F8F4F9F4F089557FD905864
|
||||
:10178000440F551F59F05F3F71F04795880F97FB45
|
||||
:10179000991F61F09F3F79F08795089512161306FF
|
||||
:1017A0001406551FF2CF4695F1DF08C0161617062E
|
||||
:1017B0001806991FF1CF8695710561050894089563
|
||||
:1017C000E894BB2766277727CB0197F9089566D061
|
||||
:1017D00008F48FEF08950BD0C0CFB1DF28F0B6DF4B
|
||||
:1017E00018F0952309F0A2CFA7CF1124EACFC6DFC6
|
||||
:1017F000A0F3959FD1F3950F50E0551F629FF00124
|
||||
:10180000729FBB27F00DB11D639FAA27F00DB11D7C
|
||||
:10181000AA1F649F6627B00DA11D661F829F222705
|
||||
:10182000B00DA11D621F739FB00DA11D621F839F8C
|
||||
:10183000A00D611D221F749F3327A00D611D231F62
|
||||
:10184000849F600D211D822F762F6A2F11249F57B0
|
||||
:1018500050408AF0E1F088234AF0EE0FFF1FBB1FD3
|
||||
:10186000661F771F881F91505040A9F79E3F510572
|
||||
:1018700070F05CCFA6CF5F3FECF3983EDCF386952B
|
||||
:1018800077956795B795F795E7959F5FC1F7FE2B1D
|
||||
:10189000880F911D9695879597F90895990F0008DF
|
||||
:1018A000550FAA0BE0E8FEEF16161706E807F90732
|
||||
:1018B000C0F012161306E407F50798F0621B730BCD
|
||||
:1018C000840B950B39F40A2661F0232B242B252B4E
|
||||
:1018D00021F408950A2609F4A140A6958FEF811DF1
|
||||
:1018E000811D089597FB072E16F4009407D077FD0D
|
||||
:1018F00009D00E94860C07FC05D03EF49095819596
|
||||
:101900009F4F0895709561957F4F0895AA1BBB1B4B
|
||||
:1019100051E107C0AA1FBB1FA617B70710F0A61BEF
|
||||
:10192000B70B881F991F5A95A9F780959095BC0110
|
||||
:10193000CD010895EE0FFF1F0590F491E02D09945D
|
||||
:1019400011E0CEE6D1E004C0FE010E949C0C22967C
|
||||
:0A195000C037D107C9F7F894FFCFA4
|
||||
:10195A0049443A2041726D436F6E74726F6C0D0A7E
|
||||
:02196A0000007B
|
||||
:00000001FF
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,410 @@
|
||||
S012000041726D436F6E74726F6C2E7372656311
|
||||
S11300000C94B8000C94E0000C94E0000C94E00014
|
||||
S11300100C94E0000C94E0000C94E0000C94E000DC
|
||||
S11300200C94E0000C94E0000C94E0000C94E000CC
|
||||
S11300300C94E0000C94E0000C94E0000C94E000BC
|
||||
S11300400C94E0000C94E0000C94E0000C94E000AC
|
||||
S11300500C94E0000C94E0000C94E0000C94E0009C
|
||||
S11300600C94E0000C944D010C9419020C94E000E3
|
||||
S11300700C94E0000C94E0000C94E0000C94E0007C
|
||||
S11300800C94E0000C94E0000C94E0000C94E0006C
|
||||
S11300900C94E0000C94E0000C94E0000C94E0005C
|
||||
S11300A00C94E0000C94E0000C94E0000C94E0004C
|
||||
S11300B00C94E0000C94E0000C94E0000C94E0003C
|
||||
S11300C00C94E0000C94E0000C94E0000C94E0002C
|
||||
S11300D00C94E0000C94E0000C94E0000C94E0001C
|
||||
S11300E00C94E0000C94E0000C94E0000C94E0000C
|
||||
S11300F00C94E0000C94E0000C94E0000C94E000FC
|
||||
S11301000C94E0000C94E0000C94E0000C94E000EB
|
||||
S11301100C94E0000C94E0000C94E0000C94E000DB
|
||||
S11301200C94E0000C94E0000C94E0000C94E000CB
|
||||
S11301300C94E0000C944F070C94E0000C94E00045
|
||||
S11301400C94E0000C94E0000C94E0000C94E000AB
|
||||
S11301500C94E0000C94E0000C94E0000C94E0009B
|
||||
S11301600C94E0000C94E0000C94E0007407850704
|
||||
S113017011241FBECFEFCDBFDFE2DEBF10E2A0E04F
|
||||
S1130180B0E2EAE5F9E102C005900D92A231B107AF
|
||||
S1130190D9F720E2A2E1B0E201C01D92AB37B20769
|
||||
S11301A0E1F711E0CEE6D1E004C02297FE010E94FF
|
||||
S11301B09C0CCC36D107C9F70E9436050C94A00CD0
|
||||
S11301C00C940000AAECB1E022E02C93FC01849191
|
||||
S11301D01C9208950F931F93CF93DF93182F062F2C
|
||||
S11301E08091000280FD1BC0C0E0D2E081E08883E2
|
||||
S11301F084E0898380E18A831B8286E08C8380E2A9
|
||||
S113020090E00E94E2008C8781E290E00E94E2008C
|
||||
S11302108D878FE79CE00197F1F700C00000E0E0D4
|
||||
S1130220F2E000A3110F110F110F11A312A280A16C
|
||||
S1130230806880A386818823E9F3E0E0F2E0868188
|
||||
S1130240868380A1806880A386818823E9F3E0E027
|
||||
S1130250F2E08681868380899189DF91CF911F9115
|
||||
S11302600F910895E0E0F9E087E08083118282E154
|
||||
S11302709AE786A397A381E086830895CF93DF93BB
|
||||
S1130280EC0103C0CE010E94200ACE010E94180A8C
|
||||
S11302908111F8CFDF91CF9108951F920F920FB67D
|
||||
S11302A00F9211242F933F934F935F936F937F93F8
|
||||
S11302B08F939F93AF93BF93CF93DF93EF93FF936A
|
||||
S11302C08CE690E20E942C0A8CE690E20E94180AC6
|
||||
S11302D0882379F0C0912520D0E08CE690E20E943A
|
||||
S11302E0200ACD5EDF4D8883809125208F5F809327
|
||||
S11302F02520809125208A3009F088C08CE690E280
|
||||
S11303000E943E0190911B20809114207091152031
|
||||
S11303106091162050911720409118203091192097
|
||||
S113032020911A20872786278527842783278227D9
|
||||
S1130330981353C0E4E1F0E2808183FB882780F9BD
|
||||
S11303408093262080818470809327208081C1E05F
|
||||
S1130350869581708C2780933B2020911620809174
|
||||
S1130360152090E0820F911D8093332090933420C8
|
||||
S1130370809118206091172070E0680F711D882704
|
||||
S113038077FD8095982F0E945B0B20E030E048ECCD
|
||||
S113039052E40E94C00AAB01BC0184E590E20E94D1
|
||||
S11303A0BF0780911A206091192070E0680F711DB9
|
||||
S11303B0882777FD8095982F0E945B0B20E030E022
|
||||
S11303C048EC52E40E94C00AAB01BC018CE390E209
|
||||
S11303D00E94BF07C093282019C0E0EAF8E0818199
|
||||
S11303E085FFFDCF8FEF8093A008E0EAF8E08181DC
|
||||
S11303F085FFFDCF1092A008E0EAF8E0818185FF37
|
||||
S1130400FDCF8FEF8093A00810922520FF91EF91EC
|
||||
S1130410DF91CF91BF91AF919F918F917F916F9118
|
||||
S11304205F914F913F912F910F900FBE0F901F90AE
|
||||
S113043018951F920F920FB60F9211242F933F938A
|
||||
S11304404F935F936F937F938F939F93AF93BF93D8
|
||||
S1130450EF93FF938CE690E20E94410AFF91EF91A3
|
||||
S1130460BF91AF919F918F917F916F915F914F91C8
|
||||
S11304703F912F910F900FBE0F901F90189588ED0C
|
||||
S113048084BF82E080935000E0E5F0E0818181FF49
|
||||
S1130490FDCF88ED84BF91E09093400084BFE0E5F8
|
||||
S11304A0F0E0808184608083818182FFFDCFE0E57C
|
||||
S11304B0F0E086818D7F8683E0E6F0E080818160D4
|
||||
S11304C080830895E0E4F6E088E0818384E0828319
|
||||
S11304D041E060EA78E08CE690E20E940F0AE09145
|
||||
S11304E06C20F0916D2083E0858383818F7C806113
|
||||
S11304F08383A0EAB8E08FEC16968C931697179630
|
||||
S11305001C92848180618483848188608483E0EA8E
|
||||
S1130510F0E08281816082830895CF93DF930E940B
|
||||
S11305203F020E9462020E94320180EEE0E4F6E0A3
|
||||
S11305308183A0E6B6E09FEF11969C931197E0E0CB
|
||||
S1130540F6E08183C0E2D6E087E0898384E0828399
|
||||
S113055098E092839A8320E1228398E1938B9B8B8A
|
||||
S113056030E416963C93169790E29683368330E8EF
|
||||
S1130570358316962C93169716969C931697169673
|
||||
S11305808C93169721E02D8392E09D838E8316969B
|
||||
S11305902C93169716969C937894DF91CF91089597
|
||||
S11305A0FC012081222359F0DC011196E0EAF8E0F5
|
||||
S11305B0818185FFFDCF20832D912111F9CF0895ED
|
||||
S11305C0EF92FF920F931F93CF93DF938C01C7E0B9
|
||||
S11305D0D0E0E12CF12C0115110539F461E081E042
|
||||
S11305E00E94EA00E80EF91E09C00130110531F439
|
||||
S11305F061E080E00E94EA00E80EF91E8FE39FE1CB
|
||||
S11306000197F1F700C000002197209721F7C70157
|
||||
S113061067E070E00E94720CCB01DF91CF911F91D3
|
||||
S11306200F91FF90EF900895CF92DF92EF92FF9297
|
||||
S1130630209168203091692040916A2050916B206C
|
||||
S1130640609164207091652080916620909167206C
|
||||
S11306500E945B0A6B017C0120E030E0A9010E944A
|
||||
S1130660E70B181624F0F7FAF094F7F8F094A701C2
|
||||
S11306709601609158207091592080915A20909150
|
||||
S11306805B200E94E70B181644F4E6E5F0E2808153
|
||||
S1130690918101968083918304C010925620109218
|
||||
S11306A05720209150203091512040915220509158
|
||||
S11306B0532060914C2070914D2080914E20909158
|
||||
S11306C04F200E945B0A6B017C0120E030E0A9010D
|
||||
S11306D00E94E70B181624F0F7FAF094F7F8F09458
|
||||
S11306E0A7019601609140207091412080914220A1
|
||||
S11306F0909143200E94E70B181644F4EEE3F0E2D5
|
||||
S11307008081918101968083918304C010923E2060
|
||||
S113071010923F2020913E2030913F2080913C2038
|
||||
S113072090913D202817390724F08CE390E20E9431
|
||||
S1130730BB07209156203091572080913C20909106
|
||||
S11307403D202817390724F084E590E20E94BB0776
|
||||
S113075080E090E00E94E002BC01882777FD80954C
|
||||
S1130760982F0E945B0B2FE135E848E652E40E9483
|
||||
S1130770C00A25E83BEE41ED5EE30E945B0A60930C
|
||||
S1130780642070936520809366209093672081E0B5
|
||||
S113079090E00E94E002BC01882777FD8095982FA5
|
||||
S11307A00E945B0B2FE135E848E652E40E94C00A40
|
||||
S11307B025E83BEE41ED5EE30E945B0A60934C202A
|
||||
S11307C070934D2080934E2090934F20FF90EF9094
|
||||
S11307D0DF90CF9008954F925F926F927F928F92A5
|
||||
S11307E09F92AF92BF92CF92DF92EF92FF920097C7
|
||||
S11307F009F071C04090642050906520609066209C
|
||||
S113080070906720209168203091692040916A207F
|
||||
S113081050916B20C301B2010E945B0A6B017C0101
|
||||
S113082020E030E0A9010E94E70B181624F0F7FA43
|
||||
S1130830F094F7F8F09480905C2090905D20A09064
|
||||
S11308405E20B0905F2020E030E040E05FE3C5012F
|
||||
S1130850B4010E94EB0BA70196010E94E70B181646
|
||||
S113086054F4809160209091612063E070E00E94D4
|
||||
S1130870720CCB01A6C02091682030916920409170
|
||||
S11308806A2050916B20C301B2010E945B0A6B0184
|
||||
S11308907C0120E030E0A9010E94E70B181624F047
|
||||
S11308A0F7FAF094F7F8F094A7019601C501B401A2
|
||||
S11308B00E94E70B181654F48091602090916120F7
|
||||
S11308C099230CF40196959587957BC080916020BF
|
||||
S11308D09091612076C0019709F071C040904C203E
|
||||
S11308E050904D2060904E2070904F2020915020C9
|
||||
S11308F0309151204091522050915320C301B201B4
|
||||
S11309000E945B0A6B017C0120E030E0A9010E9497
|
||||
S1130910E70B181624F0F7FAF094F7F8F0948090A7
|
||||
S1130920442090904520A0904620B090472020E09D
|
||||
S113093030E040E05FE3C501B4010E94EB0BA70186
|
||||
S113094096010E94E70B181654F480914820909168
|
||||
S1130950492063E070E00E94720CCB0132C0209108
|
||||
S11309605020309151204091522050915320C30186
|
||||
S1130970B2010E945B0A6B017C0120E030E0A90116
|
||||
S11309800E94E70B181624F0F7FAF094F7F8F094A5
|
||||
S1130990A7019601C501B4010E94E70B181654F48F
|
||||
S11309A0809148209091492099230CF401969595C3
|
||||
S11309B0879507C0809148209091492002C080E02B
|
||||
S11309C090E0FF90EF90DF90CF90BF90AF909F901A
|
||||
S11309D08F907F906F905F904F9008950097F1F4FF
|
||||
S11309E08091622090916320009709F43EC0209189
|
||||
S11309F068203091692040916A2050916B20609169
|
||||
S1130A0064207091652080916620909167200E94F7
|
||||
S1130A10E70B181614F58FEF9FEF0895019701F572
|
||||
S1130A2080914A2090914B200097F9F0209150201A
|
||||
S1130A3030915120409152205091532060914C208C
|
||||
S1130A4070914D2080914E2090914F200E94E70B91
|
||||
S1130A5018164CF48FEF9FEF089581E090E008950D
|
||||
S1130A6080E090E0089581E090E00895CF93DF93D3
|
||||
S1130A7000D000D0CDB7DEB70E948D022FEF87EAF9
|
||||
S1130A8091E6215080409040E1F700C0000040E62C
|
||||
S1130A9056E060EA79E0CE0101960E94280980E0E0
|
||||
S1130AA090E0A0E4B0E48093502090935120A09370
|
||||
S1130AB05220B093532080E090E0A0E6B0E480930D
|
||||
S1130AC0682090936920A0936A20B0936B20E0E0A3
|
||||
S1130AD0F6E0808584FFFDCF84E590E20E94B507AF
|
||||
S1130AE08CE390E20E94B5070F2EF2E6CF2EF0E2DF
|
||||
S1130AF0DF2EF02D0F2EFAE4EF2EF0E2FF2EF02D74
|
||||
S1130B0000E016E031C00E94140381E090E00E94EE
|
||||
S1130B10EB03A82E81E090E00E94EE04982E80E082
|
||||
S1130B2090E00E94EB03B82E80E090E00E94EE0477
|
||||
S1130B309A9C402D112441588B9D802D11246FE7E0
|
||||
S1130B40680FCE0101960E94E008D80118968C9196
|
||||
S1130B5084FD0AC04FE76FE7CE0101960E94E008CA
|
||||
S1130B60F801808584FFF6CFD6018D919C91892B65
|
||||
S1130B7051F6F70180819181892B29F689E290E26F
|
||||
S1130B800E94DA0781E0E0E6F6E0868360E070E048
|
||||
S1130B9089E290E20E94980885E390E20E94090AA3
|
||||
S1130BA061E070E085E390E20E9467090F2EF0EAAD
|
||||
S1130BB0EF2EF8E0FF2EF02D00E016E00F2EF2E607
|
||||
S1130BC0CF2EF0E2DF2EF02D0F2EFAE4AF2EF0E25E
|
||||
S1130BD0BF2EF02D412C512C6894662466F8762C97
|
||||
S1130BE08091122081112FC080E090E20E94D002F7
|
||||
S1130BF0FFEF23ED80E3F15020408040E1F700C097
|
||||
S1130C000000809113208237D9F481E08093122070
|
||||
S1130C10D70111968C91119785FFFACF82E78C93B7
|
||||
S1130C208091212090912220A0912320B091242012
|
||||
S1130C3080931D2090931E20A0931F20B09320200A
|
||||
S1130C4010922520CDCF813059F680912820882319
|
||||
S1130C5039F280912620882309F477C040925020ED
|
||||
S1130C6050925120609252207092532080E090E084
|
||||
S1130C70A0E6B0E48093682090936920A0936A2052
|
||||
S1130C80B0936B2084E590E20E94B5078CE390E278
|
||||
S1130C900E94B50731C00E94140381E090E00E94D5
|
||||
S1130CA0EB03882E81E090E00E94EE04382E80E071
|
||||
S1130CB090E00E94EB03982E80E090E00E94EE0406
|
||||
S1130CC0389C402D11244158899D802D11246FE7B3
|
||||
S1130CD0680FCE0101960E94E008D80118968C9105
|
||||
S1130CE084FD0AC04FE76FE7CE0101960E94E00839
|
||||
S1130CF0F801808584FFF6CFD6018D919C91892BD4
|
||||
S1130D0051F6F50180819181892B29F689E290E2DF
|
||||
S1130D100E94DA0781E0E0E6F6E0868360E070E0B6
|
||||
S1130D2089E290E20E94980880913B20882351F048
|
||||
S1130D3085E390E20E94090A61E070E085E390E2B5
|
||||
S1130D400E9467091092262074C080E880934506AB
|
||||
S1130D5084E590E20E94B5078CE390E20E94B50717
|
||||
S1130D60609133207091342089E290E20E949808C7
|
||||
S1130D700E94140331C00E94140380E090E00E949A
|
||||
S1130D80EB03882E81E090E00E94EE04382E80E090
|
||||
S1130D9090E00E94EB03982E80E090E00E94EE0425
|
||||
S1130DA0389C402D11244158899D802D11246FE7D2
|
||||
S1130DB0680FCE0101960E94E008D80118968C9124
|
||||
S1130DC084FD0AC04FE76FE7CE0101960E94E00858
|
||||
S1130DD0F801808584FFF6CFD6018D919C91892BF3
|
||||
S1130DE051F6F50180819181892B29F64FE76FE750
|
||||
S1130DF0CE0101960E94E00880913B2081110BC036
|
||||
S1130E0085E390E20E94090A60E070E085E390E2E5
|
||||
S1130E100E9467090EC080913B20813051F485E324
|
||||
S1130E2090E20E94090A61E070E085E390E20E948A
|
||||
S1130E3067091092282080E880934606D70111960E
|
||||
S1130E408C91119785FFFACF8FEF8C93F7018181F5
|
||||
S1130E5085FFFCCFD80118968C9183FD02C083E0F6
|
||||
S1130E6001C082E0F7018083D70111968C9111971C
|
||||
S1130E7085FFFACF8FEF8C9310922520809121204B
|
||||
S1130E8090912220A0912320B091242080931D20B2
|
||||
S1130E9090931E20A0931F20B0932020A1CE1F92D8
|
||||
S1130EA00F920FB60F9211248F939F93AF93BF931A
|
||||
S1130EB08091212090912220A0912320B091242080
|
||||
S1130EC00196A11DB11D8093212090932220A0930F
|
||||
S1130ED02320B0932420BF91AF919F918F910F90C5
|
||||
S1130EE00FBE0F901F90189584E590E20E9496071C
|
||||
S1130EF08CE390E20E94960785E390E20E945A09EF
|
||||
S1130F0089E290E20E94C507089589E290E20E9476
|
||||
S1130F10D90785E390E20E9466098CE390E20E947F
|
||||
S1130F20B40784E590E20E94B4070895FC0112829C
|
||||
S1130F30138285E090E0808391834DEC5CEC6CE45B
|
||||
S1130F407EE3448355836683778340E050E060E426
|
||||
S1130F507FE3408751876287738784E690E08487C4
|
||||
S1130F609587168617860895089521E030E0FC01E0
|
||||
S1130F70268737870895FC01168617860895FC0195
|
||||
S1130F80448B558B668B778B0895FC0140E050E0D1
|
||||
S1130F906FE773E4448355836683778340E050E0CE
|
||||
S1130FA060E87FEB408351836283738310861186EC
|
||||
S1130FB008950895CF93DF93EC0181E0E0E6F6E035
|
||||
S1130FC0868360E070E020E0E0E0F6E0A0E6B6E0D2
|
||||
S1130FD031E052E0808584FFFDCF808582FF10C020
|
||||
S1130FE0211110C015963C9315972FEF4FE285E71A
|
||||
S1130FF0215040408040E1F700C00000232F02C090
|
||||
S1131000222341F06F5F7F4F673971051CF08085A3
|
||||
S113101082FD13C016965C9316978FEB92E10197AD
|
||||
S1131020F1F700C0000015965C9315978FEB92E1E1
|
||||
S11310300197F1F700C00000CDCF82E0E0E6F6E0D2
|
||||
S113104086838FEB92E10197F1F700C0000082E004
|
||||
S113105085838FEB92E10197F1F700C000001886B9
|
||||
S11310601986882777FD8095982F0E945B0B2C8129
|
||||
S11310703D814E815F810E94C00A688379838A839F
|
||||
S11310809B839FEF2FE245E7915020404040E1F7DA
|
||||
S113109000C00000DF91CF910895CF93DF93EC015E
|
||||
S11310A0CB01181619062CF421E0E0E6F6E02683BD
|
||||
S11310B004C021E0E0E6F6E02583BC01992324F492
|
||||
S11310C066277727681B790B882777FD8095982FEB
|
||||
S11310D00E945B0B288139814A815B810E94EB0B62
|
||||
S11310E00E94280B1616170604F580E090E0E0E055
|
||||
S11310F0F6E0A0E6B6E032E0208524FFFDCF1696A8
|
||||
S11311003C931697CFE7DCE02197F1F700C000008D
|
||||
S113111015963C931597CFE9DFE02197F1F700C0CE
|
||||
S1131120000001968617970739F7DF91CF9108954C
|
||||
S1131130CF92DF92EF92FF92CF93DF93EC01882757
|
||||
S113114077FD8095982F0E945B0B29E23CE540E1F6
|
||||
S113115052E40E945C0A0E94280B6B017C01888582
|
||||
S11311609985B601681B790BCE010E944D08C8868B
|
||||
S1131170D986DF91CF91FF90EF90DF90CF900895C3
|
||||
S1131180DC01ED91FC911197818185FFFDCF80E811
|
||||
S11311908083ED91FC911197818185FFFDCF608360
|
||||
S11311A0ED91FC911197818185FFFDCF4083ED91F5
|
||||
S11311B0FC91818185FFFDCF640F6F776083089573
|
||||
S11311C00F931F93CF93DF93EC01842F6F3761F05C
|
||||
S11311D06F3720F44FE7461B61E00BC066233CF4F5
|
||||
S11311E041E8460F60E005C040E060E002C040E036
|
||||
S11311F060E08F3761F08F3720F40FE7081B15E0AC
|
||||
S11312000BC088233CF401E8080F14E005C000E09B
|
||||
S113121014E002C000E014E0CE010E94C008402F98
|
||||
S1131220612FCE010E94C008DF91CF911F910F91D1
|
||||
S11312300895CF93DF93EC0140E060E00E94C00882
|
||||
S113124040E064E0CE010E94C008DF91CF91089590
|
||||
S1131250CF93DF93EC01688379834A835B8388E0CF
|
||||
S1131260FA018183E881F98183E08583E881F9814A
|
||||
S11312708FEC8683E881F9811782E881F981848182
|
||||
S113128088608483FFEF23EC89E0F15020408040A4
|
||||
S1131290E1F700C00000E881F9818AEA808344E133
|
||||
S11312A06EE0CE010E94C008CE010E941909DF91B0
|
||||
S11312B0CF910895FC01108211828FEF9FEF8283FA
|
||||
S11312C0938381E090E08483958308950895CF9378
|
||||
S11312D0DF93EC0128813981232B09F497C0623014
|
||||
S11312E0710508F093C02A813B812617370709F45A
|
||||
S11312F08DC06A837B836115710529F420E1E0E6E2
|
||||
S1131300F6E0258307C06130710521F420E1E0E6B1
|
||||
S1131310F6E02683FC0124813581232B11F520E19D
|
||||
S113132037E2E0E0F6E0A0E6B6E050E2408544FFB4
|
||||
S1131330FDCF15965C931597CFE8D1E02197F1F78F
|
||||
S113134000C0000016965C931697CFE9DFE0219762
|
||||
S1131350F1F700C00000215031092115310531F7A2
|
||||
S113136003C0FC01148215826115710531F548EA48
|
||||
S113137052ED62E070E0E0E0F6E0A0E6B6E030E2D4
|
||||
S1131380208524FFFDCF15963C93159725ED2A95CE
|
||||
S1131390F1F7000016963C931697CFE3D1E021971E
|
||||
S11313A0F1F700C00000415051096109710941156C
|
||||
S11313B051056105710521F726C06130710519F5E4
|
||||
S11313C0E0E2F6E0208523FD1EC0E0E0F6E0A0E6C2
|
||||
S11313D0B6E050E260E276E0408544FFFDCF15962A
|
||||
S11313E05C931597D5EDDA95F1F7000016965C93AA
|
||||
S11313F01697CFE3D1E02197F1F700C00000EB018D
|
||||
S1131400488543FFE9CFFC0110821182DF91CF911F
|
||||
S1131410089521E030E0FC01208331830895FC012C
|
||||
S11314206083718342831486138616861586089515
|
||||
S1131430FC012385948581E0291301C080E008958F
|
||||
S1131440FC018485DF01A80FB11D13968C9194854E
|
||||
S11314509F5F937094870895FC0183858F5F8370E9
|
||||
S11314609485A081B1812C91891749F09385DF017E
|
||||
S1131470A90FB11D13962C93838781E0089580E012
|
||||
S11314800895FC0186859585981307C00190F08125
|
||||
S1131490E02D83818C7F838308958685DF01A80FE7
|
||||
S11314A0B11D17968C91A081B1818C9386858F5F35
|
||||
S11314B08370868708955058BB27AA270ED04DC144
|
||||
S11314C03ED130F043D120F031F49F3F11F41EF4AB
|
||||
S11314D033C10EF4E095E7FB29C1E92F4FD180F326
|
||||
S11314E0BA17620773078407950718F071F49EF51D
|
||||
S11314F067C10EF4E0950B2EBA2FA02D0B01B90194
|
||||
S113150090010C01CA01A0011124FF27591B99F075
|
||||
S1131510593F50F4503E68F11A16F040A22F232F81
|
||||
S1131520342F4427585FF3CF469537952795A795D1
|
||||
S1131530F0405395C9F77EF41F16BA0B620B730B78
|
||||
S1131540840BBAF09150A1F0FF0FBB1F661F771FE9
|
||||
S1131550881FC2F70EC0BA0F621F731F841F48F49E
|
||||
S1131560879577956795B795F7959E3F08F0B3CF24
|
||||
S11315709395880F08F09927EE0F9795879508950E
|
||||
S11315800CD0EBC0E3D040F0DAD030F021F45F3F70
|
||||
S113159019F0CCC0511115C1CFC0F0D098F39923E4
|
||||
S11315A0C9F35523B1F3951B550BBB27AA27621723
|
||||
S11315B07307840738F09F5F5F4F220F331F441F68
|
||||
S11315C0AA1FA9F333D00E2E3AF0E0E830D09150A0
|
||||
S11315D05040E695001CCAF729D0FE2F27D0660F8D
|
||||
S11315E0771F881FBB1F261737074807AB07B0E8CC
|
||||
S11315F009F0BB0B802DBF01FF2793585F4F2AF0E2
|
||||
S11316009E3F510568F092C0DCC05F3FECF3983E0A
|
||||
S1131610DCF3869577956795B795F7959F5FC9F73E
|
||||
S1131620880F911D9695879597F90895E1E0660FC7
|
||||
S1131630771F881FBB1F621773078407BA0720F040
|
||||
S1131640621B730B840BBA0BEE1F88F7E0950895A9
|
||||
S113165004D06894B111B5C0089598D088F09F570C
|
||||
S113166090F0B92F9927B751A0F0D1F0660F771FEA
|
||||
S1131670881F991F1AF0BA95C9F712C0B13081F0CA
|
||||
S11316809FD0B1E008959CC0672F782F8827B85F5A
|
||||
S113169039F0B93FCCF3869577956795B395D9F72B
|
||||
S11316A03EF490958095709561957F4F8F4F9F4F35
|
||||
S11316B00895E89409C097FB3EF490958095709541
|
||||
S11316C061957F4F8F4F9F4F9923A9F0F92F96E98A
|
||||
S11316D0BB279395F695879577956795B795F111FF
|
||||
S11316E0F8CFFAF4BB0F11F460FF1BC06F5F7F4F9C
|
||||
S11316F08F4F9F4F16C0882311F096E911C07723AE
|
||||
S113170021F09EE8872F762F05C0662371F096E8B6
|
||||
S1131710862F70E060E02AF09A95660F771F881F85
|
||||
S1131720DAF7880F9695879597F9089597F99F6743
|
||||
S113173080E870E060E008959FEF80EC0895002455
|
||||
S11317400A941616170618060906089500240A9422
|
||||
S113175012161306140605060895092E0394000CA8
|
||||
S113176011F4882352F0BB0F40F4BF2B11F460FF37
|
||||
S113177004C06F5F7F4F8F4F9F4F089557FD905860
|
||||
S1131780440F551F59F05F3F71F04795880F97FB41
|
||||
S1131790991F61F09F3F79F08795089512161306FB
|
||||
S11317A01406551FF2CF4695F1DF08C0161617062A
|
||||
S11317B01806991FF1CF869571056105089408955F
|
||||
S11317C0E894BB2766277727CB0197F9089566D05D
|
||||
S11317D008F48FEF08950BD0C0CFB1DF28F0B6DF47
|
||||
S11317E018F0952309F0A2CFA7CF1124EACFC6DFC2
|
||||
S11317F0A0F3959FD1F3950F50E0551F629FF00120
|
||||
S1131800729FBB27F00DB11D639FAA27F00DB11D78
|
||||
S1131810AA1F649F6627B00DA11D661F829F222701
|
||||
S1131820B00DA11D621F739FB00DA11D621F839F88
|
||||
S1131830A00D611D221F749F3327A00D611D231F5E
|
||||
S1131840849F600D211D822F762F6A2F11249F57AC
|
||||
S113185050408AF0E1F088234AF0EE0FFF1FBB1FCF
|
||||
S1131860661F771F881F91505040A9F79E3F51056E
|
||||
S113187070F05CCFA6CF5F3FECF3983EDCF3869527
|
||||
S113188077956795B795F795E7959F5FC1F7FE2B19
|
||||
S1131890880F911D9695879597F90895990F0008DB
|
||||
S11318A0550FAA0BE0E8FEEF16161706E807F9072E
|
||||
S11318B0C0F012161306E407F50798F0621B730BC9
|
||||
S11318C0840B950B39F40A2661F0232B242B252B4A
|
||||
S11318D021F408950A2609F4A140A6958FEF811DED
|
||||
S11318E0811D089597FB072E16F4009407D077FD09
|
||||
S11318F009D00E94860C07FC05D03EF49095819592
|
||||
S11319009F4F0895709561957F4F0895AA1BBB1B47
|
||||
S113191051E107C0AA1FBB1FA617B70710F0A61BEB
|
||||
S1131920B70B881F991F5A95A9F780959095BC010C
|
||||
S1131930CD010895EE0FFF1F0590F491E02D099459
|
||||
S113194011E0CEE6D1E004C0FE010E949C0C229678
|
||||
S10D1950C037D107C9F7F894FFCFA0
|
||||
S113195A49443A2041726D436F6E74726F6C0D0A7A
|
||||
S105196A000077
|
||||
S9030000FC
|
||||
@@ -0,0 +1,181 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
SHELL := cmd.exe
|
||||
RM := rm -rf
|
||||
|
||||
USER_OBJS :=
|
||||
|
||||
LIBS :=
|
||||
PROJ :=
|
||||
|
||||
O_SRCS :=
|
||||
C_SRCS :=
|
||||
S_SRCS :=
|
||||
S_UPPER_SRCS :=
|
||||
OBJ_SRCS :=
|
||||
ASM_SRCS :=
|
||||
PREPROCESSING_SRCS :=
|
||||
OBJS :=
|
||||
OBJS_AS_ARGS :=
|
||||
C_DEPS :=
|
||||
C_DEPS_AS_ARGS :=
|
||||
EXECUTABLES :=
|
||||
OUTPUT_FILE_PATH :=
|
||||
OUTPUT_FILE_PATH_AS_ARGS :=
|
||||
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
|
||||
QUOTE := "
|
||||
ADDITIONAL_DEPENDENCIES:=
|
||||
OUTPUT_FILE_DEP:=
|
||||
LIB_DEP:=
|
||||
|
||||
# Every subdirectory with source files must be described here
|
||||
SUBDIRS :=
|
||||
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
C_SRCS += \
|
||||
../adc.cpp \
|
||||
../ArmControl.cpp \
|
||||
../Misc.cpp \
|
||||
../motorInfo.cpp \
|
||||
../rotateStepper.cpp \
|
||||
../Sabertooth.cpp \
|
||||
../stepperInfo.cpp \
|
||||
../usart_driver.c
|
||||
|
||||
|
||||
PREPROCESSING_SRCS +=
|
||||
|
||||
|
||||
ASM_SRCS +=
|
||||
|
||||
|
||||
OBJS += \
|
||||
adc.o \
|
||||
ArmControl.o \
|
||||
Misc.o \
|
||||
motorInfo.o \
|
||||
rotateStepper.o \
|
||||
Sabertooth.o \
|
||||
stepperInfo.o \
|
||||
usart_driver.o
|
||||
|
||||
OBJS_AS_ARGS += \
|
||||
adc.o \
|
||||
ArmControl.o \
|
||||
Misc.o \
|
||||
motorInfo.o \
|
||||
rotateStepper.o \
|
||||
Sabertooth.o \
|
||||
stepperInfo.o \
|
||||
usart_driver.o
|
||||
|
||||
C_DEPS += \
|
||||
adc.d \
|
||||
ArmControl.d \
|
||||
Misc.d \
|
||||
motorInfo.d \
|
||||
rotateStepper.d \
|
||||
Sabertooth.d \
|
||||
stepperInfo.d \
|
||||
usart_driver.d
|
||||
|
||||
C_DEPS_AS_ARGS += \
|
||||
adc.d \
|
||||
ArmControl.d \
|
||||
Misc.d \
|
||||
motorInfo.d \
|
||||
rotateStepper.d \
|
||||
Sabertooth.d \
|
||||
stepperInfo.d \
|
||||
usart_driver.d
|
||||
|
||||
OUTPUT_FILE_PATH +=ArmControl.elf
|
||||
|
||||
OUTPUT_FILE_PATH_AS_ARGS +=ArmControl.elf
|
||||
|
||||
ADDITIONAL_DEPENDENCIES:=
|
||||
|
||||
OUTPUT_FILE_DEP:= ./makedep.mk
|
||||
|
||||
LIB_DEP+=
|
||||
|
||||
# AVR32/GNU C Compiler
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
./%.o: .././%.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR8/GNU C Compiler : 4.8.1
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atxmega32d4 -c -std=gnu99 -Wl,-7u,vfprintf -lprintf_flt -lm -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
./%.o: .././%.cpp
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR8/GNU C Compiler : 4.8.1
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atxmega32d4 -c -Wl,-u,vfprintf -lprintf_flt -lm -v -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
|
||||
|
||||
# AVR32/GNU Preprocessing Assembler
|
||||
|
||||
|
||||
|
||||
# AVR32/GNU Assembler
|
||||
|
||||
|
||||
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifneq ($(strip $(C_DEPS)),)
|
||||
-include $(C_DEPS)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
|
||||
# All Target
|
||||
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
|
||||
|
||||
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP)
|
||||
@echo Building target: $@
|
||||
@echo Invoking: AVR8/GNU Linker : 4.8.1
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="ArmControl.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atxmega32d4
|
||||
@echo Finished building target: $@
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "ArmControl.elf" "ArmControl.hex"
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "ArmControl.elf" "ArmControl.eep" || exit 0
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "ArmControl.elf" > "ArmControl.lss"
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "ArmControl.elf" "ArmControl.srec"
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-size.exe" "ArmControl.elf"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Other Targets
|
||||
clean:
|
||||
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
|
||||
-$(RM) $(C_DEPS_AS_ARGS)
|
||||
rm -rf "ArmControl.elf" "ArmControl.a" "ArmControl.hex" "ArmControl.lss" "ArmControl.eep" "ArmControl.map" "ArmControl.srec" "ArmControl.usersignatures"
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
Misc.d Misc.o: .././Misc.cpp .././Misc.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
.././XMegaMacros.h
|
||||
|
||||
.././Misc.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
.././XMegaMacros.h:
|
||||
Binary file not shown.
@@ -0,0 +1,68 @@
|
||||
Sabertooth.d Sabertooth.o: .././Sabertooth.cpp .././Sabertooth.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h \
|
||||
.././usart_driver.h .././avr_compiler.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h
|
||||
|
||||
.././Sabertooth.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
.././usart_driver.h:
|
||||
|
||||
.././avr_compiler.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
Binary file not shown.
@@ -0,0 +1,71 @@
|
||||
adc.d adc.o: .././adc.cpp .././adc.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\ctype.h \
|
||||
.././usart_driver.h .././avr_compiler.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h
|
||||
|
||||
.././adc.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\ctype.h:
|
||||
|
||||
.././usart_driver.h:
|
||||
|
||||
.././avr_compiler.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit or delete the file
|
||||
################################################################################
|
||||
|
||||
adc.cpp
|
||||
|
||||
ArmControl.cpp
|
||||
|
||||
Misc.cpp
|
||||
|
||||
motorInfo.cpp
|
||||
|
||||
rotateStepper.cpp
|
||||
|
||||
Sabertooth.cpp
|
||||
|
||||
stepperInfo.cpp
|
||||
|
||||
usart_driver.c
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
motorInfo.d motorInfo.o: .././motorInfo.cpp .././motorInfo.h
|
||||
|
||||
.././motorInfo.h:
|
||||
Binary file not shown.
@@ -0,0 +1,80 @@
|
||||
rotateStepper.d rotateStepper.o: .././rotateStepper.cpp \
|
||||
.././rotateStepper.h .././XMegaMacros.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
|
||||
.././stepperInfo.h .././avr_compiler.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
|
||||
.././usart_driver.h
|
||||
|
||||
.././rotateStepper.h:
|
||||
|
||||
.././XMegaMacros.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||
|
||||
.././stepperInfo.h:
|
||||
|
||||
.././avr_compiler.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
|
||||
.././usart_driver.h:
|
||||
Binary file not shown.
@@ -0,0 +1,77 @@
|
||||
stepperInfo.d stepperInfo.o: .././stepperInfo.cpp \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
|
||||
.././stepperInfo.h .././XMegaMacros.h .././avr_compiler.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
|
||||
.././usart_driver.h
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||
|
||||
.././stepperInfo.h:
|
||||
|
||||
.././XMegaMacros.h:
|
||||
|
||||
.././avr_compiler.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
|
||||
.././usart_driver.h:
|
||||
Binary file not shown.
@@ -0,0 +1,66 @@
|
||||
usart_driver.d usart_driver.o: .././usart_driver.c .././usart_driver.h \
|
||||
.././avr_compiler.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h
|
||||
|
||||
.././usart_driver.h:
|
||||
|
||||
.././avr_compiler.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
|
||||
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* CPPFile1.cpp
|
||||
*
|
||||
* Created: 5/27/2014 10:19:21 PM
|
||||
* Author: Corwin
|
||||
*/
|
||||
#include "Misc.h"
|
||||
#include <avr/io.h>
|
||||
#include "XMegaMacros.h"
|
||||
|
||||
void DockArm(unsigned char dockState){
|
||||
if(dockState == DOCK_ARM){
|
||||
ERROR_SET();
|
||||
}else if(dockState == UNDOCK_ARM){
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Misc.h
|
||||
*
|
||||
* Created: 5/27/2014 10:19:12 PM
|
||||
* Author: Corwin
|
||||
*/
|
||||
|
||||
#ifndef MISC_H_
|
||||
#define MISC_H_
|
||||
|
||||
#define DOCK_ARM 1
|
||||
#define UNDOCK_ARM 0
|
||||
|
||||
#include <avr/io.h>
|
||||
|
||||
void DockArm(unsigned char dockState);
|
||||
|
||||
|
||||
#endif /* MISC_H_ */
|
||||
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Sabertooth.cpp
|
||||
*
|
||||
* Created: 4/30/2014 1:08:16 PM
|
||||
* Author: Corwin
|
||||
*/
|
||||
|
||||
|
||||
#include "Sabertooth.h"
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
|
||||
|
||||
Sabertooth::Sabertooth(USART_t *USART_SaberUsart, PORT_t * SaberPORT)
|
||||
{
|
||||
Sabertooth_USART = USART_SaberUsart; //Sets the private variable to the USART being used
|
||||
Sabertooth_PORT = SaberPORT; //Sets the private variable for the PORT the USART is on
|
||||
|
||||
Sabertooth_PORT->DIRSET = PIN3_bm; //Sets the TX pin for the USART to an output
|
||||
USART_Format_Set(Sabertooth_USART, USART_CHSIZE_8BIT_gc, USART_PMODE_DISABLED_gc, false); //Sets the Sabertooth USART to run in 8 bit data, no parity, and 1 stop bit,
|
||||
USART_Baudrate_Set(Sabertooth_USART, 207 , 0); //Sets the Sabertooth baud rate to 9600 when running at 32Mhz system clock
|
||||
USART_Tx_Enable(Sabertooth_USART); //Enable the USART transmit capabilities
|
||||
_delay_ms(100); //Delay to let things settle
|
||||
|
||||
USART_PutChar(Sabertooth_USART, AUTOBAUD_BYTE); //Send the autobaud byte to get the sabertooth communicating
|
||||
SendDriveCmd(14, 20); //Sets the communication watchdog on the sabertooth to (x*100ms) It's currently set to two seconds.
|
||||
StopAll(); //Everything is now initialized, stop all motor movement to account for random noise or failed startups
|
||||
}
|
||||
|
||||
void Sabertooth::DriveTest(){
|
||||
|
||||
int i;
|
||||
for(i = 0; i < 64 ; i++){
|
||||
SendDriveCmd(LEFT_FORWARD, i);
|
||||
SendDriveCmd(RIGHT_FORWARD, i);
|
||||
_delay_ms(10);
|
||||
}
|
||||
for( ; i > 0 ; i--){
|
||||
SendDriveCmd(LEFT_FORWARD, i);
|
||||
SendDriveCmd(RIGHT_FORWARD, i);
|
||||
_delay_ms(10);
|
||||
}
|
||||
|
||||
for(i = 0; i < 64 ; i++){
|
||||
SendDriveCmd(LEFT_BACK, i);
|
||||
SendDriveCmd(RIGHT_BACK, i);
|
||||
_delay_ms(10);
|
||||
}
|
||||
for( ; i > 0 ; i--){
|
||||
SendDriveCmd(LEFT_BACK, i);
|
||||
SendDriveCmd(RIGHT_BACK, i);
|
||||
_delay_ms(10);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//Left = lower act
|
||||
//Right = upper act
|
||||
void Sabertooth::ParsePacket(unsigned char left, unsigned char right){
|
||||
unsigned char command_left = LEFT_FORWARD;
|
||||
unsigned char value_left = 0;
|
||||
unsigned char command_right = RIGHT_FORWARD;
|
||||
unsigned char value_right = 0;
|
||||
|
||||
if(left == 127){
|
||||
command_left = LEFT_FORWARD;
|
||||
value_left = 0;
|
||||
}else if(left < 127){
|
||||
command_left = LEFT_BACK;
|
||||
value_left = (127-left);
|
||||
}else if(left > 127){
|
||||
command_left = LEFT_FORWARD;
|
||||
value_left = (left-127);
|
||||
}
|
||||
|
||||
if(right == 127){
|
||||
command_right = RIGHT_FORWARD;
|
||||
value_right = 0;
|
||||
}else if(right < 127){
|
||||
command_right = RIGHT_BACK;
|
||||
value_right = (127-right);
|
||||
}else if(right > 127){
|
||||
command_right = RIGHT_FORWARD;
|
||||
value_right = (right-127);
|
||||
}
|
||||
|
||||
SendDriveCmd(command_left, value_left);
|
||||
SendDriveCmd(command_right, value_right);
|
||||
}
|
||||
|
||||
void Sabertooth::StopAll(){
|
||||
SendDriveCmd(LEFT_FORWARD, 0);
|
||||
SendDriveCmd(RIGHT_FORWARD, 0);
|
||||
}
|
||||
|
||||
unsigned char Sabertooth::SaberChecksum(unsigned char command, unsigned char value){
|
||||
return ((SABERTOOTHADDRESS+command+value) & 127);
|
||||
}
|
||||
|
||||
void Sabertooth::SendDriveCmd(char command, char value){
|
||||
////////////////////////////////Testing.....
|
||||
//while(!USART_IsTXDataRegisterEmpty(Sabertooth_USART)); //Necessary to make sure we don't overwrite data in the buffer
|
||||
//USART_PutChar(Sabertooth_USART, AUTOBAUD_BYTE); //Send the autobaud byte to get the sabertooth communicating
|
||||
////////////////////////////////
|
||||
while(!USART_IsTXDataRegisterEmpty(Sabertooth_USART)); //Necessary to make sure we don't overwrite data in the buffer
|
||||
USART_PutChar(Sabertooth_USART, SABERTOOTHADDRESS); //Sends the address to the sabertooth
|
||||
while(!USART_IsTXDataRegisterEmpty(Sabertooth_USART));
|
||||
USART_PutChar(Sabertooth_USART, command); //Sends the command to the sabertooth
|
||||
while(!USART_IsTXDataRegisterEmpty(Sabertooth_USART));
|
||||
USART_PutChar(Sabertooth_USART, value); //Sends the value or speed to the sabertooth
|
||||
while(!USART_IsTXDataRegisterEmpty(Sabertooth_USART));
|
||||
USART_PutChar(Sabertooth_USART, SaberChecksum(command, value)); //Send the checksum of all these values to the sabertooth
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Sabertooth.h
|
||||
*
|
||||
* Created: 4/30/2014 1:08:16 PM
|
||||
* Author: Corwin
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __SABERTOOTH_H__
|
||||
#define __SABERTOOTH_H__
|
||||
|
||||
#define F_CPU 32000000UL
|
||||
#define SABERTOOTHADDRESS 128
|
||||
#define AUTOBAUD_BYTE 170
|
||||
|
||||
#define LEFT_FORWARD 0
|
||||
#define LEFT_BACK 1
|
||||
#define RIGHT_FORWARD 4
|
||||
#define RIGHT_BACK 5
|
||||
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
|
||||
extern "C"{
|
||||
#include "usart_driver.h"
|
||||
#include "avr_compiler.h"
|
||||
};
|
||||
|
||||
class Sabertooth
|
||||
{
|
||||
//variables
|
||||
public:
|
||||
protected:
|
||||
private:
|
||||
|
||||
//functions
|
||||
public:
|
||||
Sabertooth(USART_t *USART_SaberUsart, PORT_t * SaberPORT);
|
||||
void DriveTest();
|
||||
void StopAll();
|
||||
unsigned char SaberChecksum(unsigned char command, unsigned char value);
|
||||
void ParsePacket(unsigned char left, unsigned char right);
|
||||
protected:
|
||||
private:
|
||||
void SendDriveCmd(char command, char value);
|
||||
Sabertooth( const Sabertooth &c );
|
||||
Sabertooth& operator=( const Sabertooth &c );
|
||||
USART_t *Sabertooth_USART;
|
||||
PORT_t *Sabertooth_PORT;
|
||||
|
||||
}; //Sabertooth
|
||||
|
||||
#endif //__SABERTOOTH_H__
|
||||
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* XMegaMacros.h
|
||||
*
|
||||
* Created: 4/25/2014 5:51:17 AM
|
||||
* Author: Nick
|
||||
*/
|
||||
|
||||
|
||||
#ifndef XMEGAMACROS_H_
|
||||
#define XMEGAMACROS_H_
|
||||
|
||||
//Custom Defined Macros
|
||||
#define STATUS1_SET(void) (PORTC.OUTSET = PIN6_bm)
|
||||
#define STATUS1_CLR(void) (PORTC.OUTCLR = PIN6_bm)
|
||||
|
||||
#define STATUS2_SET(void) (PORTC.OUTSET = PIN5_bm)
|
||||
#define STATUS2_CLR(void) (PORTC.OUTCLR = PIN5_bm)
|
||||
|
||||
#define ERROR_SET(void) (PORTC.OUTSET = PIN7_bm)
|
||||
#define ERROR_CLR(void) (PORTC.OUTCLR = PIN7_bm)
|
||||
|
||||
//Motor 1 enable/disables
|
||||
#define MD1_ENABLE(void) (PORTD.OUTCLR = PIN6_bm)
|
||||
#define MD1_DISABLE(void) (PORTD.OUTSET = PIN6_bm)
|
||||
|
||||
#define MD2_ENABLE(void) (PORTD.OUTCLR = PIN2_bm)
|
||||
#define MD2_DISABLE(void) (PORTD.OUTSET = PIN2_bm)
|
||||
|
||||
//Motor 1 M enable/disables
|
||||
#define MD1_M0_SET(void) (PORTA.OUTSET = PIN5_bm)
|
||||
#define MD1_M1_SET(void) (PORTA.OUTSET = PIN6_bm)
|
||||
#define MD1_M2_SET(void) (PORTA.OUTSET = PIN7_bm)
|
||||
|
||||
#define MD1_M0_CLR(void) (PORTA.OUTCLR = PIN5_bm)
|
||||
#define MD1_M1_CLR(void) (PORTA.OUTCLR = PIN6_bm)
|
||||
#define MD1_M2_CLR(void) (PORTA.OUTCLR = PIN7_bm)
|
||||
|
||||
#define MD2_M0_SET(void) (PORTB.OUTSET = PIN0_bm)
|
||||
#define MD2_M1_SET(void) (PORTB.OUTSET = PIN1_bm)
|
||||
#define MD2_M2_SET(void) (PORTB.OUTSET = PIN2_bm)
|
||||
|
||||
#define MD2_M0_CLR(void) (PORTB.OUTCLR = PIN0_bm)
|
||||
#define MD2_M1_CLR(void) (PORTB.OUTCLR = PIN1_bm)
|
||||
#define MD2_M2_CLR(void) (PORTB.OUTCLR = PIN2_bm)
|
||||
|
||||
//Set direction macros
|
||||
#define MD1_DIR_SET(void) (PORTD.OUTSET = PIN4_bm)
|
||||
#define MD1_DIR_CLR(void) (PORTD.OUTCLR = PIN4_bm)
|
||||
|
||||
#define MD2_DIR_SET(void) (PORTD.OUTSET = PIN0_bm)
|
||||
#define MD2_DIR_CLR(void) (PORTD.OUTCLR = PIN0_bm)
|
||||
|
||||
//Set step macros
|
||||
#define MD1_STEP_SET(void) (PORTD.OUTSET = PIN5_bm)
|
||||
#define MD1_STEP_CLR(void) (PORTD.OUTCLR = PIN5_bm)
|
||||
|
||||
#define MD2_STEP_SET(void) (PORTD.OUTSET = PIN1_bm)
|
||||
#define MD2_STEP_CLR(void) (PORTD.OUTCLR = PIN1_bm)
|
||||
|
||||
//Limit switch macros
|
||||
#define CHECK_GRIP_CLOSE(void) (!(PORTA.IN & PIN3_bm)) //Returns true if grip close
|
||||
#define CHECK_GRIP_LIMIT(void) (PORTB.IN & PIN3_bm) //Returns true if a limit switch has been pressed
|
||||
#define CHECK_CAL(void) (PORTA.IN & PIN2_bm) //Returns true if cal limit switch has been pressed
|
||||
|
||||
#define CHECK_ISROVING(void) (PORTA.IN & PIN4_bm) //Returns true if rover's status is 'roving
|
||||
//Implied to be false during e-stop condition
|
||||
|
||||
|
||||
//#define BASE_ROT_LIMIT
|
||||
|
||||
|
||||
|
||||
#endif /* XMEGAMACROS_H_ */
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* adc.cpp
|
||||
*
|
||||
* Created: 5/6/2014 6:39:20 PM
|
||||
* Author: Nick
|
||||
*/
|
||||
|
||||
#include "adc.h"
|
||||
|
||||
|
||||
uint8_t ReadSignatureByte(uint16_t Address)
|
||||
{
|
||||
NVM_CMD = NVM_CMD_READ_CALIB_ROW_gc;
|
||||
uint8_t Result;
|
||||
__asm__ ("lpm %0, Z\n" : "=r" (Result) : "z" (Address));
|
||||
NVM_CMD = NVM_CMD_NO_OPERATION_gc;
|
||||
return Result;
|
||||
}
|
||||
|
||||
uint16_t ReadADC(uint8_t Channel, uint8_t ADCMode) // Mode = 1 for single ended, 0 for internal
|
||||
{
|
||||
if ((ADCA.CTRLA & ADC_ENABLE_bm) == 0)
|
||||
{
|
||||
ADCA.CTRLA = ADC_ENABLE_bm ; // Enable the ADC
|
||||
ADCA.CTRLB = ADC_RESOLUTION_8BIT_gc; // Signed Mode
|
||||
ADCA.REFCTRL = ADC_REFSEL_VCC_gc; // Internal 1v ref
|
||||
ADCA.EVCTRL = 0; // no events
|
||||
ADCA.PRESCALER = ADC_PRESCALER_DIV256_gc ;
|
||||
ADCA.CALL = ReadSignatureByte(0x20) ; //ADC Calibration Byte 0
|
||||
ADCA.CALH = ReadSignatureByte(0x21) ; //ADC Calibration Byte 1
|
||||
_delay_us(400); // Wait at least 25 clocks
|
||||
}
|
||||
ADCA.CH0.CTRL = ADC_CH_GAIN_1X_gc | ADCMode ; // Gain = 1, Single Ended
|
||||
ADCA.CH0.MUXCTRL = (Channel<<3);
|
||||
ADCA.CH0.INTCTRL = 0 ; // No interrupt
|
||||
for(uint8_t Waste = 0; Waste<2; Waste++)
|
||||
{
|
||||
ADCA.CH0.CTRL |= ADC_CH_START_bm; // Start conversion
|
||||
while (ADCA.INTFLAGS==0) ; // Wait for complete
|
||||
ADCA.INTFLAGS = ADCA.INTFLAGS ;
|
||||
}
|
||||
return ADCA.CH0RES ;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* adc.h
|
||||
*
|
||||
* Contains headers for ADC
|
||||
*
|
||||
* Created: 5/6/2014 6:36:17 PM
|
||||
* Author: Nick
|
||||
*/
|
||||
|
||||
|
||||
#ifndef ADC_H_
|
||||
#define ADC_H_
|
||||
|
||||
#define F_CPU 32000000UL
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include <ctype.h>
|
||||
|
||||
extern "C"{
|
||||
#include "usart_driver.h"
|
||||
#include "avr_compiler.h"
|
||||
};
|
||||
|
||||
uint8_t ReadSignatureByte(uint16_t Address);
|
||||
uint16_t ReadADC(uint8_t Channel, uint8_t ADCMode); // Mode = 1 for single ended, 0 for internal
|
||||
|
||||
#endif /* ADC_H_ */
|
||||
@@ -0,0 +1,154 @@
|
||||
/* This file has been prepared for Doxygen automatic documentation generation.*/
|
||||
/*! \file *********************************************************************
|
||||
*
|
||||
* \brief This file implements some macros that makes the IAR C-compiler and
|
||||
* avr-gcc work with the same code base for the AVR architecture.
|
||||
*
|
||||
* \par Documentation
|
||||
* For comprehensive code documentation, supported compilers, compiler
|
||||
* settings and supported devices see readme.html
|
||||
*
|
||||
* \author
|
||||
* Atmel Corporation: http://www.atmel.com \n
|
||||
* Support email: avr@atmel.com
|
||||
*
|
||||
* $Revision: 1694 $
|
||||
* $Date: 2008-07-29 14:21:58 +0200 (ti, 29 jul 2008) $ \n
|
||||
*
|
||||
* Copyright (c) 2008, Atmel Corporation All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of ATMEL may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
|
||||
* SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef COMPILER_AVR_H
|
||||
#define COMPILER_AVR_H
|
||||
|
||||
#ifndef F_CPU
|
||||
/*! \brief Define default CPU frequency, if this is not already defined. */
|
||||
#define F_CPU 2000000UL
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/*! \brief This macro will protect the following code from interrupts. */
|
||||
#define AVR_ENTER_CRITICAL_REGION( ) uint8_t volatile saved_sreg = SREG; \
|
||||
cli();
|
||||
|
||||
/*! \brief This macro must always be used in conjunction with AVR_ENTER_CRITICAL_REGION
|
||||
* so the interrupts are enabled again.
|
||||
*/
|
||||
#define AVR_LEAVE_CRITICAL_REGION( ) SREG = saved_sreg;
|
||||
|
||||
#if defined( __ICCAVR__ )
|
||||
|
||||
#include <inavr.h>
|
||||
#include <ioavr.h>
|
||||
#include <intrinsics.h>
|
||||
#include <pgmspace.h>
|
||||
|
||||
#ifndef __HAS_ELPM__
|
||||
#define _MEMATTR __flash
|
||||
#else /* __HAS_ELPM__ */
|
||||
#define _MEMATTR __farflash
|
||||
#endif /* __HAS_ELPM__ */
|
||||
|
||||
/*! \brief Perform a delay of \c us microseconds.
|
||||
*
|
||||
* The macro F_CPU is supposed to be defined to a constant defining the CPU
|
||||
* clock frequency (in Hertz).
|
||||
*
|
||||
* The maximal possible delay is 262.14 ms / F_CPU in MHz.
|
||||
*
|
||||
* \note For the IAR compiler, currently F_CPU must be a
|
||||
* multiple of 1000000UL (1 MHz).
|
||||
*/
|
||||
#define delay_us( us ) ( __delay_cycles( ( F_CPU / 1000000UL ) * ( us ) ) )
|
||||
|
||||
/*! \brief Preprocessor magic.
|
||||
*
|
||||
* Some preprocessor magic to allow for a header file abstraction of
|
||||
* interrupt service routine declarations for the IAR compiler. This
|
||||
* requires the use of the C99 _Pragma() directive (rather than the
|
||||
* old #pragma one that could not be used as a macro replacement), as
|
||||
* well as two different levels of preprocessor concetanations in
|
||||
* order to do both, assign the correct interrupt vector name, as well
|
||||
* as construct a unique function name for the ISR.
|
||||
*
|
||||
* \note Do *NOT* try to reorder the macros below, as this will only
|
||||
* work in the given order.
|
||||
*/
|
||||
#define PRAGMA(x) _Pragma( #x )
|
||||
#define ISR(vec) PRAGMA( vector=vec ) __interrupt void handler_##vec(void)
|
||||
#define sei( ) (__enable_interrupt( ))
|
||||
#define cli( ) (__disable_interrupt( ))
|
||||
|
||||
/*! \brief Define the no operation macro. */
|
||||
#define nop( ) (__no_operation())
|
||||
|
||||
/*! \brief Define the watchdog reset macro. */
|
||||
#define watchdog_reset( ) (__watchdog_reset( ))
|
||||
|
||||
|
||||
#define INLINE PRAGMA( inline=forced ) static
|
||||
|
||||
#define FLASH_DECLARE(x) _MEMATTR x
|
||||
#define FLASH_STRING(x) ((_MEMATTR const char *)(x))
|
||||
#define FLASH_STRING_T char const _MEMATTR *
|
||||
#define FLASH_BYTE_ARRAY_T uint8_t const _MEMATTR *
|
||||
#define PGM_READ_BYTE(x) *(x)
|
||||
#define PGM_READ_WORD(x) *(x)
|
||||
|
||||
#define SHORTENUM /**/
|
||||
|
||||
#elif defined( __GNUC__ )
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <avr/pgmspace.h>
|
||||
#include <util/delay.h>
|
||||
|
||||
/*! \brief Define the delay_us macro for GCC. */
|
||||
#define delay_us( us ) (_delay_us( us ))
|
||||
|
||||
#define INLINE static inline
|
||||
|
||||
/*! \brief Define the no operation macro. */
|
||||
#define nop() do { __asm__ __volatile__ ("nop"); } while (0)
|
||||
|
||||
#define MAIN_TASK_PROLOGUE int
|
||||
|
||||
|
||||
#define MAIN_TASK_EPILOGUE() return -1;
|
||||
|
||||
#define SHORTENUM __attribute__ ((packed))
|
||||
|
||||
#else
|
||||
#error Compiler not supported.
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* motorInfo.cpp
|
||||
*
|
||||
* Created: 5/7/2014 3:17:28 AM
|
||||
* Author: Nick
|
||||
*/
|
||||
|
||||
//LINEAR ACTUATOR REFERENCE DIRECTION
|
||||
//- retract outer, retract inner
|
||||
|
||||
|
||||
#include "motorInfo.h"
|
||||
|
||||
// default constructor
|
||||
motorInfo::motorInfo() {
|
||||
acceptableCount = 0;
|
||||
acceptableCountMax = 5;
|
||||
acceptableError = .2; //Needs calibration
|
||||
slowRange = .75;
|
||||
speed = 100;
|
||||
enabled = 0;
|
||||
|
||||
//currentPos = 0;
|
||||
} //motorInfo
|
||||
|
||||
// default destructor
|
||||
motorInfo::~motorInfo() {
|
||||
|
||||
} //~motorInfo
|
||||
|
||||
|
||||
void motorInfo::enable(){
|
||||
enabled = 1;
|
||||
}
|
||||
|
||||
void motorInfo::disable(){
|
||||
enabled = 0;
|
||||
}
|
||||
|
||||
|
||||
void motorInfo::setDesired(float desired){
|
||||
desiredPos = desired; //Mutate desiredPos
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* motorInfo.h
|
||||
*
|
||||
* Created: 5/7/2014 3:17:28 AM
|
||||
* Author: Nick
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __MOTORINFO_H__
|
||||
#define __MOTORINFO_H__
|
||||
|
||||
|
||||
class motorInfo
|
||||
{
|
||||
//variables
|
||||
public:
|
||||
int acceptableCountMax;
|
||||
int acceptableCount;
|
||||
double acceptableError;
|
||||
double slowRange;
|
||||
int speed;
|
||||
int enabled;
|
||||
|
||||
double currentPos; //Current pos in inches
|
||||
volatile double desiredPos; //Desired pos in inches
|
||||
|
||||
protected:
|
||||
private:
|
||||
|
||||
//functions
|
||||
public:
|
||||
motorInfo();
|
||||
~motorInfo();
|
||||
void enable();
|
||||
void disable();
|
||||
void setDesired(float desired);
|
||||
protected:
|
||||
private:
|
||||
motorInfo( const motorInfo &c );
|
||||
motorInfo& operator=( const motorInfo &c );
|
||||
|
||||
}; //motorInfo
|
||||
|
||||
#endif //__MOTORINFO_H__
|
||||
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* rotateStepper.cpp
|
||||
*
|
||||
* Created: 5/7/2014 7:12:28 AM
|
||||
* Author: Nick
|
||||
*/
|
||||
|
||||
#define F_CPU 32000000UL
|
||||
|
||||
#include "rotateStepper.h"
|
||||
#include "XMegaMacros.h"
|
||||
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "stepperInfo.h"
|
||||
|
||||
|
||||
extern "C" {
|
||||
#include "avr_compiler.h"
|
||||
#include "usart_driver.h"
|
||||
};
|
||||
|
||||
// default constructor
|
||||
rotateStepper::rotateStepper() {
|
||||
calSpan = 255; //TODO: Set to actual value
|
||||
multiplier = -1; //Invalid (not set) state
|
||||
|
||||
currentAngle = 0; //It will have its reference based off of the 2nd limit switch,
|
||||
//but the interface function will minus the amount to make 0 forward
|
||||
} //rotateStepper
|
||||
|
||||
// default destructor
|
||||
rotateStepper::~rotateStepper()
|
||||
{
|
||||
} //~rotateStepper
|
||||
|
||||
void rotateStepper::rotateBase(int desiredAngle){
|
||||
//NEED INPUT CHEKCING
|
||||
|
||||
int zeroedAngle = desiredAngle + 36.09;
|
||||
|
||||
moveBase(zeroedAngle - currentAngle);
|
||||
currentAngle = currentAngle + (zeroedAngle - currentAngle);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void rotateStepper::calibrateBase(){
|
||||
bool calInProgress = true;
|
||||
bool calFirstPress = false;
|
||||
|
||||
//bool calSecondPress = false;
|
||||
|
||||
int calButtonState;
|
||||
|
||||
int stepCount = 0;
|
||||
|
||||
MD2_DIR_CLR(); //Set arm to turn counter-clockwise
|
||||
|
||||
while (calInProgress){
|
||||
while(!CHECK_ISROVING());
|
||||
calButtonState = CHECK_CAL();
|
||||
|
||||
if(calButtonState && !calFirstPress){
|
||||
|
||||
calFirstPress = true;
|
||||
MD2_DIR_SET(); //Sets arm to clockwise
|
||||
_delay_ms(1200); //For gracefulness
|
||||
}
|
||||
|
||||
if(calFirstPress == true)
|
||||
++stepCount;
|
||||
|
||||
if(calFirstPress && stepCount > 150 && CHECK_CAL()){
|
||||
calInProgress = false;
|
||||
}
|
||||
|
||||
MD2_STEP_CLR();
|
||||
_delay_us(600);
|
||||
MD2_STEP_SET();
|
||||
_delay_us(600);
|
||||
|
||||
}
|
||||
currentAngle = 0;
|
||||
multiplier = stepCount / calSpan;
|
||||
_delay_ms(1200); //For gracefulness
|
||||
}
|
||||
|
||||
|
||||
//Multiplier is steps per degree
|
||||
|
||||
//Helper function
|
||||
void rotateStepper::moveBase(int degreesToMove){
|
||||
|
||||
if (degreesToMove > 0)
|
||||
MD2_DIR_CLR(); //Counter Clockwise
|
||||
else
|
||||
MD2_DIR_SET(); //Clockwise
|
||||
|
||||
int stepsToMove = abs(degreesToMove) * multiplier;
|
||||
|
||||
for(int i = 0; i < stepsToMove; ++i){
|
||||
while(!CHECK_ISROVING()); //e-stop check
|
||||
|
||||
MD2_STEP_CLR();
|
||||
_delay_us(400);
|
||||
MD2_STEP_SET();
|
||||
_delay_us(500);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* rotateStepper.h
|
||||
*
|
||||
* Created: 5/7/2014 7:12:28 AM
|
||||
* Author: Nick
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __ROTATESTEPPER_H__
|
||||
#define __ROTATESTEPPER_H__
|
||||
|
||||
|
||||
class rotateStepper
|
||||
{
|
||||
//variables
|
||||
public:
|
||||
double multiplier;
|
||||
double calSpan;
|
||||
|
||||
int currentAngle;
|
||||
volatile int desiredPos;
|
||||
protected:
|
||||
private:
|
||||
|
||||
//functions
|
||||
public:
|
||||
rotateStepper();
|
||||
~rotateStepper();
|
||||
|
||||
void rotateBase(int desiredAngle);
|
||||
void calibrateBase();
|
||||
|
||||
void moveBase(int degreesToMove); //Helper function
|
||||
protected:
|
||||
private:
|
||||
|
||||
|
||||
rotateStepper( const rotateStepper &c );
|
||||
rotateStepper& operator=( const rotateStepper &c );
|
||||
|
||||
}; //rotateStepper
|
||||
|
||||
#endif //__ROTATESTEPPER_H__
|
||||
@@ -0,0 +1,107 @@
|
||||
/*
|
||||
* stepperInfo.cpp
|
||||
*
|
||||
* Created: 5/7/2014 6:19:00 AM
|
||||
* Author: Nick
|
||||
*/
|
||||
|
||||
#define F_CPU 32000000UL
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "stepperInfo.h"
|
||||
|
||||
extern "C" {
|
||||
#include "avr_compiler.h"
|
||||
#include "usart_driver.h"
|
||||
|
||||
};
|
||||
|
||||
extern void SendStringPC(char *stufftosend);
|
||||
|
||||
// default constructor
|
||||
stepperInfo::stepperInfo() {
|
||||
enabled = 0;
|
||||
currentState = -1;
|
||||
init = 1; //Init state (ignore first push)
|
||||
} //stepperInfo
|
||||
|
||||
// default destructor
|
||||
stepperInfo::~stepperInfo()
|
||||
{
|
||||
} //~stepperInfo
|
||||
|
||||
|
||||
//Used for the gripping stepper
|
||||
void stepperInfo::processCommand(int cmd){
|
||||
if(!enabled)
|
||||
return; //TODO: MAKE BETTER
|
||||
|
||||
if(cmd != GRIP && cmd != RELEASE)
|
||||
return;
|
||||
|
||||
if(cmd == currentState)
|
||||
return;
|
||||
|
||||
currentState = cmd;
|
||||
|
||||
//char sendBuffer[200];
|
||||
//sprintf(sendBuffer, "Reached process command");
|
||||
//SendStringPC(sendBuffer);
|
||||
|
||||
|
||||
//GET DIRECTION
|
||||
//CLR IS OUT
|
||||
|
||||
//SET is grip
|
||||
//CLR is release
|
||||
if(cmd == GRIP)
|
||||
MD1_DIR_SET();
|
||||
else if (cmd == RELEASE)
|
||||
MD1_DIR_CLR();
|
||||
|
||||
if(!init){
|
||||
for(int i = 0; i < 10000; ++i){
|
||||
|
||||
while(!CHECK_ISROVING()); //e-stop check
|
||||
|
||||
MD1_STEP_SET();
|
||||
_delay_us(50);
|
||||
MD1_STEP_CLR();
|
||||
_delay_us(500);
|
||||
}
|
||||
}
|
||||
else {
|
||||
init = 0;
|
||||
}
|
||||
|
||||
//MOVE UNTIL LIMIT OR GRIP
|
||||
if(cmd == GRIP){
|
||||
for(long i = 0; i < 185000; ++i){
|
||||
|
||||
while(!CHECK_ISROVING()); //e-stop check
|
||||
|
||||
MD1_STEP_SET();
|
||||
_delay_us(20);
|
||||
MD1_STEP_CLR();
|
||||
_delay_us(40);
|
||||
}
|
||||
}else if(cmd == RELEASE){
|
||||
while(!CHECK_GRIP_LIMIT()){
|
||||
while(!CHECK_ISROVING()); //e-stop check
|
||||
MD1_STEP_SET();
|
||||
_delay_us(20);
|
||||
MD1_STEP_CLR();
|
||||
_delay_us(40);
|
||||
}
|
||||
}
|
||||
enabled = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
void stepperInfo::enable(){
|
||||
enabled = 1;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* stepperInfo.h
|
||||
*
|
||||
* Created: 5/7/2014 6:19:00 AM
|
||||
* Author: Nick
|
||||
*/
|
||||
|
||||
#include "XMegaMacros.h"
|
||||
|
||||
#ifndef __STEPPERINFO_H__
|
||||
#define __STEPPERINFO_H__
|
||||
|
||||
#define GRIP 0
|
||||
#define RELEASE 1
|
||||
|
||||
class stepperInfo
|
||||
{
|
||||
//variables
|
||||
public:
|
||||
int enabled;
|
||||
int currentState;
|
||||
int init;
|
||||
volatile unsigned char desiredGripState;
|
||||
protected:
|
||||
private:
|
||||
|
||||
//functions
|
||||
public:
|
||||
stepperInfo();
|
||||
~stepperInfo();
|
||||
void processCommand(int cmd);
|
||||
void enable();
|
||||
protected:
|
||||
private:
|
||||
stepperInfo( const stepperInfo &c );
|
||||
stepperInfo& operator=( const stepperInfo &c );
|
||||
|
||||
}; //stepperInfo
|
||||
|
||||
#endif //__STEPPERINFO_H__
|
||||
@@ -0,0 +1,320 @@
|
||||
/* This file has been prepared for Doxygen automatic documentation generation.*/
|
||||
/*! \file *********************************************************************
|
||||
*
|
||||
* \brief
|
||||
* XMEGA USART driver source file.
|
||||
*
|
||||
* This file contains the function implementations the XMEGA interrupt
|
||||
* and polled USART driver.
|
||||
*
|
||||
* The driver is not intended for size and/or speed critical code, since
|
||||
* most functions are just a few lines of code, and the function call
|
||||
* overhead would decrease code performance. The driver is intended for
|
||||
* rapid prototyping and documentation purposes for getting started with
|
||||
* the XMEGA ADC module.
|
||||
*
|
||||
* For size and/or speed critical code, it is recommended to copy the
|
||||
* function contents directly into your application instead of making
|
||||
* a function call.
|
||||
*
|
||||
* Some functions use the following construct:
|
||||
* "some_register = ... | (some_parameter ? SOME_BIT_bm : 0) | ..."
|
||||
* Although the use of the ternary operator ( if ? then : else ) is discouraged,
|
||||
* in some occasions the operator makes it possible to write pretty clean and
|
||||
* neat code. In this driver, the construct is used to set or not set a
|
||||
* configuration bit based on a boolean input parameter, such as
|
||||
* the "some_parameter" in the example above.
|
||||
*
|
||||
* \par Application note:
|
||||
* AVR1307: Using the XMEGA USART
|
||||
*
|
||||
* \par Documentation
|
||||
* For comprehensive code documentation, supported compilers, compiler
|
||||
* settings and supported devices see readme.html
|
||||
*
|
||||
* \author
|
||||
* Atmel Corporation: http://www.atmel.com \n
|
||||
* Support email: avr@atmel.com
|
||||
*
|
||||
* $Revision: 1694 $
|
||||
* $Date: 2008-07-29 14:21:58 +0200 (ti, 29 jul 2008) $ \n
|
||||
*
|
||||
* Copyright (c) 2008, Atmel Corporation All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of ATMEL may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
|
||||
* SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
#include "usart_driver.h"
|
||||
|
||||
|
||||
|
||||
/*! \brief Initializes buffer and selects what USART module to use.
|
||||
*
|
||||
* Initializes receive and transmit buffer and selects what USART module to use,
|
||||
* and stores the data register empty interrupt level.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
* \param usart The USART module.
|
||||
* \param dreIntLevel Data register empty interrupt level.
|
||||
*/
|
||||
void USART_InterruptDriver_Initialize(USART_data_t * usart_data,
|
||||
USART_t * usart,
|
||||
USART_DREINTLVL_t dreIntLevel)
|
||||
{
|
||||
usart_data->usart = usart;
|
||||
usart_data->dreIntLevel = dreIntLevel;
|
||||
|
||||
usart_data->buffer.RX_Tail = 0;
|
||||
usart_data->buffer.RX_Head = 0;
|
||||
usart_data->buffer.TX_Tail = 0;
|
||||
usart_data->buffer.TX_Head = 0;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Set USART DRE interrupt level.
|
||||
*
|
||||
* Set the interrupt level on Data Register interrupt.
|
||||
*
|
||||
* \note Changing the DRE interrupt level in the interrupt driver while it is
|
||||
* running will not change the DRE interrupt level in the USART before the
|
||||
* DRE interrupt have been disabled and enabled again.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance
|
||||
* \param dreIntLevel Interrupt level of the DRE interrupt.
|
||||
*/
|
||||
void USART_InterruptDriver_DreInterruptLevel_Set(USART_data_t * usart_data,
|
||||
USART_DREINTLVL_t dreIntLevel)
|
||||
{
|
||||
usart_data->dreIntLevel = dreIntLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Test if there is data in the transmitter software buffer.
|
||||
*
|
||||
* This function can be used to test if there is free space in the transmitter
|
||||
* software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*
|
||||
* \retval true There is data in the receive buffer.
|
||||
* \retval false The receive buffer is empty.
|
||||
*/
|
||||
bool USART_TXBuffer_FreeSpace(USART_data_t * usart_data)
|
||||
{
|
||||
/* Make copies to make sure that volatile access is specified. */
|
||||
uint8_t tempHead = (usart_data->buffer.TX_Head + 1) & USART_TX_BUFFER_MASK;
|
||||
uint8_t tempTail = usart_data->buffer.TX_Tail;
|
||||
|
||||
/* There are data left in the buffer unless Head and Tail are equal. */
|
||||
return (tempHead != tempTail);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Put data (5-8 bit character).
|
||||
*
|
||||
* Stores data byte in TX software buffer and enables DRE interrupt if there
|
||||
* is free space in the TX software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
* \param data The data to send.
|
||||
*/
|
||||
bool USART_TXBuffer_PutByte(USART_data_t * usart_data, uint8_t data)
|
||||
{
|
||||
uint8_t tempCTRLA;
|
||||
uint8_t tempTX_Head;
|
||||
bool TXBuffer_FreeSpace;
|
||||
USART_Buffer_t * TXbufPtr;
|
||||
|
||||
TXbufPtr = &usart_data->buffer;
|
||||
TXBuffer_FreeSpace = USART_TXBuffer_FreeSpace(usart_data);
|
||||
|
||||
|
||||
if(TXBuffer_FreeSpace)
|
||||
{
|
||||
tempTX_Head = TXbufPtr->TX_Head;
|
||||
TXbufPtr->TX[tempTX_Head]= data;
|
||||
/* Advance buffer head. */
|
||||
TXbufPtr->TX_Head = (tempTX_Head + 1) & USART_TX_BUFFER_MASK;
|
||||
|
||||
/* Enable DRE interrupt. */
|
||||
tempCTRLA = usart_data->usart->CTRLA;
|
||||
tempCTRLA = (tempCTRLA & ~USART_DREINTLVL_gm) | usart_data->dreIntLevel;
|
||||
usart_data->usart->CTRLA = tempCTRLA;
|
||||
}
|
||||
return TXBuffer_FreeSpace;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Test if there is data in the receive software buffer.
|
||||
*
|
||||
* This function can be used to test if there is data in the receive software
|
||||
* buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance
|
||||
*
|
||||
* \retval true There is data in the receive buffer.
|
||||
* \retval false The receive buffer is empty.
|
||||
*/
|
||||
bool USART_RXBufferData_Available(USART_data_t * usart_data)
|
||||
{
|
||||
/* Make copies to make sure that volatile access is specified. */
|
||||
uint8_t tempHead = usart_data->buffer.RX_Head;
|
||||
uint8_t tempTail = usart_data->buffer.RX_Tail;
|
||||
|
||||
/* There are data left in the buffer unless Head and Tail are equal. */
|
||||
return (tempHead != tempTail);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Get received data (5-8 bit character).
|
||||
*
|
||||
* The function USART_RXBufferData_Available should be used before this
|
||||
* function is used to ensure that data is available.
|
||||
*
|
||||
* Returns data from RX software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*
|
||||
* \return Received data.
|
||||
*/
|
||||
uint8_t USART_RXBuffer_GetByte(USART_data_t * usart_data)
|
||||
{
|
||||
USART_Buffer_t * bufPtr;
|
||||
uint8_t ans;
|
||||
|
||||
bufPtr = &usart_data->buffer;
|
||||
ans = (bufPtr->RX[bufPtr->RX_Tail]);
|
||||
|
||||
/* Advance buffer tail. */
|
||||
bufPtr->RX_Tail = (bufPtr->RX_Tail + 1) & USART_RX_BUFFER_MASK;
|
||||
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief RX Complete Interrupt Service Routine.
|
||||
*
|
||||
* RX Complete Interrupt Service Routine.
|
||||
* Stores received data in RX software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*/
|
||||
bool USART_RXComplete(USART_data_t * usart_data)
|
||||
{
|
||||
USART_Buffer_t * bufPtr;
|
||||
bool ans;
|
||||
|
||||
bufPtr = &usart_data->buffer;
|
||||
/* Advance buffer head. */
|
||||
uint8_t tempRX_Head = (bufPtr->RX_Head + 1) & USART_RX_BUFFER_MASK;
|
||||
|
||||
/* Check for overflow. */
|
||||
uint8_t tempRX_Tail = bufPtr->RX_Tail;
|
||||
uint8_t data = usart_data->usart->DATA;
|
||||
|
||||
if (tempRX_Head == tempRX_Tail) {
|
||||
ans = false;
|
||||
}else{
|
||||
ans = true;
|
||||
usart_data->buffer.RX[usart_data->buffer.RX_Head] = data;
|
||||
usart_data->buffer.RX_Head = tempRX_Head;
|
||||
}
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Data Register Empty Interrupt Service Routine.
|
||||
*
|
||||
* Data Register Empty Interrupt Service Routine.
|
||||
* Transmits one byte from TX software buffer. Disables DRE interrupt if buffer
|
||||
* is empty. Argument is pointer to USART (USART_data_t).
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*/
|
||||
void USART_DataRegEmpty(USART_data_t * usart_data)
|
||||
{
|
||||
USART_Buffer_t * bufPtr;
|
||||
bufPtr = &usart_data->buffer;
|
||||
|
||||
/* Check if all data is transmitted. */
|
||||
uint8_t tempTX_Tail = usart_data->buffer.TX_Tail;
|
||||
if (bufPtr->TX_Head == tempTX_Tail){
|
||||
/* Disable DRE interrupts. */
|
||||
uint8_t tempCTRLA = usart_data->usart->CTRLA;
|
||||
tempCTRLA = (tempCTRLA & ~USART_DREINTLVL_gm) | USART_DREINTLVL_OFF_gc;
|
||||
usart_data->usart->CTRLA = tempCTRLA;
|
||||
|
||||
}else{
|
||||
/* Start transmitting. */
|
||||
uint8_t data = bufPtr->TX[usart_data->buffer.TX_Tail];
|
||||
usart_data->usart->DATA = data;
|
||||
|
||||
/* Advance buffer tail. */
|
||||
bufPtr->TX_Tail = (bufPtr->TX_Tail + 1) & USART_TX_BUFFER_MASK;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Put data (9 bit character).
|
||||
*
|
||||
* Use the function USART_IsTXDataRegisterEmpty before using this function to
|
||||
* put 9 bit character to the TX register.
|
||||
*
|
||||
* \param usart The USART module.
|
||||
* \param data The data to send.
|
||||
*/
|
||||
void USART_NineBits_PutChar(USART_t * usart, uint16_t data)
|
||||
{
|
||||
if(data & 0x0100) {
|
||||
usart->CTRLB |= USART_TXB8_bm;
|
||||
}else {
|
||||
usart->CTRLB &= ~USART_TXB8_bm;
|
||||
}
|
||||
|
||||
usart->DATA = (data & 0x00FF);
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Get received data (9 bit character).
|
||||
*
|
||||
* This function reads out the received 9 bit character (uint16_t).
|
||||
* Use the function USART_IsRXComplete to check if anything is received.
|
||||
*
|
||||
* \param usart The USART module.
|
||||
*
|
||||
* \retval Received data.
|
||||
*/
|
||||
uint16_t USART_NineBits_GetChar(USART_t * usart)
|
||||
{
|
||||
if(usart->CTRLB & USART_RXB8_bm) {
|
||||
return(0x0100 | usart->DATA);
|
||||
}else {
|
||||
return(usart->DATA);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,306 @@
|
||||
/* This file has been prepared for Doxygen automatic documentation generation.*/
|
||||
/*! \file *********************************************************************
|
||||
*
|
||||
* \brief XMEGA USART driver header file.
|
||||
*
|
||||
* This file contains the function prototypes and enumerator definitions
|
||||
* for various configuration parameters for the XMEGA USART driver.
|
||||
*
|
||||
* The driver is not intended for size and/or speed critical code, since
|
||||
* most functions are just a few lines of code, and the function call
|
||||
* overhead would decrease code performance. The driver is intended for
|
||||
* rapid prototyping and documentation purposes for getting started with
|
||||
* the XMEGA ADC module.
|
||||
*
|
||||
* For size and/or speed critical code, it is recommended to copy the
|
||||
* function contents directly into your application instead of making
|
||||
* a function call.
|
||||
*
|
||||
* \par Application note:
|
||||
* AVR1307: Using the XMEGA USART
|
||||
*
|
||||
* \par Documentation
|
||||
* For comprehensive code documentation, supported compilers, compiler
|
||||
* settings and supported devices see readme.html
|
||||
*
|
||||
* \author
|
||||
* Atmel Corporation: http://www.atmel.com \n
|
||||
* Support email: avr@atmel.com
|
||||
*
|
||||
* $Revision: 1694 $
|
||||
* $Date: 2008-07-29 14:21:58 +0200 (ti, 29 jul 2008) $ \n
|
||||
*
|
||||
* Copyright (c) 2008, Atmel Corporation All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of ATMEL may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
|
||||
* SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
#ifndef USART_DRIVER_H
|
||||
#define USART_DRIVER_H
|
||||
|
||||
#include "avr_compiler.h"
|
||||
|
||||
/* USART buffer defines. */
|
||||
|
||||
/* \brief Receive buffer size: 2,4,8,16,32,64,128 or 256 bytes. */
|
||||
#define USART_RX_BUFFER_SIZE 4
|
||||
/* \brief Transmit buffer size: 2,4,8,16,32,64,128 or 256 bytes */
|
||||
#define USART_TX_BUFFER_SIZE 4
|
||||
/* \brief Receive buffer mask. */
|
||||
#define USART_RX_BUFFER_MASK ( USART_RX_BUFFER_SIZE - 1 )
|
||||
/* \brief Transmit buffer mask. */
|
||||
#define USART_TX_BUFFER_MASK ( USART_TX_BUFFER_SIZE - 1 )
|
||||
|
||||
|
||||
#if ( USART_RX_BUFFER_SIZE & USART_RX_BUFFER_MASK )
|
||||
#error RX buffer size is not a power of 2
|
||||
#endif
|
||||
#if ( USART_TX_BUFFER_SIZE & USART_TX_BUFFER_MASK )
|
||||
#error TX buffer size is not a power of 2
|
||||
#endif
|
||||
|
||||
|
||||
/* \brief USART transmit and receive ring buffer. */
|
||||
typedef struct USART_Buffer
|
||||
{
|
||||
/* \brief Receive buffer. */
|
||||
volatile uint8_t RX[USART_RX_BUFFER_SIZE];
|
||||
/* \brief Transmit buffer. */
|
||||
volatile uint8_t TX[USART_TX_BUFFER_SIZE];
|
||||
/* \brief Receive buffer head. */
|
||||
volatile uint8_t RX_Head;
|
||||
/* \brief Receive buffer tail. */
|
||||
volatile uint8_t RX_Tail;
|
||||
/* \brief Transmit buffer head. */
|
||||
volatile uint8_t TX_Head;
|
||||
/* \brief Transmit buffer tail. */
|
||||
volatile uint8_t TX_Tail;
|
||||
} USART_Buffer_t;
|
||||
|
||||
|
||||
/*! \brief Struct used when interrupt driven driver is used.
|
||||
*
|
||||
* Struct containing pointer to a usart, a buffer and a location to store Data
|
||||
* register interrupt level temporary.
|
||||
*/
|
||||
typedef struct Usart_and_buffer
|
||||
{
|
||||
/* \brief Pointer to USART module to use. */
|
||||
USART_t * usart;
|
||||
/* \brief Data register empty interrupt level. */
|
||||
USART_DREINTLVL_t dreIntLevel;
|
||||
/* \brief Data buffer. */
|
||||
USART_Buffer_t buffer;
|
||||
} USART_data_t;
|
||||
|
||||
|
||||
/* Macros. */
|
||||
|
||||
/*! \brief Macro that sets the USART frame format.
|
||||
*
|
||||
* Sets the frame format, Frame Size, parity mode and number of stop bits.
|
||||
*
|
||||
* \param _usart Pointer to the USART module
|
||||
* \param _charSize The character size. Use USART_CHSIZE_t type.
|
||||
* \param _parityMode The parity Mode. Use USART_PMODE_t type.
|
||||
* \param _twoStopBits Enable two stop bit mode. Use bool type.
|
||||
*/
|
||||
#define USART_Format_Set(_usart, _charSize, _parityMode, _twoStopBits) \
|
||||
(_usart)->CTRLC = (uint8_t) _charSize | _parityMode | \
|
||||
(_twoStopBits ? USART_SBMODE_bm : 0)
|
||||
|
||||
|
||||
/*! \brief Set USART baud rate.
|
||||
*
|
||||
* Sets the USART's baud rate register.
|
||||
*
|
||||
* UBRR_Value : Value written to UBRR
|
||||
* ScaleFactor : Time Base Generator Scale Factor
|
||||
*
|
||||
* Equation for calculation of BSEL value in asynchronous normal speed mode:
|
||||
* If ScaleFactor >= 0
|
||||
* BSEL = ((I/O clock frequency)/(2^(ScaleFactor)*16*Baudrate))-1
|
||||
* If ScaleFactor < 0
|
||||
* BSEL = (1/(2^(ScaleFactor)*16))*(((I/O clock frequency)/Baudrate)-1)
|
||||
*
|
||||
* \note See XMEGA manual for equations for calculation of BSEL value in other
|
||||
* modes.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _bselValue Value to write to BSEL part of Baud control register.
|
||||
* Use uint16_t type.
|
||||
* \param _bScaleFactor USART baud rate scale factor.
|
||||
* Use uint8_t type
|
||||
*/
|
||||
#define USART_Baudrate_Set(_usart, _bselValue, _bScaleFactor) \
|
||||
(_usart)->BAUDCTRLA =(uint8_t)_bselValue; \
|
||||
(_usart)->BAUDCTRLB =(_bScaleFactor << USART_BSCALE0_bp)|(_bselValue >> 8)
|
||||
|
||||
|
||||
/*! \brief Enable USART receiver.
|
||||
*
|
||||
* \param _usart Pointer to the USART module
|
||||
*/
|
||||
#define USART_Rx_Enable(_usart) ((_usart)->CTRLB |= USART_RXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Disable USART receiver.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
*/
|
||||
#define USART_Rx_Disable(_usart) ((_usart)->CTRLB &= ~USART_RXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Enable USART transmitter.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
*/
|
||||
#define USART_Tx_Enable(_usart) ((_usart)->CTRLB |= USART_TXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Disable USART transmitter.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
*/
|
||||
#define USART_Tx_Disable(_usart) ((_usart)->CTRLB &= ~USART_TXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Set USART RXD interrupt level.
|
||||
*
|
||||
* Sets the interrupt level on RX Complete interrupt.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _rxdIntLevel Interrupt level of the RXD interrupt.
|
||||
* Use USART_RXCINTLVL_t type.
|
||||
*/
|
||||
#define USART_RxdInterruptLevel_Set(_usart, _rxdIntLevel) \
|
||||
((_usart)->CTRLA = ((_usart)->CTRLA & ~USART_RXCINTLVL_gm) | _rxdIntLevel)
|
||||
|
||||
|
||||
/*! \brief Set USART TXD interrupt level.
|
||||
*
|
||||
* Sets the interrupt level on TX Complete interrupt.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _txdIntLevel Interrupt level of the TXD interrupt.
|
||||
* Use USART_TXCINTLVL_t type.
|
||||
*/
|
||||
#define USART_TxdInterruptLevel_Set(_usart, _txdIntLevel) \
|
||||
(_usart)->CTRLA = ((_usart)->CTRLA & ~USART_TXCINTLVL_gm) | _txdIntLevel
|
||||
|
||||
|
||||
|
||||
/*! \brief Set USART DRE interrupt level.
|
||||
*
|
||||
* Sets the interrupt level on Data Register interrupt.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _dreIntLevel Interrupt level of the DRE interrupt.
|
||||
* Use USART_DREINTLVL_t type.
|
||||
*/
|
||||
#define USART_DreInterruptLevel_Set(_usart, _dreIntLevel) \
|
||||
(_usart)->CTRLA = ((_usart)->CTRLA & ~USART_DREINTLVL_gm) | _dreIntLevel
|
||||
|
||||
|
||||
/*! \brief Set the mode the USART run in.
|
||||
*
|
||||
* Set the mode the USART run in. The default mode is asynchronous mode.
|
||||
*
|
||||
* \param _usart Pointer to the USART module register section.
|
||||
* \param _usartMode Selects the USART mode. Use USART_CMODE_t type.
|
||||
*
|
||||
* USART modes:
|
||||
* - 0x0 : Asynchronous mode.
|
||||
* - 0x1 : Synchronous mode.
|
||||
* - 0x2 : IrDA mode.
|
||||
* - 0x3 : Master SPI mode.
|
||||
*/
|
||||
#define USART_SetMode(_usart, _usartMode) \
|
||||
((_usart)->CTRLC = ((_usart)->CTRLC & (~USART_CMODE_gm)) | _usartMode)
|
||||
|
||||
|
||||
|
||||
/*! \brief Check if data register empty flag is set.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
*/
|
||||
#define USART_IsTXDataRegisterEmpty(_usart) (((_usart)->STATUS & USART_DREIF_bm) != 0)
|
||||
|
||||
|
||||
|
||||
/*! \brief Put data (5-8 bit character).
|
||||
*
|
||||
* Use the macro USART_IsTXDataRegisterEmpty before using this function to
|
||||
* put data to the TX register.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
* \param _data The data to send.
|
||||
*/
|
||||
#define USART_PutChar(_usart, _data) ((_usart)->DATA = _data)
|
||||
|
||||
|
||||
|
||||
/*! \brief Checks if the RX complete interrupt flag is set.
|
||||
*
|
||||
* Checks if the RX complete interrupt flag is set.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
*/
|
||||
#define USART_IsRXComplete(_usart) (((_usart)->STATUS & USART_RXCIF_bm) != 0)
|
||||
|
||||
|
||||
|
||||
|
||||
/*! \brief Get received data (5-8 bit character).
|
||||
*
|
||||
* This macro reads out the RX register.
|
||||
* Use the macro USART_RX_Complete to check if anything is received.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
*
|
||||
* \retval Received data.
|
||||
*/
|
||||
#define USART_GetChar(_usart) ((_usart)->DATA)
|
||||
|
||||
|
||||
/* Functions for interrupt driven driver. */
|
||||
void USART_InterruptDriver_Initialize(USART_data_t * usart_data,
|
||||
USART_t * usart,
|
||||
USART_DREINTLVL_t dreIntLevel );
|
||||
|
||||
void USART_InterruptDriver_DreInterruptLevel_Set(USART_data_t * usart_data,
|
||||
USART_DREINTLVL_t dreIntLevel);
|
||||
|
||||
bool USART_TXBuffer_FreeSpace(USART_data_t * usart_data);
|
||||
bool USART_TXBuffer_PutByte(USART_data_t * usart_data, uint8_t data);
|
||||
bool USART_RXBufferData_Available(USART_data_t * usart_data);
|
||||
uint8_t USART_RXBuffer_GetByte(USART_data_t * usart_data);
|
||||
bool USART_RXComplete(USART_data_t * usart_data);
|
||||
void USART_DataRegEmpty(USART_data_t * usart_data);
|
||||
|
||||
/* Functions for polled driver. */
|
||||
void USART_NineBits_PutChar(USART_t * usart, uint16_t data);
|
||||
uint16_t USART_NineBits_GetChar(USART_t * usart);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,3 @@
|
||||
Firmware for all final boards should go here.
|
||||
|
||||
All firmware developed using Atmel Studio 6.2.
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Atmel Studio Solution File, Format Version 11.00
|
||||
Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "DistanceRadioRover", "DistanceRadioRover.cppproj", "{0646594B-D684-48EF-AAB5-9601FAFC53D7}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|AVR = Debug|AVR
|
||||
Release|AVR = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{0646594B-D684-48EF-AAB5-9601FAFC53D7}.Debug|AVR.ActiveCfg = Debug|AVR
|
||||
{0646594B-D684-48EF-AAB5-9601FAFC53D7}.Debug|AVR.Build.0 = Debug|AVR
|
||||
{0646594B-D684-48EF-AAB5-9601FAFC53D7}.Release|AVR.ActiveCfg = Release|AVR
|
||||
{0646594B-D684-48EF-AAB5-9601FAFC53D7}.Release|AVR.Build.0 = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* DistanceRadioRover.cpp
|
||||
*
|
||||
* Created: 4/23/2014 2:39:40 AM
|
||||
* Author: corwin
|
||||
*/
|
||||
|
||||
|
||||
#include <avr/io.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
//TODO:: Please write your application code
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectVersion>6.2</ProjectVersion>
|
||||
<ToolchainName>com.Atmel.AVRGCC8.CPP</ToolchainName>
|
||||
<ProjectGuid>{0646594b-d684-48ef-aab5-9601fafc53d7}</ProjectGuid>
|
||||
<avrdevice>ATxmega32D4</avrdevice>
|
||||
<avrdeviceseries>none</avrdeviceseries>
|
||||
<OutputType>Executable</OutputType>
|
||||
<Language>CPP</Language>
|
||||
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
|
||||
<OutputFileExtension>.elf</OutputFileExtension>
|
||||
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
|
||||
<AssemblyName>DistanceRadioRover</AssemblyName>
|
||||
<Name>DistanceRadioRover</Name>
|
||||
<RootNamespace>DistanceRadioRover</RootNamespace>
|
||||
<ToolchainFlavour>Native</ToolchainFlavour>
|
||||
<KeepTimersRunning>true</KeepTimersRunning>
|
||||
<OverrideVtor>false</OverrideVtor>
|
||||
<CacheFlash>true</CacheFlash>
|
||||
<ProgFlashFromRam>true</ProgFlashFromRam>
|
||||
<RamSnippetAddress />
|
||||
<UncachedRange />
|
||||
<OverrideVtorValue />
|
||||
<BootSegment>2</BootSegment>
|
||||
<eraseonlaunchrule>1</eraseonlaunchrule>
|
||||
<AsfFrameworkConfig>
|
||||
<framework-data xmlns="">
|
||||
<options />
|
||||
<configurations />
|
||||
<files />
|
||||
<documentation help="" />
|
||||
<offline-documentation help="" />
|
||||
<dependencies>
|
||||
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.15.0" />
|
||||
</dependencies>
|
||||
</framework-data>
|
||||
</AsfFrameworkConfig>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGccCpp>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<avrgcccpp.compiler.optimization.level>Optimize for size (-Os)</avrgcccpp.compiler.optimization.level>
|
||||
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
||||
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.linker.libraries.Libraries>
|
||||
</AvrGccCpp>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGccCpp>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<avrgcccpp.compiler.optimization.level>Optimize (-O1)</avrgcccpp.compiler.optimization.level>
|
||||
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
||||
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
|
||||
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.linker.libraries.Libraries>
|
||||
<avrgcccpp.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcccpp.assembler.debugging.DebugLevel>
|
||||
</AvrGccCpp>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="DistanceRadioRover.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,154 @@
|
||||
/* This file has been prepared for Doxygen automatic documentation generation.*/
|
||||
/*! \file *********************************************************************
|
||||
*
|
||||
* \brief This file implements some macros that makes the IAR C-compiler and
|
||||
* avr-gcc work with the same code base for the AVR architecture.
|
||||
*
|
||||
* \par Documentation
|
||||
* For comprehensive code documentation, supported compilers, compiler
|
||||
* settings and supported devices see readme.html
|
||||
*
|
||||
* \author
|
||||
* Atmel Corporation: http://www.atmel.com \n
|
||||
* Support email: avr@atmel.com
|
||||
*
|
||||
* $Revision: 1694 $
|
||||
* $Date: 2008-07-29 14:21:58 +0200 (ti, 29 jul 2008) $ \n
|
||||
*
|
||||
* Copyright (c) 2008, Atmel Corporation All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of ATMEL may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
|
||||
* SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef COMPILER_AVR_H
|
||||
#define COMPILER_AVR_H
|
||||
|
||||
#ifndef F_CPU
|
||||
/*! \brief Define default CPU frequency, if this is not already defined. */
|
||||
#define F_CPU 2000000UL
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/*! \brief This macro will protect the following code from interrupts. */
|
||||
#define AVR_ENTER_CRITICAL_REGION( ) uint8_t volatile saved_sreg = SREG; \
|
||||
cli();
|
||||
|
||||
/*! \brief This macro must always be used in conjunction with AVR_ENTER_CRITICAL_REGION
|
||||
* so the interrupts are enabled again.
|
||||
*/
|
||||
#define AVR_LEAVE_CRITICAL_REGION( ) SREG = saved_sreg;
|
||||
|
||||
#if defined( __ICCAVR__ )
|
||||
|
||||
#include <inavr.h>
|
||||
#include <ioavr.h>
|
||||
#include <intrinsics.h>
|
||||
#include <pgmspace.h>
|
||||
|
||||
#ifndef __HAS_ELPM__
|
||||
#define _MEMATTR __flash
|
||||
#else /* __HAS_ELPM__ */
|
||||
#define _MEMATTR __farflash
|
||||
#endif /* __HAS_ELPM__ */
|
||||
|
||||
/*! \brief Perform a delay of \c us microseconds.
|
||||
*
|
||||
* The macro F_CPU is supposed to be defined to a constant defining the CPU
|
||||
* clock frequency (in Hertz).
|
||||
*
|
||||
* The maximal possible delay is 262.14 ms / F_CPU in MHz.
|
||||
*
|
||||
* \note For the IAR compiler, currently F_CPU must be a
|
||||
* multiple of 1000000UL (1 MHz).
|
||||
*/
|
||||
#define delay_us( us ) ( __delay_cycles( ( F_CPU / 1000000UL ) * ( us ) ) )
|
||||
|
||||
/*! \brief Preprocessor magic.
|
||||
*
|
||||
* Some preprocessor magic to allow for a header file abstraction of
|
||||
* interrupt service routine declarations for the IAR compiler. This
|
||||
* requires the use of the C99 _Pragma() directive (rather than the
|
||||
* old #pragma one that could not be used as a macro replacement), as
|
||||
* well as two different levels of preprocessor concetanations in
|
||||
* order to do both, assign the correct interrupt vector name, as well
|
||||
* as construct a unique function name for the ISR.
|
||||
*
|
||||
* \note Do *NOT* try to reorder the macros below, as this will only
|
||||
* work in the given order.
|
||||
*/
|
||||
#define PRAGMA(x) _Pragma( #x )
|
||||
#define ISR(vec) PRAGMA( vector=vec ) __interrupt void handler_##vec(void)
|
||||
#define sei( ) (__enable_interrupt( ))
|
||||
#define cli( ) (__disable_interrupt( ))
|
||||
|
||||
/*! \brief Define the no operation macro. */
|
||||
#define nop( ) (__no_operation())
|
||||
|
||||
/*! \brief Define the watchdog reset macro. */
|
||||
#define watchdog_reset( ) (__watchdog_reset( ))
|
||||
|
||||
|
||||
#define INLINE PRAGMA( inline=forced ) static
|
||||
|
||||
#define FLASH_DECLARE(x) _MEMATTR x
|
||||
#define FLASH_STRING(x) ((_MEMATTR const char *)(x))
|
||||
#define FLASH_STRING_T char const _MEMATTR *
|
||||
#define FLASH_BYTE_ARRAY_T uint8_t const _MEMATTR *
|
||||
#define PGM_READ_BYTE(x) *(x)
|
||||
#define PGM_READ_WORD(x) *(x)
|
||||
|
||||
#define SHORTENUM /**/
|
||||
|
||||
#elif defined( __GNUC__ )
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <avr/pgmspace.h>
|
||||
#include <util/delay.h>
|
||||
|
||||
/*! \brief Define the delay_us macro for GCC. */
|
||||
#define delay_us( us ) (_delay_us( us ))
|
||||
|
||||
#define INLINE static inline
|
||||
|
||||
/*! \brief Define the no operation macro. */
|
||||
#define nop() do { __asm__ __volatile__ ("nop"); } while (0)
|
||||
|
||||
#define MAIN_TASK_PROLOGUE int
|
||||
|
||||
|
||||
#define MAIN_TASK_EPILOGUE() return -1;
|
||||
|
||||
#define SHORTENUM __attribute__ ((packed))
|
||||
|
||||
#else
|
||||
#error Compiler not supported.
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,320 @@
|
||||
/* This file has been prepared for Doxygen automatic documentation generation.*/
|
||||
/*! \file *********************************************************************
|
||||
*
|
||||
* \brief
|
||||
* XMEGA USART driver source file.
|
||||
*
|
||||
* This file contains the function implementations the XMEGA interrupt
|
||||
* and polled USART driver.
|
||||
*
|
||||
* The driver is not intended for size and/or speed critical code, since
|
||||
* most functions are just a few lines of code, and the function call
|
||||
* overhead would decrease code performance. The driver is intended for
|
||||
* rapid prototyping and documentation purposes for getting started with
|
||||
* the XMEGA ADC module.
|
||||
*
|
||||
* For size and/or speed critical code, it is recommended to copy the
|
||||
* function contents directly into your application instead of making
|
||||
* a function call.
|
||||
*
|
||||
* Some functions use the following construct:
|
||||
* "some_register = ... | (some_parameter ? SOME_BIT_bm : 0) | ..."
|
||||
* Although the use of the ternary operator ( if ? then : else ) is discouraged,
|
||||
* in some occasions the operator makes it possible to write pretty clean and
|
||||
* neat code. In this driver, the construct is used to set or not set a
|
||||
* configuration bit based on a boolean input parameter, such as
|
||||
* the "some_parameter" in the example above.
|
||||
*
|
||||
* \par Application note:
|
||||
* AVR1307: Using the XMEGA USART
|
||||
*
|
||||
* \par Documentation
|
||||
* For comprehensive code documentation, supported compilers, compiler
|
||||
* settings and supported devices see readme.html
|
||||
*
|
||||
* \author
|
||||
* Atmel Corporation: http://www.atmel.com \n
|
||||
* Support email: avr@atmel.com
|
||||
*
|
||||
* $Revision: 1694 $
|
||||
* $Date: 2008-07-29 14:21:58 +0200 (ti, 29 jul 2008) $ \n
|
||||
*
|
||||
* Copyright (c) 2008, Atmel Corporation All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of ATMEL may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
|
||||
* SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
#include "usart_driver.h"
|
||||
|
||||
|
||||
|
||||
/*! \brief Initializes buffer and selects what USART module to use.
|
||||
*
|
||||
* Initializes receive and transmit buffer and selects what USART module to use,
|
||||
* and stores the data register empty interrupt level.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
* \param usart The USART module.
|
||||
* \param dreIntLevel Data register empty interrupt level.
|
||||
*/
|
||||
void USART_InterruptDriver_Initialize(USART_data_t * usart_data,
|
||||
USART_t * usart,
|
||||
USART_DREINTLVL_t dreIntLevel)
|
||||
{
|
||||
usart_data->usart = usart;
|
||||
usart_data->dreIntLevel = dreIntLevel;
|
||||
|
||||
usart_data->buffer.RX_Tail = 0;
|
||||
usart_data->buffer.RX_Head = 0;
|
||||
usart_data->buffer.TX_Tail = 0;
|
||||
usart_data->buffer.TX_Head = 0;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Set USART DRE interrupt level.
|
||||
*
|
||||
* Set the interrupt level on Data Register interrupt.
|
||||
*
|
||||
* \note Changing the DRE interrupt level in the interrupt driver while it is
|
||||
* running will not change the DRE interrupt level in the USART before the
|
||||
* DRE interrupt have been disabled and enabled again.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance
|
||||
* \param dreIntLevel Interrupt level of the DRE interrupt.
|
||||
*/
|
||||
void USART_InterruptDriver_DreInterruptLevel_Set(USART_data_t * usart_data,
|
||||
USART_DREINTLVL_t dreIntLevel)
|
||||
{
|
||||
usart_data->dreIntLevel = dreIntLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Test if there is data in the transmitter software buffer.
|
||||
*
|
||||
* This function can be used to test if there is free space in the transmitter
|
||||
* software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*
|
||||
* \retval true There is data in the receive buffer.
|
||||
* \retval false The receive buffer is empty.
|
||||
*/
|
||||
bool USART_TXBuffer_FreeSpace(USART_data_t * usart_data)
|
||||
{
|
||||
/* Make copies to make sure that volatile access is specified. */
|
||||
uint8_t tempHead = (usart_data->buffer.TX_Head + 1) & USART_TX_BUFFER_MASK;
|
||||
uint8_t tempTail = usart_data->buffer.TX_Tail;
|
||||
|
||||
/* There are data left in the buffer unless Head and Tail are equal. */
|
||||
return (tempHead != tempTail);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Put data (5-8 bit character).
|
||||
*
|
||||
* Stores data byte in TX software buffer and enables DRE interrupt if there
|
||||
* is free space in the TX software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
* \param data The data to send.
|
||||
*/
|
||||
bool USART_TXBuffer_PutByte(USART_data_t * usart_data, uint8_t data)
|
||||
{
|
||||
uint8_t tempCTRLA;
|
||||
uint8_t tempTX_Head;
|
||||
bool TXBuffer_FreeSpace;
|
||||
USART_Buffer_t * TXbufPtr;
|
||||
|
||||
TXbufPtr = &usart_data->buffer;
|
||||
TXBuffer_FreeSpace = USART_TXBuffer_FreeSpace(usart_data);
|
||||
|
||||
|
||||
if(TXBuffer_FreeSpace)
|
||||
{
|
||||
tempTX_Head = TXbufPtr->TX_Head;
|
||||
TXbufPtr->TX[tempTX_Head]= data;
|
||||
/* Advance buffer head. */
|
||||
TXbufPtr->TX_Head = (tempTX_Head + 1) & USART_TX_BUFFER_MASK;
|
||||
|
||||
/* Enable DRE interrupt. */
|
||||
tempCTRLA = usart_data->usart->CTRLA;
|
||||
tempCTRLA = (tempCTRLA & ~USART_DREINTLVL_gm) | usart_data->dreIntLevel;
|
||||
usart_data->usart->CTRLA = tempCTRLA;
|
||||
}
|
||||
return TXBuffer_FreeSpace;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Test if there is data in the receive software buffer.
|
||||
*
|
||||
* This function can be used to test if there is data in the receive software
|
||||
* buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance
|
||||
*
|
||||
* \retval true There is data in the receive buffer.
|
||||
* \retval false The receive buffer is empty.
|
||||
*/
|
||||
bool USART_RXBufferData_Available(USART_data_t * usart_data)
|
||||
{
|
||||
/* Make copies to make sure that volatile access is specified. */
|
||||
uint8_t tempHead = usart_data->buffer.RX_Head;
|
||||
uint8_t tempTail = usart_data->buffer.RX_Tail;
|
||||
|
||||
/* There are data left in the buffer unless Head and Tail are equal. */
|
||||
return (tempHead != tempTail);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Get received data (5-8 bit character).
|
||||
*
|
||||
* The function USART_RXBufferData_Available should be used before this
|
||||
* function is used to ensure that data is available.
|
||||
*
|
||||
* Returns data from RX software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*
|
||||
* \return Received data.
|
||||
*/
|
||||
uint8_t USART_RXBuffer_GetByte(USART_data_t * usart_data)
|
||||
{
|
||||
USART_Buffer_t * bufPtr;
|
||||
uint8_t ans;
|
||||
|
||||
bufPtr = &usart_data->buffer;
|
||||
ans = (bufPtr->RX[bufPtr->RX_Tail]);
|
||||
|
||||
/* Advance buffer tail. */
|
||||
bufPtr->RX_Tail = (bufPtr->RX_Tail + 1) & USART_RX_BUFFER_MASK;
|
||||
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief RX Complete Interrupt Service Routine.
|
||||
*
|
||||
* RX Complete Interrupt Service Routine.
|
||||
* Stores received data in RX software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*/
|
||||
bool USART_RXComplete(USART_data_t * usart_data)
|
||||
{
|
||||
USART_Buffer_t * bufPtr;
|
||||
bool ans;
|
||||
|
||||
bufPtr = &usart_data->buffer;
|
||||
/* Advance buffer head. */
|
||||
uint8_t tempRX_Head = (bufPtr->RX_Head + 1) & USART_RX_BUFFER_MASK;
|
||||
|
||||
/* Check for overflow. */
|
||||
uint8_t tempRX_Tail = bufPtr->RX_Tail;
|
||||
uint8_t data = usart_data->usart->DATA;
|
||||
|
||||
if (tempRX_Head == tempRX_Tail) {
|
||||
ans = false;
|
||||
}else{
|
||||
ans = true;
|
||||
usart_data->buffer.RX[usart_data->buffer.RX_Head] = data;
|
||||
usart_data->buffer.RX_Head = tempRX_Head;
|
||||
}
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Data Register Empty Interrupt Service Routine.
|
||||
*
|
||||
* Data Register Empty Interrupt Service Routine.
|
||||
* Transmits one byte from TX software buffer. Disables DRE interrupt if buffer
|
||||
* is empty. Argument is pointer to USART (USART_data_t).
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*/
|
||||
void USART_DataRegEmpty(USART_data_t * usart_data)
|
||||
{
|
||||
USART_Buffer_t * bufPtr;
|
||||
bufPtr = &usart_data->buffer;
|
||||
|
||||
/* Check if all data is transmitted. */
|
||||
uint8_t tempTX_Tail = usart_data->buffer.TX_Tail;
|
||||
if (bufPtr->TX_Head == tempTX_Tail){
|
||||
/* Disable DRE interrupts. */
|
||||
uint8_t tempCTRLA = usart_data->usart->CTRLA;
|
||||
tempCTRLA = (tempCTRLA & ~USART_DREINTLVL_gm) | USART_DREINTLVL_OFF_gc;
|
||||
usart_data->usart->CTRLA = tempCTRLA;
|
||||
|
||||
}else{
|
||||
/* Start transmitting. */
|
||||
uint8_t data = bufPtr->TX[usart_data->buffer.TX_Tail];
|
||||
usart_data->usart->DATA = data;
|
||||
|
||||
/* Advance buffer tail. */
|
||||
bufPtr->TX_Tail = (bufPtr->TX_Tail + 1) & USART_TX_BUFFER_MASK;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Put data (9 bit character).
|
||||
*
|
||||
* Use the function USART_IsTXDataRegisterEmpty before using this function to
|
||||
* put 9 bit character to the TX register.
|
||||
*
|
||||
* \param usart The USART module.
|
||||
* \param data The data to send.
|
||||
*/
|
||||
void USART_NineBits_PutChar(USART_t * usart, uint16_t data)
|
||||
{
|
||||
if(data & 0x0100) {
|
||||
usart->CTRLB |= USART_TXB8_bm;
|
||||
}else {
|
||||
usart->CTRLB &= ~USART_TXB8_bm;
|
||||
}
|
||||
|
||||
usart->DATA = (data & 0x00FF);
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Get received data (9 bit character).
|
||||
*
|
||||
* This function reads out the received 9 bit character (uint16_t).
|
||||
* Use the function USART_IsRXComplete to check if anything is received.
|
||||
*
|
||||
* \param usart The USART module.
|
||||
*
|
||||
* \retval Received data.
|
||||
*/
|
||||
uint16_t USART_NineBits_GetChar(USART_t * usart)
|
||||
{
|
||||
if(usart->CTRLB & USART_RXB8_bm) {
|
||||
return(0x0100 | usart->DATA);
|
||||
}else {
|
||||
return(usart->DATA);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,306 @@
|
||||
/* This file has been prepared for Doxygen automatic documentation generation.*/
|
||||
/*! \file *********************************************************************
|
||||
*
|
||||
* \brief XMEGA USART driver header file.
|
||||
*
|
||||
* This file contains the function prototypes and enumerator definitions
|
||||
* for various configuration parameters for the XMEGA USART driver.
|
||||
*
|
||||
* The driver is not intended for size and/or speed critical code, since
|
||||
* most functions are just a few lines of code, and the function call
|
||||
* overhead would decrease code performance. The driver is intended for
|
||||
* rapid prototyping and documentation purposes for getting started with
|
||||
* the XMEGA ADC module.
|
||||
*
|
||||
* For size and/or speed critical code, it is recommended to copy the
|
||||
* function contents directly into your application instead of making
|
||||
* a function call.
|
||||
*
|
||||
* \par Application note:
|
||||
* AVR1307: Using the XMEGA USART
|
||||
*
|
||||
* \par Documentation
|
||||
* For comprehensive code documentation, supported compilers, compiler
|
||||
* settings and supported devices see readme.html
|
||||
*
|
||||
* \author
|
||||
* Atmel Corporation: http://www.atmel.com \n
|
||||
* Support email: avr@atmel.com
|
||||
*
|
||||
* $Revision: 1694 $
|
||||
* $Date: 2008-07-29 14:21:58 +0200 (ti, 29 jul 2008) $ \n
|
||||
*
|
||||
* Copyright (c) 2008, Atmel Corporation All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of ATMEL may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
|
||||
* SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
#ifndef USART_DRIVER_H
|
||||
#define USART_DRIVER_H
|
||||
|
||||
#include "avr_compiler.h"
|
||||
|
||||
/* USART buffer defines. */
|
||||
|
||||
/* \brief Receive buffer size: 2,4,8,16,32,64,128 or 256 bytes. */
|
||||
#define USART_RX_BUFFER_SIZE 4
|
||||
/* \brief Transmit buffer size: 2,4,8,16,32,64,128 or 256 bytes */
|
||||
#define USART_TX_BUFFER_SIZE 4
|
||||
/* \brief Receive buffer mask. */
|
||||
#define USART_RX_BUFFER_MASK ( USART_RX_BUFFER_SIZE - 1 )
|
||||
/* \brief Transmit buffer mask. */
|
||||
#define USART_TX_BUFFER_MASK ( USART_TX_BUFFER_SIZE - 1 )
|
||||
|
||||
|
||||
#if ( USART_RX_BUFFER_SIZE & USART_RX_BUFFER_MASK )
|
||||
#error RX buffer size is not a power of 2
|
||||
#endif
|
||||
#if ( USART_TX_BUFFER_SIZE & USART_TX_BUFFER_MASK )
|
||||
#error TX buffer size is not a power of 2
|
||||
#endif
|
||||
|
||||
|
||||
/* \brief USART transmit and receive ring buffer. */
|
||||
typedef struct USART_Buffer
|
||||
{
|
||||
/* \brief Receive buffer. */
|
||||
volatile uint8_t RX[USART_RX_BUFFER_SIZE];
|
||||
/* \brief Transmit buffer. */
|
||||
volatile uint8_t TX[USART_TX_BUFFER_SIZE];
|
||||
/* \brief Receive buffer head. */
|
||||
volatile uint8_t RX_Head;
|
||||
/* \brief Receive buffer tail. */
|
||||
volatile uint8_t RX_Tail;
|
||||
/* \brief Transmit buffer head. */
|
||||
volatile uint8_t TX_Head;
|
||||
/* \brief Transmit buffer tail. */
|
||||
volatile uint8_t TX_Tail;
|
||||
} USART_Buffer_t;
|
||||
|
||||
|
||||
/*! \brief Struct used when interrupt driven driver is used.
|
||||
*
|
||||
* Struct containing pointer to a usart, a buffer and a location to store Data
|
||||
* register interrupt level temporary.
|
||||
*/
|
||||
typedef struct Usart_and_buffer
|
||||
{
|
||||
/* \brief Pointer to USART module to use. */
|
||||
USART_t * usart;
|
||||
/* \brief Data register empty interrupt level. */
|
||||
USART_DREINTLVL_t dreIntLevel;
|
||||
/* \brief Data buffer. */
|
||||
USART_Buffer_t buffer;
|
||||
} USART_data_t;
|
||||
|
||||
|
||||
/* Macros. */
|
||||
|
||||
/*! \brief Macro that sets the USART frame format.
|
||||
*
|
||||
* Sets the frame format, Frame Size, parity mode and number of stop bits.
|
||||
*
|
||||
* \param _usart Pointer to the USART module
|
||||
* \param _charSize The character size. Use USART_CHSIZE_t type.
|
||||
* \param _parityMode The parity Mode. Use USART_PMODE_t type.
|
||||
* \param _twoStopBits Enable two stop bit mode. Use bool type.
|
||||
*/
|
||||
#define USART_Format_Set(_usart, _charSize, _parityMode, _twoStopBits) \
|
||||
(_usart)->CTRLC = (uint8_t) _charSize | _parityMode | \
|
||||
(_twoStopBits ? USART_SBMODE_bm : 0)
|
||||
|
||||
|
||||
/*! \brief Set USART baud rate.
|
||||
*
|
||||
* Sets the USART's baud rate register.
|
||||
*
|
||||
* UBRR_Value : Value written to UBRR
|
||||
* ScaleFactor : Time Base Generator Scale Factor
|
||||
*
|
||||
* Equation for calculation of BSEL value in asynchronous normal speed mode:
|
||||
* If ScaleFactor >= 0
|
||||
* BSEL = ((I/O clock frequency)/(2^(ScaleFactor)*16*Baudrate))-1
|
||||
* If ScaleFactor < 0
|
||||
* BSEL = (1/(2^(ScaleFactor)*16))*(((I/O clock frequency)/Baudrate)-1)
|
||||
*
|
||||
* \note See XMEGA manual for equations for calculation of BSEL value in other
|
||||
* modes.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _bselValue Value to write to BSEL part of Baud control register.
|
||||
* Use uint16_t type.
|
||||
* \param _bScaleFactor USART baud rate scale factor.
|
||||
* Use uint8_t type
|
||||
*/
|
||||
#define USART_Baudrate_Set(_usart, _bselValue, _bScaleFactor) \
|
||||
(_usart)->BAUDCTRLA =(uint8_t)_bselValue; \
|
||||
(_usart)->BAUDCTRLB =(_bScaleFactor << USART_BSCALE0_bp)|(_bselValue >> 8)
|
||||
|
||||
|
||||
/*! \brief Enable USART receiver.
|
||||
*
|
||||
* \param _usart Pointer to the USART module
|
||||
*/
|
||||
#define USART_Rx_Enable(_usart) ((_usart)->CTRLB |= USART_RXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Disable USART receiver.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
*/
|
||||
#define USART_Rx_Disable(_usart) ((_usart)->CTRLB &= ~USART_RXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Enable USART transmitter.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
*/
|
||||
#define USART_Tx_Enable(_usart) ((_usart)->CTRLB |= USART_TXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Disable USART transmitter.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
*/
|
||||
#define USART_Tx_Disable(_usart) ((_usart)->CTRLB &= ~USART_TXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Set USART RXD interrupt level.
|
||||
*
|
||||
* Sets the interrupt level on RX Complete interrupt.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _rxdIntLevel Interrupt level of the RXD interrupt.
|
||||
* Use USART_RXCINTLVL_t type.
|
||||
*/
|
||||
#define USART_RxdInterruptLevel_Set(_usart, _rxdIntLevel) \
|
||||
((_usart)->CTRLA = ((_usart)->CTRLA & ~USART_RXCINTLVL_gm) | _rxdIntLevel)
|
||||
|
||||
|
||||
/*! \brief Set USART TXD interrupt level.
|
||||
*
|
||||
* Sets the interrupt level on TX Complete interrupt.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _txdIntLevel Interrupt level of the TXD interrupt.
|
||||
* Use USART_TXCINTLVL_t type.
|
||||
*/
|
||||
#define USART_TxdInterruptLevel_Set(_usart, _txdIntLevel) \
|
||||
(_usart)->CTRLA = ((_usart)->CTRLA & ~USART_TXCINTLVL_gm) | _txdIntLevel
|
||||
|
||||
|
||||
|
||||
/*! \brief Set USART DRE interrupt level.
|
||||
*
|
||||
* Sets the interrupt level on Data Register interrupt.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _dreIntLevel Interrupt level of the DRE interrupt.
|
||||
* Use USART_DREINTLVL_t type.
|
||||
*/
|
||||
#define USART_DreInterruptLevel_Set(_usart, _dreIntLevel) \
|
||||
(_usart)->CTRLA = ((_usart)->CTRLA & ~USART_DREINTLVL_gm) | _dreIntLevel
|
||||
|
||||
|
||||
/*! \brief Set the mode the USART run in.
|
||||
*
|
||||
* Set the mode the USART run in. The default mode is asynchronous mode.
|
||||
*
|
||||
* \param _usart Pointer to the USART module register section.
|
||||
* \param _usartMode Selects the USART mode. Use USART_CMODE_t type.
|
||||
*
|
||||
* USART modes:
|
||||
* - 0x0 : Asynchronous mode.
|
||||
* - 0x1 : Synchronous mode.
|
||||
* - 0x2 : IrDA mode.
|
||||
* - 0x3 : Master SPI mode.
|
||||
*/
|
||||
#define USART_SetMode(_usart, _usartMode) \
|
||||
((_usart)->CTRLC = ((_usart)->CTRLC & (~USART_CMODE_gm)) | _usartMode)
|
||||
|
||||
|
||||
|
||||
/*! \brief Check if data register empty flag is set.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
*/
|
||||
#define USART_IsTXDataRegisterEmpty(_usart) (((_usart)->STATUS & USART_DREIF_bm) != 0)
|
||||
|
||||
|
||||
|
||||
/*! \brief Put data (5-8 bit character).
|
||||
*
|
||||
* Use the macro USART_IsTXDataRegisterEmpty before using this function to
|
||||
* put data to the TX register.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
* \param _data The data to send.
|
||||
*/
|
||||
#define USART_PutChar(_usart, _data) ((_usart)->DATA = _data)
|
||||
|
||||
|
||||
|
||||
/*! \brief Checks if the RX complete interrupt flag is set.
|
||||
*
|
||||
* Checks if the RX complete interrupt flag is set.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
*/
|
||||
#define USART_IsRXComplete(_usart) (((_usart)->STATUS & USART_RXCIF_bm) != 0)
|
||||
|
||||
|
||||
|
||||
|
||||
/*! \brief Get received data (5-8 bit character).
|
||||
*
|
||||
* This macro reads out the RX register.
|
||||
* Use the macro USART_RX_Complete to check if anything is received.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
*
|
||||
* \retval Received data.
|
||||
*/
|
||||
#define USART_GetChar(_usart) ((_usart)->DATA)
|
||||
|
||||
|
||||
/* Functions for interrupt driven driver. */
|
||||
void USART_InterruptDriver_Initialize(USART_data_t * usart_data,
|
||||
USART_t * usart,
|
||||
USART_DREINTLVL_t dreIntLevel );
|
||||
|
||||
void USART_InterruptDriver_DreInterruptLevel_Set(USART_data_t * usart_data,
|
||||
USART_DREINTLVL_t dreIntLevel);
|
||||
|
||||
bool USART_TXBuffer_FreeSpace(USART_data_t * usart_data);
|
||||
bool USART_TXBuffer_PutByte(USART_data_t * usart_data, uint8_t data);
|
||||
bool USART_RXBufferData_Available(USART_data_t * usart_data);
|
||||
uint8_t USART_RXBuffer_GetByte(USART_data_t * usart_data);
|
||||
bool USART_RXComplete(USART_data_t * usart_data);
|
||||
void USART_DataRegEmpty(USART_data_t * usart_data);
|
||||
|
||||
/* Functions for polled driver. */
|
||||
void USART_NineBits_PutChar(USART_t * usart, uint16_t data);
|
||||
uint16_t USART_NineBits_GetChar(USART_t * usart);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,3 @@
|
||||
Firmware for all final boards should go here.
|
||||
|
||||
All firmware developed using Atmel Studio 6.2.
|
||||
@@ -0,0 +1,71 @@
|
||||
DriveControl.d DriveControl.o: .././DriveControl.cpp \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h \
|
||||
.././Sabertooth.h .././usart_driver.h .././avr_compiler.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
|
||||
.././Misc.h
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
.././Sabertooth.h:
|
||||
|
||||
.././usart_driver.h:
|
||||
|
||||
.././avr_compiler.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
|
||||
.././Misc.h:
|
||||
@@ -0,0 +1 @@
|
||||
:00000001FF
|
||||
Binary file not shown.
@@ -0,0 +1,129 @@
|
||||
:100000000C94B6000C94D3000C94D3000C94D30041
|
||||
:100010000C94D3000C94D3000C94D3000C94D30014
|
||||
:100020000C94D3000C94D3000C94D3000C94D30004
|
||||
:100030000C94D3000C94D3000C9464020C94D30061
|
||||
:100040000C94D3000C94D3000C94D3000C94D300E4
|
||||
:100050000C94D3000C94D3000C94D3000C94D300D4
|
||||
:100060000C94D3000C9418020C943E020C94D30010
|
||||
:100070000C94D3000C94D3000C94D3000C94D300B4
|
||||
:100080000C94D3000C94D3000C94D3000C94D300A4
|
||||
:100090000C94D3000C94D3000C94D3000C94D30094
|
||||
:1000A0000C94D3000C94D3000C94D3000C94D30084
|
||||
:1000B0000C94D3000C94D3000C94D3000C94D30074
|
||||
:1000C0000C94D3000C94D3000C94D3000C94D30064
|
||||
:1000D0000C94D3000C94D3000C94D3000C94D30054
|
||||
:1000E0000C94D3000C94D3000C94D3000C94D30044
|
||||
:1000F0000C94D3000C94D3000C94D3000C94D30034
|
||||
:100100000C94D3000C94D3000C94D3000C94D30023
|
||||
:100110000C94D3000C94D3000C94D3000C94D30013
|
||||
:100120000C94D3000C94D3000C94D3000C94D30003
|
||||
:100130000C94D3000C9481020C94D3000C94D30043
|
||||
:100140000C94D3000C94D3000C94D3000C94D300E3
|
||||
:100150000C94D3000C94D3000C94D3000C94D300D3
|
||||
:100160000C94D3000C94D3000C94D30011241FBE24
|
||||
:10017000CFEFCDBFDFE2DEBF10E2A0E0B0E2E0EF04
|
||||
:10018000F7E002C005900D92A031B107D9F720E247
|
||||
:10019000A0E1B0E201C01D92AE32B207E1F70E94C9
|
||||
:1001A000D5000C94F6030C940000CF93DF93CDB7E9
|
||||
:1001B000DEB76497CDBFDEBF0E94AE02E0E4F6E09A
|
||||
:1001C00088EE818384E0828380E2E0E0F6E082834F
|
||||
:1001D00088E0E0E8F6E081830E94D1022FEF83ED12
|
||||
:1001E00090E3215080409040E1F700C0000040E6DD
|
||||
:1001F00056E060EA79E0CE0141960E947803E0E0A3
|
||||
:10020000F8E037E03083118289E09DE386A397A36D
|
||||
:1002100021E02683E0E0F9E03083118282E19AE771
|
||||
:1002200086A397A32683789480E1E0E0F0E2DE01E4
|
||||
:10023000119601900D928A95E1F7B12C912C00EA6C
|
||||
:1002400018E00F2EF2E78F2EF02D0F2EFBE22F2E4F
|
||||
:10025000F0E23F2EF02D0F2EFAE24F2EF0E25F2E4D
|
||||
:10026000F02D0F2EF9E26F2EF0E27F2EF02D0F2EE3
|
||||
:10027000E12CF6E0FF2EF02D0F2EF0E4CF2EF6E06D
|
||||
:10028000DF2EF02D6894AA24A7F8BB2021F0A1E06E
|
||||
:10029000BA16F1F1B8C09981992361F0FE01329646
|
||||
:1002A000D80111968C91119785FFFACF9C9391916B
|
||||
:1002B0009111F6CFBFEFE3EDF0E3B150E040F04035
|
||||
:1002C000E1F700C0000089E190E20E94B3038823B7
|
||||
:1002D00071F089E190E20E94BB03823741F489E129
|
||||
:1002E00090E20E940B03D8018C92BB24B3948091BE
|
||||
:1002F000142090911520A0911620B0911720809382
|
||||
:10030000102090931120A0931220B09313207BC053
|
||||
:1003100089E190E20E94B303882351F089E190E2E1
|
||||
:100320000E94BB03E92DF0E0E85DFF4D80839394CC
|
||||
:10033000B6E09B123BC089E190E20E940B038091E2
|
||||
:1003400018208823B1F0ECE2F0E29080D1014C91CA
|
||||
:10035000F2016081D3018C910E94F60298120FC0C5
|
||||
:10036000F1014081D2016C91CE0141960E943A0385
|
||||
:1003700006C04FE76FE7CE0141960E943A0340E086
|
||||
:1003800060911820C8010E94F90280911420909178
|
||||
:100390001520A0911620B0911720809310209093E3
|
||||
:1003A0001120A0931220B0931320912C809114203F
|
||||
:1003B00090911520A0911620B09117204091102007
|
||||
:1003C000509111206091122070911320841B950B85
|
||||
:1003D000A60BB70B4597A105B105A8F0CE01419634
|
||||
:1003E0000E9473038091142090911520A0911620F3
|
||||
:1003F000B09117208093102090931120A093122089
|
||||
:10040000B0931320B12CF701808585FF07C0D6017A
|
||||
:100410001696AC9281E08093182037CFF701808543
|
||||
:1004200085FD33CFD6011596AC92109218202DCFB2
|
||||
:100430001F920F920FB60F9211242F933F934F9359
|
||||
:100440005F936F937F938F939F93AF93BF93EF933C
|
||||
:10045000FF9389E190E20E94C703FF91EF91BF9162
|
||||
:10046000AF919F918F917F916F915F914F913F914C
|
||||
:100470002F910F900FBE0F901F9018951F920F9203
|
||||
:100480000FB60F9211242F933F934F935F936F9367
|
||||
:100490007F938F939F93AF93BF93EF93FF9389E1E4
|
||||
:1004A00090E20E94DC03FF91EF91BF91AF919F9189
|
||||
:1004B0008F917F916F915F914F913F912F910F900D
|
||||
:1004C0000FBE0F901F9018951F920F920FB60F92AC
|
||||
:1004D00011248F93EF93FF9380911820882329F0A4
|
||||
:1004E00088E0E0E8F6E0878304C088E0E0E8F6E032
|
||||
:1004F0008583FF91EF918F910F900FBE0F901F900A
|
||||
:1005000018951F920F920FB60F9211248F939F93FD
|
||||
:10051000AF93BF93EF93FF9380E2E0E4F6E087832D
|
||||
:100520008091142090911520A0911620B091172051
|
||||
:100530000196A11DB11D8093142090931520A093C6
|
||||
:100540001620B0931720FF91EF91BF91AF919F912B
|
||||
:100550008F910F900FBE0F901F90189588ED84BF5C
|
||||
:1005600082E080935000E0E5F0E0818181FFFDCFE3
|
||||
:1005700088ED84BF91E09093400084BFE0E5F0E017
|
||||
:10058000808184608083818182FFFDCFE0E5F0E09F
|
||||
:1005900086818D7F8683E0E6F0E0808181608083C4
|
||||
:1005A000089541E060EA78E089E190E20E94AA03C0
|
||||
:1005B000E0911920F0911A2083E0858383818F7C5C
|
||||
:1005C00080618383A0EAB8E08FEC16968C9316972F
|
||||
:1005D00017961C92848180618483848188608483DF
|
||||
:1005E000E0EAF0E0828181608283089564278627B3
|
||||
:1005F0000895FC01818185FFFDCF8FEF808381818C
|
||||
:1006000085FFFDCF440F642B6083818185FFFDCF83
|
||||
:100610008FEF80830895CF93DF93EC0103C0CE0169
|
||||
:100620000E94BB03CE010E94B3038111F8CFDF917A
|
||||
:10063000CF910895DC01ED91FC911197818185FFA7
|
||||
:10064000FDCF80E88083ED91FC911197818185FF3A
|
||||
:10065000FDCF6083ED91FC911197818185FFFDCFE6
|
||||
:100660004083ED91FC91818185FFFDCF640F6F7711
|
||||
:10067000608308950F931F93CF93DF93EC01842F32
|
||||
:100680006F3761F06F3720F44FE7461B61E00BC016
|
||||
:1006900066233CF441E8460F60E005C040E060E0BE
|
||||
:1006A00002C040E060E08F3761F08F3720F40FE741
|
||||
:1006B000081B15E00BC088233CF401E8080F14E088
|
||||
:1006C00005C000E014E002C000E014E0CE010E948A
|
||||
:1006D0001A03402F612FCE010E941A03DF91CF91A0
|
||||
:1006E0001F910F9108954FE76FE70E943A03089515
|
||||
:1006F000CF93DF93EC01688379834A835B8388E03F
|
||||
:10070000FA018183E881F98183E08583E881F981B9
|
||||
:100710008FEC8683E881F9811782E881F9818481F1
|
||||
:1007200088608483FFEF23EC89E0F1502040804013
|
||||
:10073000E1F700C00000E881F9818AEA808344E1A2
|
||||
:100740006EE0CE010E941A03CE010E947303DF9176
|
||||
:10075000CF910895FC0160837183428314861386D0
|
||||
:10076000168615860895FC012385948581E029135A
|
||||
:1007700001C080E00895FC018485DF01A80FB11D50
|
||||
:1007800013968C9194859F5F937094870895FC01D4
|
||||
:1007900083858F5F83709485A081B1812C918917A7
|
||||
:1007A00049F09385DF01A90FB11D13962C93838720
|
||||
:1007B00081E0089580E00895FC0186859585981371
|
||||
:1007C00007C00190F081E02D83818C7F83830895A1
|
||||
:1007D0008685DF01A80FB11D17968C91A081B1818C
|
||||
:1007E0008C9386858F5F837086870895F894FFCFFA
|
||||
:1007F00049443A204D61696E44726976650D0A007C
|
||||
:00000001FF
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,634 @@
|
||||
Archive member included because of file (symbol)
|
||||
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2/crtx32d4.o (exit)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
DriveControl.o (__do_copy_data)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
DriveControl.o (__do_clear_bss)
|
||||
|
||||
Discarded input sections
|
||||
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2/crtx32d4.o
|
||||
.text 0x00000000 0x0 DriveControl.o
|
||||
.bss 0x00000000 0x0 DriveControl.o
|
||||
.data.sendArray
|
||||
0x00000000 0x4 DriveControl.o
|
||||
.text 0x00000000 0x0 Misc.o
|
||||
.bss 0x00000000 0x0 Misc.o
|
||||
.text 0x00000000 0x0 Sabertooth.o
|
||||
.bss 0x00000000 0x0 Sabertooth.o
|
||||
.text._ZN10Sabertooth13SaberChecksumEhh
|
||||
0x00000000 0x8 Sabertooth.o
|
||||
.text._ZN10Sabertooth9DriveTestEv
|
||||
0x00000000 0xc6 Sabertooth.o
|
||||
.text._ZN10Sabertooth10ResetSaberEv
|
||||
0x00000000 0x14 Sabertooth.o
|
||||
.text 0x00000000 0x0 usart_driver.o
|
||||
.bss 0x00000000 0x0 usart_driver.o
|
||||
.text.USART_InterruptDriver_DreInterruptLevel_Set
|
||||
0x00000000 0x6 usart_driver.o
|
||||
.text.USART_TXBuffer_FreeSpace
|
||||
0x00000000 0x14 usart_driver.o
|
||||
.text.USART_TXBuffer_PutByte
|
||||
0x00000000 0x38 usart_driver.o
|
||||
.text.USART_NineBits_PutChar
|
||||
0x00000000 0x18 usart_driver.o
|
||||
.text.USART_NineBits_GetChar
|
||||
0x00000000 0x18 usart_driver.o
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
|
||||
Memory Configuration
|
||||
|
||||
Name Origin Length Attributes
|
||||
text 0x00000000 0x00100000 xr
|
||||
data 0x00802000 0x0000ffa0 rw !x
|
||||
eeprom 0x00810000 0x00010000 rw !x
|
||||
fuse 0x00820000 0x00000400 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
|
||||
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2/crtx32d4.o
|
||||
LOAD DriveControl.o
|
||||
LOAD Misc.o
|
||||
LOAD Sabertooth.o
|
||||
LOAD usart_driver.o
|
||||
START GROUP
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2\libm.a
|
||||
END GROUP
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2\libm.a
|
||||
START GROUP
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2\libm.a
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2\libc.a
|
||||
END GROUP
|
||||
|
||||
.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 0x7f0
|
||||
*(.vectors)
|
||||
.vectors 0x00000000 0x16c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2/crtx32d4.o
|
||||
0x00000000 __vector_default
|
||||
0x00000000 __vectors
|
||||
*(.vectors)
|
||||
*(.progmem.gcc*)
|
||||
0x0000016c . = ALIGN (0x2)
|
||||
0x0000016c __trampolines_start = .
|
||||
*(.trampolines)
|
||||
.trampolines 0x0000016c 0x0 linker stubs
|
||||
*(.trampolines*)
|
||||
0x0000016c __trampolines_end = .
|
||||
*(.progmem*)
|
||||
0x0000016c . = ALIGN (0x2)
|
||||
*(.jumptables)
|
||||
*(.jumptables*)
|
||||
*(.lowtext)
|
||||
*(.lowtext*)
|
||||
0x0000016c __ctors_start = .
|
||||
*(.ctors)
|
||||
0x0000016c __ctors_end = .
|
||||
0x0000016c __dtors_start = .
|
||||
*(.dtors)
|
||||
0x0000016c __dtors_end = .
|
||||
SORT(*)(.ctors)
|
||||
SORT(*)(.dtors)
|
||||
*(.init0)
|
||||
.init0 0x0000016c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2/crtx32d4.o
|
||||
0x0000016c __init
|
||||
*(.init0)
|
||||
*(.init1)
|
||||
*(.init1)
|
||||
*(.init2)
|
||||
.init2 0x0000016c 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2/crtx32d4.o
|
||||
*(.init2)
|
||||
*(.init3)
|
||||
*(.init3)
|
||||
*(.init4)
|
||||
.init4 0x00000178 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
0x00000178 __do_copy_data
|
||||
.init4 0x0000018e 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
0x0000018e __do_clear_bss
|
||||
*(.init4)
|
||||
*(.init5)
|
||||
*(.init5)
|
||||
*(.init6)
|
||||
*(.init6)
|
||||
*(.init7)
|
||||
*(.init7)
|
||||
*(.init8)
|
||||
*(.init8)
|
||||
*(.init9)
|
||||
.init9 0x0000019e 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2/crtx32d4.o
|
||||
*(.init9)
|
||||
*(.text)
|
||||
.text 0x000001a6 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2/crtx32d4.o
|
||||
0x000001a6 __vector_38
|
||||
0x000001a6 __vector_22
|
||||
0x000001a6 __vector_63
|
||||
0x000001a6 __vector_28
|
||||
0x000001a6 __vector_67
|
||||
0x000001a6 __vector_1
|
||||
0x000001a6 __vector_32
|
||||
0x000001a6 __vector_75
|
||||
0x000001a6 __vector_71
|
||||
0x000001a6 __vector_34
|
||||
0x000001a6 __vector_62
|
||||
0x000001a6 __vector_24
|
||||
0x000001a6 __vector_12
|
||||
0x000001a6 __vector_55
|
||||
0x000001a6 __vector_69
|
||||
0x000001a6 __vector_81
|
||||
0x000001a6 __vector_90
|
||||
0x000001a6 __vector_46
|
||||
0x000001a6 __bad_interrupt
|
||||
0x000001a6 __vector_72
|
||||
0x000001a6 __vector_6
|
||||
0x000001a6 __vector_31
|
||||
0x000001a6 __vector_35
|
||||
0x000001a6 __vector_78
|
||||
0x000001a6 __vector_74
|
||||
0x000001a6 __vector_39
|
||||
0x000001a6 __vector_3
|
||||
0x000001a6 __vector_23
|
||||
0x000001a6 __vector_68
|
||||
0x000001a6 __vector_30
|
||||
0x000001a6 __vector_73
|
||||
0x000001a6 __vector_45
|
||||
0x000001a6 __vector_61
|
||||
0x000001a6 __vector_11
|
||||
0x000001a6 __vector_54
|
||||
0x000001a6 __vector_13
|
||||
0x000001a6 __vector_17
|
||||
0x000001a6 __vector_19
|
||||
0x000001a6 __vector_56
|
||||
0x000001a6 __vector_7
|
||||
0x000001a6 __vector_49
|
||||
0x000001a6 __vector_41
|
||||
0x000001a6 __vector_86
|
||||
0x000001a6 __vector_64
|
||||
0x000001a6 __vector_88
|
||||
0x000001a6 __vector_43
|
||||
0x000001a6 __vector_27
|
||||
0x000001a6 __vector_5
|
||||
0x000001a6 __vector_33
|
||||
0x000001a6 __vector_76
|
||||
0x000001a6 __vector_47
|
||||
0x000001a6 __vector_52
|
||||
0x000001a6 __vector_37
|
||||
0x000001a6 __vector_89
|
||||
0x000001a6 __vector_4
|
||||
0x000001a6 __vector_44
|
||||
0x000001a6 __vector_82
|
||||
0x000001a6 __vector_51
|
||||
0x000001a6 __vector_9
|
||||
0x000001a6 __vector_2
|
||||
0x000001a6 __vector_21
|
||||
0x000001a6 __vector_15
|
||||
0x000001a6 __vector_66
|
||||
0x000001a6 __vector_36
|
||||
0x000001a6 __vector_79
|
||||
0x000001a6 __vector_58
|
||||
0x000001a6 __vector_70
|
||||
0x000001a6 __vector_83
|
||||
0x000001a6 __vector_29
|
||||
0x000001a6 __vector_60
|
||||
0x000001a6 __vector_40
|
||||
0x000001a6 __vector_85
|
||||
0x000001a6 __vector_8
|
||||
0x000001a6 __vector_48
|
||||
0x000001a6 __vector_80
|
||||
0x000001a6 __vector_84
|
||||
0x000001a6 __vector_57
|
||||
0x000001a6 __vector_53
|
||||
0x000001a6 __vector_10
|
||||
0x000001a6 __vector_50
|
||||
0x000001a6 __vector_16
|
||||
0x000001a6 __vector_59
|
||||
0x000001a6 __vector_18
|
||||
0x000001a6 __vector_20
|
||||
0x000001a6 __vector_42
|
||||
0x000001a6 __vector_87
|
||||
0x000001a6 __vector_65
|
||||
0x000001aa . = ALIGN (0x2)
|
||||
*(.text.*)
|
||||
.text.main 0x000001aa 0x286 DriveControl.o
|
||||
0x000001aa main
|
||||
.text.__vector_25
|
||||
0x00000430 0x4c DriveControl.o
|
||||
0x00000430 __vector_25
|
||||
.text.__vector_26
|
||||
0x0000047c 0x4c DriveControl.o
|
||||
0x0000047c __vector_26
|
||||
.text.__vector_14
|
||||
0x000004c8 0x3a DriveControl.o
|
||||
0x000004c8 __vector_14
|
||||
.text.__vector_77
|
||||
0x00000502 0x5a DriveControl.o
|
||||
0x00000502 __vector_77
|
||||
.text._Z23SetXMEGA32MhzCalibratedv
|
||||
0x0000055c 0x46 Misc.o
|
||||
0x0000055c _Z23SetXMEGA32MhzCalibratedv
|
||||
.text._Z12SetupPCCommsv
|
||||
0x000005a2 0x4a Misc.o
|
||||
0x000005a2 _Z12SetupPCCommsv
|
||||
.text._Z14PCComsChecksumhhh
|
||||
0x000005ec 0x6 Misc.o
|
||||
0x000005ec _Z14PCComsChecksumhhh
|
||||
.text._Z22SendDriveControlStatusP12USART_structbb
|
||||
0x000005f2 0x24 Misc.o
|
||||
0x000005f2 _Z22SendDriveControlStatusP12USART_structbb
|
||||
.text._Z17FlushSerialBufferP16Usart_and_buffer
|
||||
0x00000616 0x1e Misc.o
|
||||
0x00000616 _Z17FlushSerialBufferP16Usart_and_buffer
|
||||
.text._ZN10Sabertooth12SendDriveCmdEcc
|
||||
0x00000634 0x40 Sabertooth.o
|
||||
0x00000634 _ZN10Sabertooth12SendDriveCmdEcc
|
||||
.text._ZN10Sabertooth11ParsePacketEhh
|
||||
0x00000674 0x72 Sabertooth.o
|
||||
0x00000674 _ZN10Sabertooth11ParsePacketEhh
|
||||
.text._ZN10Sabertooth7StopAllEv
|
||||
0x000006e6 0xa Sabertooth.o
|
||||
0x000006e6 _ZN10Sabertooth7StopAllEv
|
||||
.text._ZN10SabertoothC2EP12USART_structP11PORT_struct
|
||||
0x000006f0 0x64 Sabertooth.o
|
||||
0x000006f0 _ZN10SabertoothC1EP12USART_structP11PORT_struct
|
||||
0x000006f0 _ZN10SabertoothC2EP12USART_structP11PORT_struct
|
||||
.text.USART_InterruptDriver_Initialize
|
||||
0x00000754 0x12 usart_driver.o
|
||||
0x00000754 USART_InterruptDriver_Initialize
|
||||
.text.USART_RXBufferData_Available
|
||||
0x00000766 0x10 usart_driver.o
|
||||
0x00000766 USART_RXBufferData_Available
|
||||
.text.USART_RXBuffer_GetByte
|
||||
0x00000776 0x18 usart_driver.o
|
||||
0x00000776 USART_RXBuffer_GetByte
|
||||
.text.USART_RXComplete
|
||||
0x0000078e 0x2a usart_driver.o
|
||||
0x0000078e USART_RXComplete
|
||||
.text.USART_DataRegEmpty
|
||||
0x000007b8 0x34 usart_driver.o
|
||||
0x000007b8 USART_DataRegEmpty
|
||||
0x000007ec . = ALIGN (0x2)
|
||||
*(.fini9)
|
||||
.fini9 0x000007ec 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
0x000007ec _exit
|
||||
0x000007ec exit
|
||||
*(.fini9)
|
||||
*(.fini8)
|
||||
*(.fini8)
|
||||
*(.fini7)
|
||||
*(.fini7)
|
||||
*(.fini6)
|
||||
*(.fini6)
|
||||
*(.fini5)
|
||||
*(.fini5)
|
||||
*(.fini4)
|
||||
*(.fini4)
|
||||
*(.fini3)
|
||||
*(.fini3)
|
||||
*(.fini2)
|
||||
*(.fini2)
|
||||
*(.fini1)
|
||||
*(.fini1)
|
||||
*(.fini0)
|
||||
.fini0 0x000007ec 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
*(.fini0)
|
||||
0x000007f0 _etext = .
|
||||
|
||||
.data 0x00802000 0x10 load address 0x000007f0
|
||||
0x00802000 PROVIDE (__data_start, .)
|
||||
*(.data)
|
||||
.data 0x00802000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avrxmega2/crtx32d4.o
|
||||
.data 0x00802000 0x0 DriveControl.o
|
||||
.data 0x00802000 0x0 Misc.o
|
||||
.data 0x00802000 0x0 Sabertooth.o
|
||||
.data 0x00802000 0x0 usart_driver.o
|
||||
.data 0x00802000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_exit.o)
|
||||
.data 0x00802000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_copy_data.o)
|
||||
.data 0x00802000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avrxmega2\libgcc.a(_clear_bss.o)
|
||||
*(.data*)
|
||||
*(.rodata)
|
||||
*(.rodata*)
|
||||
.rodata.str1.1
|
||||
0x00802000 0x10 DriveControl.o
|
||||
*(.gnu.linkonce.d*)
|
||||
0x00802010 . = ALIGN (0x2)
|
||||
0x00802010 _edata = .
|
||||
0x00802010 PROVIDE (__data_end, .)
|
||||
|
||||
.bss 0x00802010 0x1e
|
||||
0x00802010 PROVIDE (__bss_start, .)
|
||||
*(.bss)
|
||||
*(.bss*)
|
||||
.bss.TimePrevious
|
||||
0x00802010 0x4 DriveControl.o
|
||||
0x00802010 TimePrevious
|
||||
.bss.TimeSinceInit
|
||||
0x00802014 0x4 DriveControl.o
|
||||
0x00802014 TimeSinceInit
|
||||
.bss.IsRoving 0x00802018 0x1 DriveControl.o
|
||||
0x00802018 IsRoving
|
||||
.bss.USART_PC_Data
|
||||
0x00802019 0xf DriveControl.o
|
||||
0x00802019 USART_PC_Data
|
||||
.bss.receiveArray
|
||||
0x00802028 0x6 DriveControl.o
|
||||
0x00802028 receiveArray
|
||||
*(COMMON)
|
||||
0x0080202e PROVIDE (__bss_end, .)
|
||||
0x000007f0 __data_load_start = LOADADDR (.data)
|
||||
0x00000800 __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||
|
||||
.noinit 0x0080202e 0x0
|
||||
0x0080202e PROVIDE (__noinit_start, .)
|
||||
*(.noinit*)
|
||||
0x0080202e PROVIDE (__noinit_end, .)
|
||||
0x0080202e _end = .
|
||||
0x0080202e PROVIDE (__heap_start, .)
|
||||
|
||||
.eeprom 0x00810000 0x0
|
||||
*(.eeprom*)
|
||||
0x00810000 __eeprom_end = .
|
||||
|
||||
.fuse
|
||||
*(.fuse)
|
||||
*(.lfuse)
|
||||
*(.hfuse)
|
||||
*(.efuse)
|
||||
|
||||
.lock
|
||||
*(.lock*)
|
||||
|
||||
.signature
|
||||
*(.signature*)
|
||||
|
||||
.user_signatures
|
||||
*(.user_signatures*)
|
||||
|
||||
.stab
|
||||
*(.stab)
|
||||
|
||||
.stabstr
|
||||
*(.stabstr)
|
||||
|
||||
.stab.excl
|
||||
*(.stab.excl)
|
||||
|
||||
.stab.exclstr
|
||||
*(.stab.exclstr)
|
||||
|
||||
.stab.index
|
||||
*(.stab.index)
|
||||
|
||||
.stab.indexstr
|
||||
*(.stab.indexstr)
|
||||
|
||||
.comment 0x00000000 0x30
|
||||
*(.comment)
|
||||
.comment 0x00000000 0x30 DriveControl.o
|
||||
0x31 (size before relaxing)
|
||||
.comment 0x00000000 0x31 Misc.o
|
||||
.comment 0x00000000 0x31 Sabertooth.o
|
||||
.comment 0x00000000 0x31 usart_driver.o
|
||||
|
||||
.note.gnu.build-id
|
||||
*(.note.gnu.build-id)
|
||||
|
||||
.debug
|
||||
*(.debug)
|
||||
|
||||
.line
|
||||
*(.line)
|
||||
|
||||
.debug_srcinfo
|
||||
*(.debug_srcinfo)
|
||||
|
||||
.debug_sfnames
|
||||
*(.debug_sfnames)
|
||||
|
||||
.debug_aranges 0x00000000 0x138
|
||||
*(.debug_aranges)
|
||||
.debug_aranges
|
||||
0x00000000 0x40 DriveControl.o
|
||||
.debug_aranges
|
||||
0x00000040 0x40 Misc.o
|
||||
.debug_aranges
|
||||
0x00000080 0x50 Sabertooth.o
|
||||
.debug_aranges
|
||||
0x000000d0 0x68 usart_driver.o
|
||||
|
||||
.debug_pubnames
|
||||
*(.debug_pubnames)
|
||||
|
||||
.debug_info 0x00000000 0x2608
|
||||
*(.debug_info .gnu.linkonce.wi.*)
|
||||
.debug_info 0x00000000 0x1087 DriveControl.o
|
||||
.debug_info 0x00001087 0x621 Misc.o
|
||||
.debug_info 0x000016a8 0x9da Sabertooth.o
|
||||
.debug_info 0x00002082 0x586 usart_driver.o
|
||||
|
||||
.debug_abbrev 0x00000000 0xa6e
|
||||
*(.debug_abbrev)
|
||||
.debug_abbrev 0x00000000 0x3a9 DriveControl.o
|
||||
.debug_abbrev 0x000003a9 0x1d5 Misc.o
|
||||
.debug_abbrev 0x0000057e 0x2ed Sabertooth.o
|
||||
.debug_abbrev 0x0000086b 0x203 usart_driver.o
|
||||
|
||||
.debug_line 0x00000000 0x91e
|
||||
*(.debug_line .debug_line.* .debug_line_end)
|
||||
.debug_line 0x00000000 0x283 DriveControl.o
|
||||
.debug_line 0x00000283 0x1b1 Misc.o
|
||||
.debug_line 0x00000434 0x2eb Sabertooth.o
|
||||
.debug_line 0x0000071f 0x1ff usart_driver.o
|
||||
|
||||
.debug_frame 0x00000000 0x330
|
||||
*(.debug_frame)
|
||||
.debug_frame 0x00000000 0x148 DriveControl.o
|
||||
.debug_frame 0x00000148 0x70 Misc.o
|
||||
.debug_frame 0x000001b8 0xb4 Sabertooth.o
|
||||
.debug_frame 0x0000026c 0xc4 usart_driver.o
|
||||
|
||||
.debug_str 0x00000000 0x10d0
|
||||
*(.debug_str)
|
||||
.debug_str 0x00000000 0xbb8 DriveControl.o
|
||||
0xc41 (size before relaxing)
|
||||
.debug_str 0x00000bb8 0x2e2 Misc.o
|
||||
0x73c (size before relaxing)
|
||||
.debug_str 0x00000e9a 0x9c Sabertooth.o
|
||||
0x51f (size before relaxing)
|
||||
.debug_str 0x00000f36 0x19a usart_driver.o
|
||||
0x478 (size before relaxing)
|
||||
|
||||
.debug_loc 0x00000000 0xe3a
|
||||
*(.debug_loc)
|
||||
.debug_loc 0x00000000 0x3ca DriveControl.o
|
||||
.debug_loc 0x000003ca 0x111 Misc.o
|
||||
.debug_loc 0x000004db 0x570 Sabertooth.o
|
||||
.debug_loc 0x00000a4b 0x3ef usart_driver.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 0x00000000 0xf8
|
||||
*(.debug_ranges)
|
||||
.debug_ranges 0x00000000 0x30 DriveControl.o
|
||||
.debug_ranges 0x00000030 0x30 Misc.o
|
||||
.debug_ranges 0x00000060 0x40 Sabertooth.o
|
||||
.debug_ranges 0x000000a0 0x58 usart_driver.o
|
||||
|
||||
.debug_macro
|
||||
*(.debug_macro)
|
||||
OUTPUT(DriveControl.elf elf32-avr)
|
||||
LOAD linker stubs
|
||||
Binary file not shown.
@@ -0,0 +1,130 @@
|
||||
S01400004472697665436F6E74726F6C2E7372656335
|
||||
S11300000C94B6000C94D3000C94D3000C94D3003D
|
||||
S11300100C94D3000C94D3000C94D3000C94D30010
|
||||
S11300200C94D3000C94D3000C94D3000C94D30000
|
||||
S11300300C94D3000C94D3000C9464020C94D3005D
|
||||
S11300400C94D3000C94D3000C94D3000C94D300E0
|
||||
S11300500C94D3000C94D3000C94D3000C94D300D0
|
||||
S11300600C94D3000C9418020C943E020C94D3000C
|
||||
S11300700C94D3000C94D3000C94D3000C94D300B0
|
||||
S11300800C94D3000C94D3000C94D3000C94D300A0
|
||||
S11300900C94D3000C94D3000C94D3000C94D30090
|
||||
S11300A00C94D3000C94D3000C94D3000C94D30080
|
||||
S11300B00C94D3000C94D3000C94D3000C94D30070
|
||||
S11300C00C94D3000C94D3000C94D3000C94D30060
|
||||
S11300D00C94D3000C94D3000C94D3000C94D30050
|
||||
S11300E00C94D3000C94D3000C94D3000C94D30040
|
||||
S11300F00C94D3000C94D3000C94D3000C94D30030
|
||||
S11301000C94D3000C94D3000C94D3000C94D3001F
|
||||
S11301100C94D3000C94D3000C94D3000C94D3000F
|
||||
S11301200C94D3000C94D3000C94D3000C94D300FF
|
||||
S11301300C94D3000C9481020C94D3000C94D3003F
|
||||
S11301400C94D3000C94D3000C94D3000C94D300DF
|
||||
S11301500C94D3000C94D3000C94D3000C94D300CF
|
||||
S11301600C94D3000C94D3000C94D30011241FBE20
|
||||
S1130170CFEFCDBFDFE2DEBF10E2A0E0B0E2E0EF00
|
||||
S1130180F7E002C005900D92A031B107D9F720E243
|
||||
S1130190A0E1B0E201C01D92AE32B207E1F70E94C5
|
||||
S11301A0D5000C94F6030C940000CF93DF93CDB7E5
|
||||
S11301B0DEB76497CDBFDEBF0E94AE02E0E4F6E096
|
||||
S11301C088EE818384E0828380E2E0E0F6E082834B
|
||||
S11301D088E0E0E8F6E081830E94D1022FEF83ED0E
|
||||
S11301E090E3215080409040E1F700C0000040E6D9
|
||||
S11301F056E060EA79E0CE0141960E947803E0E09F
|
||||
S1130200F8E037E03083118289E09DE386A397A369
|
||||
S113021021E02683E0E0F9E03083118282E19AE76D
|
||||
S113022086A397A32683789480E1E0E0F0E2DE01E0
|
||||
S1130230119601900D928A95E1F7B12C912C00EA68
|
||||
S113024018E00F2EF2E78F2EF02D0F2EFBE22F2E4B
|
||||
S1130250F0E23F2EF02D0F2EFAE24F2EF0E25F2E49
|
||||
S1130260F02D0F2EF9E26F2EF0E27F2EF02D0F2EDF
|
||||
S1130270E12CF6E0FF2EF02D0F2EF0E4CF2EF6E069
|
||||
S1130280DF2EF02D6894AA24A7F8BB2021F0A1E06A
|
||||
S1130290BA16F1F1B8C09981992361F0FE01329642
|
||||
S11302A0D80111968C91119785FFFACF9C93919167
|
||||
S11302B09111F6CFBFEFE3EDF0E3B150E040F04031
|
||||
S11302C0E1F700C0000089E190E20E94B3038823B3
|
||||
S11302D071F089E190E20E94BB03823741F489E125
|
||||
S11302E090E20E940B03D8018C92BB24B3948091BA
|
||||
S11302F0142090911520A0911620B091172080937E
|
||||
S1130300102090931120A0931220B09313207BC04F
|
||||
S113031089E190E20E94B303882351F089E190E2DD
|
||||
S11303200E94BB03E92DF0E0E85DFF4D80839394C8
|
||||
S1130330B6E09B123BC089E190E20E940B038091DE
|
||||
S113034018208823B1F0ECE2F0E29080D1014C91C6
|
||||
S1130350F2016081D3018C910E94F60298120FC0C1
|
||||
S1130360F1014081D2016C91CE0141960E943A0381
|
||||
S113037006C04FE76FE7CE0141960E943A0340E082
|
||||
S113038060911820C8010E94F90280911420909174
|
||||
S11303901520A0911620B0911720809310209093DF
|
||||
S11303A01120A0931220B0931320912C809114203B
|
||||
S11303B090911520A0911620B09117204091102003
|
||||
S11303C0509111206091122070911320841B950B81
|
||||
S11303D0A60BB70B4597A105B105A8F0CE01419630
|
||||
S11303E00E9473038091142090911520A0911620EF
|
||||
S11303F0B09117208093102090931120A093122085
|
||||
S1130400B0931320B12CF701808585FF07C0D60176
|
||||
S11304101696AC9281E08093182037CFF70180853F
|
||||
S113042085FD33CFD6011596AC92109218202DCFAE
|
||||
S11304301F920F920FB60F9211242F933F934F9355
|
||||
S11304405F936F937F938F939F93AF93BF93EF9338
|
||||
S1130450FF9389E190E20E94C703FF91EF91BF915E
|
||||
S1130460AF919F918F917F916F915F914F913F9148
|
||||
S11304702F910F900FBE0F901F9018951F920F92FF
|
||||
S11304800FB60F9211242F933F934F935F936F9363
|
||||
S11304907F938F939F93AF93BF93EF93FF9389E1E0
|
||||
S11304A090E20E94DC03FF91EF91BF91AF919F9185
|
||||
S11304B08F917F916F915F914F913F912F910F9009
|
||||
S11304C00FBE0F901F9018951F920F920FB60F92A8
|
||||
S11304D011248F93EF93FF9380911820882329F0A0
|
||||
S11304E088E0E0E8F6E0878304C088E0E0E8F6E02E
|
||||
S11304F08583FF91EF918F910F900FBE0F901F9006
|
||||
S113050018951F920F920FB60F9211248F939F93F9
|
||||
S1130510AF93BF93EF93FF9380E2E0E4F6E0878329
|
||||
S11305208091142090911520A0911620B09117204D
|
||||
S11305300196A11DB11D8093142090931520A093C2
|
||||
S11305401620B0931720FF91EF91BF91AF919F9127
|
||||
S11305508F910F900FBE0F901F90189588ED84BF58
|
||||
S113056082E080935000E0E5F0E0818181FFFDCFDF
|
||||
S113057088ED84BF91E09093400084BFE0E5F0E013
|
||||
S1130580808184608083818182FFFDCFE0E5F0E09B
|
||||
S113059086818D7F8683E0E6F0E0808181608083C0
|
||||
S11305A0089541E060EA78E089E190E20E94AA03BC
|
||||
S11305B0E0911920F0911A2083E0858383818F7C58
|
||||
S11305C080618383A0EAB8E08FEC16968C9316972B
|
||||
S11305D017961C92848180618483848188608483DB
|
||||
S11305E0E0EAF0E0828181608283089564278627AF
|
||||
S11305F00895FC01818185FFFDCF8FEF8083818188
|
||||
S113060085FFFDCF440F642B6083818185FFFDCF7F
|
||||
S11306108FEF80830895CF93DF93EC0103C0CE0165
|
||||
S11306200E94BB03CE010E94B3038111F8CFDF9176
|
||||
S1130630CF910895DC01ED91FC911197818185FFA3
|
||||
S1130640FDCF80E88083ED91FC911197818185FF36
|
||||
S1130650FDCF6083ED91FC911197818185FFFDCFE2
|
||||
S11306604083ED91FC91818185FFFDCF640F6F770D
|
||||
S1130670608308950F931F93CF93DF93EC01842F2E
|
||||
S11306806F3761F06F3720F44FE7461B61E00BC012
|
||||
S113069066233CF441E8460F60E005C040E060E0BA
|
||||
S11306A002C040E060E08F3761F08F3720F40FE73D
|
||||
S11306B0081B15E00BC088233CF401E8080F14E084
|
||||
S11306C005C000E014E002C000E014E0CE010E9486
|
||||
S11306D01A03402F612FCE010E941A03DF91CF919C
|
||||
S11306E01F910F9108954FE76FE70E943A03089511
|
||||
S11306F0CF93DF93EC01688379834A835B8388E03B
|
||||
S1130700FA018183E881F98183E08583E881F981B5
|
||||
S11307108FEC8683E881F9811782E881F9818481ED
|
||||
S113072088608483FFEF23EC89E0F150204080400F
|
||||
S1130730E1F700C00000E881F9818AEA808344E19E
|
||||
S11307406EE0CE010E941A03CE010E947303DF9172
|
||||
S1130750CF910895FC0160837183428314861386CC
|
||||
S1130760168615860895FC012385948581E0291356
|
||||
S113077001C080E00895FC018485DF01A80FB11D4C
|
||||
S113078013968C9194859F5F937094870895FC01D0
|
||||
S113079083858F5F83709485A081B1812C918917A3
|
||||
S11307A049F09385DF01A90FB11D13962C9383871C
|
||||
S11307B081E0089580E00895FC018685958598136D
|
||||
S11307C007C00190F081E02D83818C7F838308959D
|
||||
S11307D08685DF01A80FB11D17968C91A081B18188
|
||||
S11307E08C9386858F5F837086870895F894FFCFF6
|
||||
S11307F049443A204D61696E44726976650D0A0078
|
||||
S9030000FC
|
||||
@@ -0,0 +1,153 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
SHELL := cmd.exe
|
||||
RM := rm -rf
|
||||
|
||||
USER_OBJS :=
|
||||
|
||||
LIBS :=
|
||||
PROJ :=
|
||||
|
||||
O_SRCS :=
|
||||
C_SRCS :=
|
||||
S_SRCS :=
|
||||
S_UPPER_SRCS :=
|
||||
OBJ_SRCS :=
|
||||
ASM_SRCS :=
|
||||
PREPROCESSING_SRCS :=
|
||||
OBJS :=
|
||||
OBJS_AS_ARGS :=
|
||||
C_DEPS :=
|
||||
C_DEPS_AS_ARGS :=
|
||||
EXECUTABLES :=
|
||||
OUTPUT_FILE_PATH :=
|
||||
OUTPUT_FILE_PATH_AS_ARGS :=
|
||||
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
|
||||
QUOTE := "
|
||||
ADDITIONAL_DEPENDENCIES:=
|
||||
OUTPUT_FILE_DEP:=
|
||||
LIB_DEP:=
|
||||
|
||||
# Every subdirectory with source files must be described here
|
||||
SUBDIRS :=
|
||||
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
C_SRCS += \
|
||||
../DriveControl.cpp \
|
||||
../Misc.cpp \
|
||||
../Sabertooth.cpp \
|
||||
../usart_driver.c
|
||||
|
||||
|
||||
PREPROCESSING_SRCS +=
|
||||
|
||||
|
||||
ASM_SRCS +=
|
||||
|
||||
|
||||
OBJS += \
|
||||
DriveControl.o \
|
||||
Misc.o \
|
||||
Sabertooth.o \
|
||||
usart_driver.o
|
||||
|
||||
OBJS_AS_ARGS += \
|
||||
DriveControl.o \
|
||||
Misc.o \
|
||||
Sabertooth.o \
|
||||
usart_driver.o
|
||||
|
||||
C_DEPS += \
|
||||
DriveControl.d \
|
||||
Misc.d \
|
||||
Sabertooth.d \
|
||||
usart_driver.d
|
||||
|
||||
C_DEPS_AS_ARGS += \
|
||||
DriveControl.d \
|
||||
Misc.d \
|
||||
Sabertooth.d \
|
||||
usart_driver.d
|
||||
|
||||
OUTPUT_FILE_PATH +=DriveControl.elf
|
||||
|
||||
OUTPUT_FILE_PATH_AS_ARGS +=DriveControl.elf
|
||||
|
||||
ADDITIONAL_DEPENDENCIES:=
|
||||
|
||||
OUTPUT_FILE_DEP:= ./makedep.mk
|
||||
|
||||
LIB_DEP+=
|
||||
|
||||
# AVR32/GNU C Compiler
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
./%.o: .././%.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR8/GNU C Compiler : 4.8.1
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atxmega32d4 -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
./%.o: .././%.cpp
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR8/GNU C Compiler : 4.8.1
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atxmega32d4 -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
|
||||
|
||||
# AVR32/GNU Preprocessing Assembler
|
||||
|
||||
|
||||
|
||||
# AVR32/GNU Assembler
|
||||
|
||||
|
||||
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifneq ($(strip $(C_DEPS)),)
|
||||
-include $(C_DEPS)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
|
||||
# All Target
|
||||
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
|
||||
|
||||
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP)
|
||||
@echo Building target: $@
|
||||
@echo Invoking: AVR8/GNU Linker : 4.8.1
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="DriveControl.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atxmega32d4
|
||||
@echo Finished building target: $@
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "DriveControl.elf" "DriveControl.hex"
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "DriveControl.elf" "DriveControl.eep" || exit 0
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "DriveControl.elf" > "DriveControl.lss"
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "DriveControl.elf" "DriveControl.srec"
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-size.exe" "DriveControl.elf"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Other Targets
|
||||
clean:
|
||||
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
|
||||
-$(RM) $(C_DEPS_AS_ARGS)
|
||||
rm -rf "DriveControl.elf" "DriveControl.a" "DriveControl.hex" "DriveControl.lss" "DriveControl.eep" "DriveControl.map" "DriveControl.srec" "DriveControl.usersignatures"
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
Misc.d Misc.o: .././Misc.cpp .././Misc.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
.././usart_driver.h .././avr_compiler.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h
|
||||
|
||||
.././Misc.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
.././usart_driver.h:
|
||||
|
||||
.././avr_compiler.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
|
||||
Binary file not shown.
@@ -0,0 +1,68 @@
|
||||
Sabertooth.d Sabertooth.o: .././Sabertooth.cpp .././Sabertooth.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h \
|
||||
.././usart_driver.h .././avr_compiler.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h
|
||||
|
||||
.././Sabertooth.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
.././usart_driver.h:
|
||||
|
||||
.././avr_compiler.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
Binary file not shown.
@@ -0,0 +1,12 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit or delete the file
|
||||
################################################################################
|
||||
|
||||
DriveControl.cpp
|
||||
|
||||
Misc.cpp
|
||||
|
||||
Sabertooth.cpp
|
||||
|
||||
usart_driver.c
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
usart_driver.d usart_driver.o: .././usart_driver.c .././usart_driver.h \
|
||||
.././avr_compiler.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h
|
||||
|
||||
.././usart_driver.h:
|
||||
|
||||
.././avr_compiler.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdbool.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iox32d4.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\xmega.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
|
||||
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Atmel Studio Solution File, Format Version 11.00
|
||||
Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "DriveControl", "DriveControl.cppproj", "{7BA4F01E-3997-4FE4-AE8D-3C4100C86D92}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|AVR = Debug|AVR
|
||||
Release|AVR = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{7BA4F01E-3997-4FE4-AE8D-3C4100C86D92}.Debug|AVR.ActiveCfg = Debug|AVR
|
||||
{7BA4F01E-3997-4FE4-AE8D-3C4100C86D92}.Debug|AVR.Build.0 = Debug|AVR
|
||||
{7BA4F01E-3997-4FE4-AE8D-3C4100C86D92}.Release|AVR.ActiveCfg = Release|AVR
|
||||
{7BA4F01E-3997-4FE4-AE8D-3C4100C86D92}.Release|AVR.Build.0 = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Binary file not shown.
@@ -0,0 +1,166 @@
|
||||
/*
|
||||
* DriveControl.cpp
|
||||
*
|
||||
* Created: 4/22/2014 8:54:20 PM
|
||||
* Author: corwin
|
||||
PE3 - Status LED
|
||||
*/
|
||||
|
||||
#define F_CPU 32000000UL
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include "Sabertooth.h"
|
||||
#include "Misc.h"
|
||||
|
||||
extern "C"{
|
||||
#include "usart_driver.h"
|
||||
#include "avr_compiler.h"
|
||||
};
|
||||
#define TIMEOUTMAX 20 //Time in seconds before state change back to init
|
||||
|
||||
/*! Define that selects the Usart used in example. */
|
||||
#define XBEEDIO0 PIN5_bm //PORTA
|
||||
#define SabertoothTx PIN3_bm //PORTD
|
||||
#define StatusLight PIN3_bm //PORTE
|
||||
|
||||
#define RECEIVE_PACKET_SIZE 6
|
||||
#define SEND_PACKET_SIZE 4
|
||||
|
||||
uint8_t sendArray[SEND_PACKET_SIZE] = {0x55, 0xaa, 0xf0};
|
||||
uint8_t receiveArray[RECEIVE_PACKET_SIZE];
|
||||
|
||||
USART_data_t USART_PC_Data;
|
||||
|
||||
bool IsRoving = false;
|
||||
|
||||
volatile long unsigned int TimeSinceInit = 0;
|
||||
long unsigned int TimePrevious = 0;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
SetXMEGA32MhzCalibrated(); //Set XMega to user 32Mhz internal oscillator with 32Khz crystal calibration
|
||||
|
||||
///////Setup Inputs and Outputs///////
|
||||
PORTC.DIRSET = (PIN5_bm | PIN6_bm | PIN7_bm | PIN3_bm); //Sets outputs on port C
|
||||
PORTC.DIRCLR = PIN2_bm; //Sets inputs on PORT C
|
||||
PORTA.DIRCLR = XBEEDIO0;
|
||||
PORTE.DIRSET = PIN3_bm; //Sets inputs on PORTA
|
||||
|
||||
|
||||
///////Initialize Serial Communcations///////
|
||||
SetupPCComms(); //Initializes PC Communications at 9600 baud0
|
||||
_delay_ms(500); //Delay to make sabertooth initialize
|
||||
Sabertooth DriveSaber(&USARTD0, &PORTD); //Initializes Sabertooth Communications at 9600 Baud
|
||||
|
||||
|
||||
//////////////////Timers///////////////
|
||||
TCC0.CTRLA = TC_CLKSEL_DIV1024_gc; //31250 counts per second with 32Mhz Processor
|
||||
TCC0.CTRLB = TC_WGMODE_NORMAL_gc;
|
||||
TCC0.PER = 15625;
|
||||
TCC0.INTCTRLA = TC_OVFINTLVL_LO_gc;
|
||||
|
||||
TCD0.CTRLA = TC_CLKSEL_DIV1024_gc; //31250 counts per second with 32Mhz Processor
|
||||
TCD0.CTRLB = TC_WGMODE_NORMAL_gc;
|
||||
TCD0.PER = 31250;
|
||||
TCD0.INTCTRLA = TC_OVFINTLVL_LO_gc;
|
||||
///////////////////Timers//////////////
|
||||
|
||||
sei(); //Enables global interrupts so the interrupt serial can work
|
||||
|
||||
////Semi-global vars//////
|
||||
unsigned char BufferIdx = 0;
|
||||
const char XMegaID[] = "ID: MainDrive\r\n";
|
||||
enum MicroState{
|
||||
WaitForHost,
|
||||
Driving
|
||||
}XMegaState = WaitForHost;
|
||||
|
||||
while(1){
|
||||
|
||||
switch(XMegaState){
|
||||
case WaitForHost:
|
||||
for(int i = 0 ; XMegaID[i] != '\0'; i++){
|
||||
while(!USART_IsTXDataRegisterEmpty(&USARTC0));
|
||||
USART_PutChar(&USARTC0, XMegaID[i]);
|
||||
}
|
||||
_delay_ms(500);
|
||||
if(USART_RXBufferData_Available(&USART_PC_Data)){
|
||||
if(USART_RXBuffer_GetByte(&USART_PC_Data) == 'r'){
|
||||
XMegaState = Driving;
|
||||
//DriveSaber.ResetSaber();
|
||||
FlushSerialBuffer(&USART_PC_Data);
|
||||
USART_PutChar(&USARTC0, 'r');
|
||||
}
|
||||
}
|
||||
TimePrevious = TimeSinceInit;
|
||||
break;
|
||||
|
||||
case Driving:
|
||||
if(USART_RXBufferData_Available(&USART_PC_Data)){
|
||||
receiveArray[BufferIdx] = USART_RXBuffer_GetByte(&USART_PC_Data);
|
||||
BufferIdx++;
|
||||
}
|
||||
|
||||
if(BufferIdx == RECEIVE_PACKET_SIZE){
|
||||
FlushSerialBuffer(&USART_PC_Data);
|
||||
if(IsRoving){
|
||||
if(receiveArray[4] == PCComsChecksum(receiveArray[1], receiveArray[2], receiveArray[3])){
|
||||
DriveSaber.ParsePacket(receiveArray[2], receiveArray[3]);
|
||||
}
|
||||
}else if(!IsRoving){
|
||||
DriveSaber.ParsePacket(127, 127);
|
||||
}
|
||||
BufferIdx = 0;
|
||||
SendDriveControlStatus(&USARTC0, IsRoving, false);
|
||||
TimePrevious = TimeSinceInit;
|
||||
}
|
||||
|
||||
if((TimeSinceInit - TimePrevious) > TIMEOUTMAX){
|
||||
DriveSaber.StopAll();
|
||||
XMegaState = WaitForHost;
|
||||
TimePrevious = TimeSinceInit;
|
||||
}
|
||||
break;
|
||||
|
||||
};
|
||||
/*
|
||||
if(!IsRoving){
|
||||
DriveSaber.StopAll();
|
||||
}
|
||||
*/
|
||||
if((PORTA.IN & XBEEDIO0)){
|
||||
ERROR_CLR();
|
||||
IsRoving = true;
|
||||
}else if((!(PORTA.IN & XBEEDIO0))){
|
||||
ERROR_SET();
|
||||
IsRoving = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ISR(USARTC0_RXC_vect){
|
||||
USART_RXComplete(&USART_PC_Data);
|
||||
}
|
||||
|
||||
|
||||
ISR(USARTC0_DRE_vect){
|
||||
USART_DataRegEmpty(&USART_PC_Data);
|
||||
}
|
||||
|
||||
ISR(TCC0_OVF_vect){
|
||||
if(IsRoving){
|
||||
JUDGELED_TOGGLE();
|
||||
}else if(!IsRoving){
|
||||
JUDGELED_SET();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ISR(TCD0_OVF_vect){
|
||||
STATUS2_TOGGLE();
|
||||
TimeSinceInit++;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectVersion>6.2</ProjectVersion>
|
||||
<ToolchainName>com.Atmel.AVRGCC8.CPP</ToolchainName>
|
||||
<ProjectGuid>{7ba4f01e-3997-4fe4-ae8d-3c4100c86d92}</ProjectGuid>
|
||||
<avrdevice>ATxmega32D4</avrdevice>
|
||||
<avrdeviceseries>none</avrdeviceseries>
|
||||
<OutputType>Executable</OutputType>
|
||||
<Language>CPP</Language>
|
||||
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
|
||||
<OutputFileExtension>.elf</OutputFileExtension>
|
||||
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
|
||||
<AssemblyName>DriveControl</AssemblyName>
|
||||
<Name>DriveControl</Name>
|
||||
<RootNamespace>DriveControl</RootNamespace>
|
||||
<ToolchainFlavour>Native</ToolchainFlavour>
|
||||
<KeepTimersRunning>true</KeepTimersRunning>
|
||||
<OverrideVtor>false</OverrideVtor>
|
||||
<CacheFlash>true</CacheFlash>
|
||||
<ProgFlashFromRam>true</ProgFlashFromRam>
|
||||
<RamSnippetAddress>0x20000000</RamSnippetAddress>
|
||||
<UncachedRange />
|
||||
<OverrideVtorValue>exception_table</OverrideVtorValue>
|
||||
<BootSegment>2</BootSegment>
|
||||
<eraseonlaunchrule>0</eraseonlaunchrule>
|
||||
<AsfFrameworkConfig>
|
||||
<framework-data xmlns="">
|
||||
<options />
|
||||
<configurations />
|
||||
<files />
|
||||
<documentation help="" />
|
||||
<offline-documentation help="" />
|
||||
<dependencies>
|
||||
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.15.0" />
|
||||
</dependencies>
|
||||
</framework-data>
|
||||
</AsfFrameworkConfig>
|
||||
<avrtool>com.atmel.avrdbg.tool.ispmk2</avrtool>
|
||||
<avrtoolinterface>PDI</avrtoolinterface>
|
||||
<com_atmel_avrdbg_tool_ispmk2>
|
||||
<ToolOptions>
|
||||
<InterfaceProperties>
|
||||
<JtagEnableExtResetOnStartSession>false</JtagEnableExtResetOnStartSession>
|
||||
</InterfaceProperties>
|
||||
<InterfaceName>PDI</InterfaceName>
|
||||
</ToolOptions>
|
||||
<ToolType>com.atmel.avrdbg.tool.ispmk2</ToolType>
|
||||
<ToolNumber>000200086630</ToolNumber>
|
||||
<ToolName>AVRISP mkII</ToolName>
|
||||
</com_atmel_avrdbg_tool_ispmk2>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGccCpp>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<avrgcccpp.compiler.optimization.level>Optimize for size (-Os)</avrgcccpp.compiler.optimization.level>
|
||||
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
||||
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.linker.libraries.Libraries>
|
||||
</AvrGccCpp>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGccCpp>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.compiler.symbols.DefSymbols>
|
||||
<avrgcccpp.compiler.optimization.level>Optimize (-O1)</avrgcccpp.compiler.optimization.level>
|
||||
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
||||
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
|
||||
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
|
||||
<avrgcccpp.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcccpp.linker.libraries.Libraries>
|
||||
<avrgcccpp.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcccpp.assembler.debugging.DebugLevel>
|
||||
</AvrGccCpp>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="avr_compiler.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DriveControl.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Misc.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Misc.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Sabertooth.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Sabertooth.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usart_driver.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usart_driver.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Misc.cpp
|
||||
*
|
||||
* Created: 4/30/2014 3:09:52 PM
|
||||
* Author: Corwin
|
||||
*/
|
||||
#include "Misc.h"
|
||||
#include <avr/io.h>
|
||||
|
||||
void SetXMEGA32MhzCalibrated(){
|
||||
CCP = CCP_IOREG_gc; //Disable register security for oscillator update
|
||||
OSC.CTRL = OSC_RC32MEN_bm; //Enable 32MHz oscillator
|
||||
while(!(OSC.STATUS & OSC_RC32MRDY_bm)); //Wait for oscillator to be ready
|
||||
CCP = CCP_IOREG_gc; //Disable register security for clock update
|
||||
CLK.CTRL = CLK_SCLKSEL_RC32M_gc; //Switch to 32MHz clock
|
||||
|
||||
|
||||
CCP = CCP_IOREG_gc; //Disable register security for oscillator update
|
||||
OSC.CTRL |= OSC_RC32KEN_bm; //Enable 32Khz oscillator
|
||||
while(!(OSC.STATUS & OSC_RC32KRDY_bm)); //Wait for oscillator to be ready
|
||||
OSC.DFLLCTRL &= ~OSC_RC32MCREF_bm; //Set up calibration source to be 32Khz crystal
|
||||
DFLLRC32M.CTRL |= DFLL_ENABLE_bm; //Enable calibration of 32Mhz oscillator
|
||||
}
|
||||
|
||||
void SetupPCComms(){
|
||||
USART_InterruptDriver_Initialize(&USART_PC_Data, &USARTC0, USART_DREINTLVL_LO_gc); //Initialize USARTC0 as interrupt driven serial and clear it's buffers
|
||||
USART_Format_Set(USART_PC_Data.usart, USART_CHSIZE_8BIT_gc, USART_PMODE_DISABLED_gc, false); //Set the data format of 8 bits, no parity, 1 stop bit
|
||||
USART_RxdInterruptLevel_Set(USART_PC_Data.usart, USART_RXCINTLVL_LO_gc); //Enable the receive interrupt
|
||||
USART_Baudrate_Set(&USARTC0, 207 , 0); //Set baudrate to 9600 with 32Mhz system clock
|
||||
USART_Rx_Enable(USART_PC_Data.usart); //Enable receiving over serial
|
||||
USART_Tx_Enable(USART_PC_Data.usart); //Enable transmitting over serial
|
||||
PMIC.CTRL |= PMIC_LOLVLEX_bm; //Enable PMIC interrupt level low (No idea what this does, but is necessary)
|
||||
}
|
||||
|
||||
unsigned char PCComsChecksum(unsigned char command, unsigned char left, unsigned char right){
|
||||
return (command ^ left ^ right);
|
||||
|
||||
}
|
||||
|
||||
void SendDriveControlStatus(USART_t *PCComs, bool IsRoving, bool Checksum){
|
||||
while(!USART_IsTXDataRegisterEmpty(PCComs));
|
||||
USART_PutChar(PCComs, 255);
|
||||
while(!USART_IsTXDataRegisterEmpty(PCComs));
|
||||
USART_PutChar(PCComs, ((IsRoving << 0) | (Checksum << 1)));
|
||||
while(!USART_IsTXDataRegisterEmpty(PCComs));
|
||||
USART_PutChar(PCComs, 255);
|
||||
}
|
||||
|
||||
void FlushSerialBuffer(USART_data_t *UsartBuffer){
|
||||
while(USART_RXBufferData_Available(UsartBuffer)){
|
||||
USART_RXBuffer_GetByte(UsartBuffer);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Misc.h
|
||||
*
|
||||
* Created: 4/30/2014 3:10:05 PM
|
||||
* Author: Corwin
|
||||
*/
|
||||
|
||||
|
||||
#ifndef MISC_H_
|
||||
#define MISC_H_
|
||||
#include <avr/io.h>
|
||||
|
||||
//Custom Defined Macros
|
||||
#define STATUS1_SET(void) (PORTC.OUTSET = PIN6_bm)
|
||||
#define STATUS1_CLR(void) (PORTC.OUTCLR = PIN6_bm)
|
||||
#define STATUS1_TOGGLE(void) (PORTC.OUTTGL = PIN6_bm)
|
||||
|
||||
#define STATUS2_SET(void) (PORTC.OUTSET = PIN5_bm)
|
||||
#define STATUS2_CLR(void) (PORTC.OUTCLR = PIN5_bm)
|
||||
#define STATUS2_TOGGLE(void) (PORTC.OUTTGL = PIN5_bm)
|
||||
|
||||
#define ERROR_SET(void) (PORTC.OUTSET = PIN7_bm)
|
||||
#define ERROR_CLR(void) (PORTC.OUTCLR = PIN7_bm)
|
||||
#define ERROR_TOGGLE(void) (PORTC.OUTTGL = PIN7_bm)
|
||||
|
||||
#define JUDGELED_SET(void) (PORTE.OUTSET = PIN3_bm)
|
||||
#define JUDGELED_CLR(void) (PORTE.OUTCLR = PIN3_bm)
|
||||
#define JUDGELED_TOGGLE(void) (PORTE.OUTTGL = PIN3_bm)
|
||||
|
||||
extern "C"{
|
||||
#include "usart_driver.h"
|
||||
#include "avr_compiler.h"
|
||||
};
|
||||
|
||||
extern USART_data_t USART_PC_Data;
|
||||
|
||||
void SetXMEGA32MhzCalibrated();
|
||||
void SetupPCComms();
|
||||
unsigned char PCComsChecksum(unsigned char command, unsigned char left, unsigned char right);
|
||||
void SendDriveControlStatus(USART_t *PCComs, bool IsRoving, bool Checksum);
|
||||
void FlushSerialBuffer(USART_data_t *UsartBuffer);
|
||||
|
||||
#endif /* MISC_H_ */
|
||||
@@ -0,0 +1,115 @@
|
||||
/*
|
||||
* Sabertooth.cpp
|
||||
*
|
||||
* Created: 4/30/2014 1:08:16 PM
|
||||
* Author: Corwin
|
||||
*/
|
||||
|
||||
|
||||
#include "Sabertooth.h"
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
|
||||
|
||||
Sabertooth::Sabertooth(USART_t *USART_SaberUsart, PORT_t * SaberPORT)
|
||||
{
|
||||
Sabertooth_USART = USART_SaberUsart; //Sets the private variable to the USART being used
|
||||
Sabertooth_PORT = SaberPORT; //Sets the private variable for the PORT the USART is on
|
||||
|
||||
Sabertooth_PORT->DIRSET = PIN3_bm; //Sets the TX pin for the USART to an output
|
||||
USART_Format_Set(Sabertooth_USART, USART_CHSIZE_8BIT_gc, USART_PMODE_DISABLED_gc, false); //Sets the Sabertooth USART to run in 8 bit data, no parity, and 1 stop bit,
|
||||
USART_Baudrate_Set(Sabertooth_USART, 207 , 0); //Sets the Sabertooth baud rate to 9600 when running at 32Mhz system clock
|
||||
USART_Tx_Enable(Sabertooth_USART); //Enable the USART transmit capabilities
|
||||
_delay_ms(100); //Delay to let things settle
|
||||
|
||||
USART_PutChar(Sabertooth_USART, AUTOBAUD_BYTE); //Send the autobaud byte to get the sabertooth communicating
|
||||
SendDriveCmd(14, 20); //Sets the communication watchdog on the sabertooth to (x*100ms) It's currently set to two seconds.
|
||||
StopAll(); //Everything is now initialized, stop all motor movement to account for random noise or failed startups
|
||||
}
|
||||
|
||||
void Sabertooth::DriveTest(){
|
||||
|
||||
int i;
|
||||
for(i = 0; i < 128 ; i++){
|
||||
SendDriveCmd(LEFT_FORWARD, i);
|
||||
SendDriveCmd(RIGHT_FORWARD, i);
|
||||
_delay_ms(30);
|
||||
}
|
||||
for( ; i > 0 ; i--){
|
||||
SendDriveCmd(LEFT_FORWARD, i);
|
||||
SendDriveCmd(RIGHT_FORWARD, i);
|
||||
_delay_ms(30);
|
||||
}
|
||||
|
||||
for(i = 0; i < 128 ; i++){
|
||||
SendDriveCmd(LEFT_BACK, i);
|
||||
SendDriveCmd(RIGHT_BACK, i);
|
||||
_delay_ms(30);
|
||||
}
|
||||
for( ; i > 0 ; i--){
|
||||
SendDriveCmd(LEFT_BACK, i);
|
||||
SendDriveCmd(RIGHT_BACK, i);
|
||||
_delay_ms(30);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Sabertooth::ParsePacket(unsigned char left, unsigned char right){
|
||||
unsigned char command_left = LEFT_FORWARD;
|
||||
unsigned char value_left = 0;
|
||||
unsigned char command_right = RIGHT_FORWARD;
|
||||
unsigned char value_right = 0;
|
||||
|
||||
if(left == 127){
|
||||
command_left = LEFT_FORWARD;
|
||||
value_left = 0;
|
||||
}else if(left < 127){
|
||||
command_left = LEFT_BACK;
|
||||
value_left = (127-left);
|
||||
}else if(left > 127){
|
||||
command_left = LEFT_FORWARD;
|
||||
value_left = (left-127);
|
||||
}
|
||||
|
||||
if(right == 127){
|
||||
command_right = RIGHT_FORWARD;
|
||||
value_right = 0;
|
||||
}else if(right < 127){
|
||||
command_right = RIGHT_BACK;
|
||||
value_right = (127-right);
|
||||
}else if(right > 127){
|
||||
command_right = RIGHT_FORWARD;
|
||||
value_right = (right-127);
|
||||
}
|
||||
|
||||
SendDriveCmd(command_left, value_left);
|
||||
SendDriveCmd(command_right, value_right);
|
||||
}
|
||||
|
||||
void Sabertooth::StopAll(){
|
||||
ParsePacket(127, 127);
|
||||
}
|
||||
|
||||
unsigned char Sabertooth::SaberChecksum(unsigned char command, unsigned char value){
|
||||
return ((SABERTOOTHADDRESS+command+value) & 127);
|
||||
}
|
||||
|
||||
void Sabertooth::SendDriveCmd(char command, char value){
|
||||
////////////////////////////////Testing.....
|
||||
//while(!USART_IsTXDataRegisterEmpty(Sabertooth_USART)); //Necessary to make sure we don't overwrite data in the buffer
|
||||
//USART_PutChar(Sabertooth_USART, AUTOBAUD_BYTE); //Send the autobaud byte to get the sabertooth communicating
|
||||
////////////////////////////////
|
||||
while(!USART_IsTXDataRegisterEmpty(Sabertooth_USART)); //Necessary to make sure we don't overwrite data in the buffer
|
||||
USART_PutChar(Sabertooth_USART, SABERTOOTHADDRESS); //Sends the address to the sabertooth
|
||||
while(!USART_IsTXDataRegisterEmpty(Sabertooth_USART));
|
||||
USART_PutChar(Sabertooth_USART, command); //Sends the command to the sabertooth
|
||||
while(!USART_IsTXDataRegisterEmpty(Sabertooth_USART));
|
||||
USART_PutChar(Sabertooth_USART, value); //Sends the value or speed to the sabertooth
|
||||
while(!USART_IsTXDataRegisterEmpty(Sabertooth_USART));
|
||||
USART_PutChar(Sabertooth_USART, SaberChecksum(command, value)); //Send the checksum of all these values to the sabertooth
|
||||
}
|
||||
|
||||
void Sabertooth::ResetSaber(){
|
||||
USART_PutChar(Sabertooth_USART, AUTOBAUD_BYTE); //Send the autobaud byte to get the sabertooth communicating
|
||||
SendDriveCmd(14, 20); //Sets the communication watchdog on the sabertooth to (x*100ms) It's currently set to two seconds.
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Sabertooth.h
|
||||
*
|
||||
* Created: 4/30/2014 1:08:16 PM
|
||||
* Author: Corwin
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __SABERTOOTH_H__
|
||||
#define __SABERTOOTH_H__
|
||||
|
||||
#define F_CPU 32000000UL
|
||||
#define SABERTOOTHADDRESS 128
|
||||
#define AUTOBAUD_BYTE 170
|
||||
|
||||
#define LEFT_FORWARD 0
|
||||
#define LEFT_BACK 1
|
||||
#define RIGHT_FORWARD 4
|
||||
#define RIGHT_BACK 5
|
||||
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
|
||||
extern "C"{
|
||||
#include "usart_driver.h"
|
||||
#include "avr_compiler.h"
|
||||
};
|
||||
|
||||
class Sabertooth
|
||||
{
|
||||
//variables
|
||||
public:
|
||||
protected:
|
||||
private:
|
||||
|
||||
//functions
|
||||
public:
|
||||
Sabertooth(USART_t *USART_SaberUsart, PORT_t * SaberPORT);
|
||||
void DriveTest();
|
||||
void StopAll();
|
||||
unsigned char SaberChecksum(unsigned char command, unsigned char value);
|
||||
void ParsePacket(unsigned char left, unsigned char right);
|
||||
void ResetSaber();
|
||||
protected:
|
||||
private:
|
||||
void SendDriveCmd(char command, char value);
|
||||
Sabertooth( const Sabertooth &c );
|
||||
Sabertooth& operator=( const Sabertooth &c );
|
||||
USART_t *Sabertooth_USART;
|
||||
PORT_t *Sabertooth_PORT;
|
||||
|
||||
}; //Sabertooth
|
||||
|
||||
#endif //__SABERTOOTH_H__
|
||||
@@ -0,0 +1,433 @@
|
||||
/* This file has been prepared for Doxygen automatic documentation generation.*/
|
||||
/*! \file *********************************************************************
|
||||
*
|
||||
* \brief XMEGA Timer/Counter driver source file.
|
||||
*
|
||||
* This file contains the function implementations the XMEGA Timer/Counter
|
||||
* driver.
|
||||
*
|
||||
* The driver is not intended for size and/or speed critical code, since
|
||||
* most functions are just a few lines of code, and the function call
|
||||
* overhead would decrease code performance. The driver is intended for
|
||||
* rapid prototyping and documentation purposes for getting started with
|
||||
* the XMEGA Timer/Counter module.
|
||||
*
|
||||
* For size and/or speed critical code, it is recommended to copy the
|
||||
* function contents directly into your application instead of making
|
||||
* a function call.
|
||||
*
|
||||
* Several functions use the following construct:
|
||||
* "some_register = ... | (some_parameter ? SOME_BIT_bm : 0) | ..."
|
||||
* Although the use of the ternary operator ( if ? then : else ) is discouraged,
|
||||
* in some occasions the operator makes it possible to write pretty clean and
|
||||
* neat code. In this driver, the construct is used to set or not set a
|
||||
* configuration bit based on a boolean input parameter, such as
|
||||
* the "some_parameter" in the example above.
|
||||
*
|
||||
* \par Application note:
|
||||
* AVR1306: Using the XMEGA Timer/Counter
|
||||
*
|
||||
* \par Documentation
|
||||
* For comprehensive code documentation, supported compilers, compiler
|
||||
* settings and supported devices see readme.html
|
||||
*
|
||||
* \author
|
||||
* Atmel Corporation: http://www.atmel.com \n
|
||||
* Support email: avr@atmel.com
|
||||
*
|
||||
* $Revision: 1569 $
|
||||
* $Date: 2008-04-22 13:03:43 +0200 (ti, 22 apr 2008) $ \n
|
||||
*
|
||||
* Copyright (c) 2008, Atmel Corporation All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of ATMEL may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
|
||||
* SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "avr_compiler.h"
|
||||
#include "TC_driver.h"
|
||||
|
||||
/*! \brief Configures clock source for the Timer/Counter 0.
|
||||
*
|
||||
* This function clears the old clock source setting of the Timer/Counter and
|
||||
* sets a new clock source according to the clockSelection parameter.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param clockSelection Timer/Counter clock source setting.
|
||||
*/
|
||||
void TC0_ConfigClockSource( volatile TC0_t * tc, TC_CLKSEL_t clockSelection )
|
||||
{
|
||||
tc->CTRLA = ( tc->CTRLA & ~TC0_CLKSEL_gm ) | clockSelection;
|
||||
}
|
||||
|
||||
/*! \brief Configures clock source for the Timer/Counter 1.
|
||||
*
|
||||
* This function clears the old clock source setting of the Timer/Counter and
|
||||
* sets a new clock source according to the clockSelection parameter.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param clockSelection Timer/Counter clock source setting.
|
||||
*/
|
||||
void TC1_ConfigClockSource( volatile TC1_t * tc, TC_CLKSEL_t clockSelection )
|
||||
{
|
||||
tc->CTRLA = ( tc->CTRLA & ~TC1_CLKSEL_gm ) | clockSelection;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Configures the Waveform Generation Mode for the Timer/Counter 0.
|
||||
*
|
||||
* This function clears the old WGM setting of the Timer/Counter and sets a
|
||||
* new WGM setting according to the wgm parameter.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param wgm Waveform generation mode.
|
||||
*/
|
||||
void TC0_ConfigWGM( volatile TC0_t * tc, TC_WGMODE_t wgm )
|
||||
{
|
||||
tc->CTRLB = ( tc->CTRLB & ~TC0_WGMODE_gm ) | wgm;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Configures the Waveform Generation Mode for the Timer/Counter 1.
|
||||
*
|
||||
* This function clears the old WGM setting of the Timer/Counter and sets a
|
||||
* new WGM setting according to the wgm parameter.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param wgm Waveform generation mode.
|
||||
*/
|
||||
void TC1_ConfigWGM( volatile TC1_t * tc, TC_WGMODE_t wgm )
|
||||
{
|
||||
tc->CTRLB = ( tc->CTRLB & ~TC1_WGMODE_gm ) | wgm;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Configures the Timer/Counter 0 for input capture operation.
|
||||
*
|
||||
* This function sets the Timer/Counter in input capture mode and selects
|
||||
* the event lines that will trigger the individual input capture channels.
|
||||
*
|
||||
* \note Output compare operation is disabled when input capture operation is
|
||||
* enabled.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param eventSource Event source selection.
|
||||
*/
|
||||
void TC0_ConfigInputCapture( volatile TC0_t * tc, TC_EVSEL_t eventSource )
|
||||
{
|
||||
tc->CTRLD = ( tc->CTRLD & ~( TC0_EVSEL_gm | TC0_EVACT_gm ) ) |
|
||||
eventSource |
|
||||
TC_EVACT_CAPT_gc;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Configures the Timer/Counter 1 for input capture operation.
|
||||
*
|
||||
* This function sets the Timer/Counter in input capture mode and selects
|
||||
* the event lines that will trigger the individual input capture channels.
|
||||
*
|
||||
* \note Output compare operation is disabled when input capture operation is
|
||||
* enabled.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param eventSource Event source selection.
|
||||
*/
|
||||
void TC1_ConfigInputCapture( volatile TC1_t * tc, TC_EVSEL_t eventSource )
|
||||
{
|
||||
tc->CTRLD = ( tc->CTRLD & ~( TC1_EVSEL_gm | TC1_EVACT_gm ) ) |
|
||||
eventSource |
|
||||
TC_EVACT_CAPT_gc;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Enables compare/capture channels for Timer/Counter 0.
|
||||
*
|
||||
* This function enables compare/capture channels according to the supplied
|
||||
* enableMask. The enableMask can be obtained by ORing together the symbols
|
||||
* - TC0_CCAEN_bm
|
||||
* - TC0_CCBEN_bm
|
||||
* - TC0_CCCEN_bm
|
||||
* - TC0_CCDEN_bm
|
||||
*
|
||||
* Example: TC0_EnableCCChannels( &TCC0, TC0_CCAEN_bm | TC0_CCCEN_bm ) will
|
||||
* enable channels A and C.
|
||||
*
|
||||
* \note No capture/compare channels are disabled by calling this function.
|
||||
* Disabling is done by calling \ref TC0_DisableCCChannels.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param enableMask Mask of channels to enable.
|
||||
*/
|
||||
void TC0_EnableCCChannels( volatile TC0_t * tc, uint8_t enableMask )
|
||||
{
|
||||
/* Make sure only CCxEN bits are set in enableMask. */
|
||||
enableMask &= ( TC0_CCAEN_bm | TC0_CCBEN_bm | TC0_CCCEN_bm | TC0_CCDEN_bm );
|
||||
|
||||
/* Enable channels. */
|
||||
tc->CTRLB |= enableMask;
|
||||
}
|
||||
|
||||
/*! \brief Enables compare/capture channels for Timer/Counter 1.
|
||||
*
|
||||
* This function enables compare/capture channels according to the supplied
|
||||
* enableMask. The enableMask can be obtained by ORing together the symbols
|
||||
* - TC1_CCAEN_bm
|
||||
* - TC1_CCBEN_bm
|
||||
*
|
||||
* Example: TC1_EnableCCChannels( &TCC1, TC1_CCAEN_bm | TC1_CCBEN_bm ) will
|
||||
* enable channels A and B.
|
||||
*
|
||||
* \note No capture/compare channels are disabled by calling this function.
|
||||
* Disabling is done by calling \ref TC1_DisableCCChannels.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param enableMask Mask of channels to enable.
|
||||
*/
|
||||
void TC1_EnableCCChannels( volatile TC1_t * tc, uint8_t enableMask )
|
||||
{
|
||||
/* Make sure only CCxEN bits are set in enableMask. */
|
||||
enableMask &= ( TC1_CCAEN_bm | TC1_CCBEN_bm );
|
||||
|
||||
/* Enable channels. */
|
||||
tc->CTRLB |= enableMask;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Disables compare/capture channels on Timer/Counter 0.
|
||||
*
|
||||
* This function disables compare/capture channels according to the supplied
|
||||
* disableMask. The disableMask can be obtained by ORing together the symbols
|
||||
* - TC0_CCAEN_bm
|
||||
* - TC0_CCBEN_bm
|
||||
* - TC0_CCCEN_bm
|
||||
* - TC0_CCDEN_bm
|
||||
*
|
||||
* Example: TC0_DisableCCChannels( &TCC0, TC0_CCAEN_bm | TC0_CCCEN_bm ) will
|
||||
* disable channels A and C.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param disableMask Mask of channels to disable.
|
||||
*/
|
||||
void TC0_DisableCCChannels( volatile TC0_t * tc, uint8_t disableMask )
|
||||
{
|
||||
/* Make sure only CCxEN bits are set in disableMask. */
|
||||
disableMask &= ( TC0_CCAEN_bm | TC0_CCBEN_bm | TC0_CCCEN_bm | TC0_CCDEN_bm );
|
||||
|
||||
/* Disable channels. */
|
||||
tc->CTRLB &= ~disableMask;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Disables compare/capture channels on Timer/Counter 1.
|
||||
*
|
||||
* This function disables compare/capture channels according to the supplied
|
||||
* disableMask. The disableMask can be obtained by ORing together the symbols
|
||||
* - TC1_CCAEN_bm
|
||||
* - TC1_CCBEN_bm
|
||||
*
|
||||
* Example: TC1_DisableCCChannels( &TCC1, TC1_CCAEN_bm | TC1_CCBEN_bm ) will
|
||||
* disable channels A and B.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param disableMask Mask of channels to disable.
|
||||
*/
|
||||
void TC1_DisableCCChannels( volatile TC1_t * tc, uint8_t disableMask )
|
||||
{
|
||||
/* Make sure only CCxEN bits are set in disableMask. */
|
||||
disableMask &= ( TC1_CCAEN_bm | TC1_CCBEN_bm );
|
||||
|
||||
/* Disable channels. */
|
||||
tc->CTRLB &= ~disableMask;
|
||||
}
|
||||
|
||||
/*! \brief Sets the overflow interrupt level.
|
||||
*
|
||||
* This function sets the overflow interrupt level of this Timer/Counter 0.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param intLevel New overflow interrupt level.
|
||||
*/
|
||||
void TC0_SetOverflowIntLevel( volatile TC0_t * tc, TC_OVFINTLVL_t intLevel )
|
||||
{
|
||||
tc->INTCTRLA = ( tc->INTCTRLA & ~TC0_OVFINTLVL_gm ) | intLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Sets the overflow interrupt level.
|
||||
*
|
||||
* This function sets the overflow interrupt level of this Timer/Counter 1.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param intLevel New overflow interrupt level.
|
||||
*/
|
||||
void TC1_SetOverflowIntLevel( volatile TC1_t * tc, TC_OVFINTLVL_t intLevel )
|
||||
{
|
||||
tc->INTCTRLA = ( tc->INTCTRLA & ~TC1_OVFINTLVL_gm ) | intLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Sets the Error interrupt level.
|
||||
*
|
||||
* This function sets the overflow interrupt level of this Timer/Counter 0.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param intLevel New error interrupt level.
|
||||
*/
|
||||
void TC0_SetErrorIntLevel( volatile TC0_t * tc, TC_ERRINTLVL_t intLevel )
|
||||
{
|
||||
tc->INTCTRLA = ( tc->INTCTRLA & ~TC0_ERRINTLVL_gm ) | intLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Sets the Error interrupt level.
|
||||
*
|
||||
* This function sets the overflow interrupt level of this Timer/Counter 1.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param intLevel New error interrupt level.
|
||||
*/
|
||||
void TC1_SetErrorIntLevel( volatile TC1_t * tc, TC_ERRINTLVL_t intLevel )
|
||||
{
|
||||
tc->INTCTRLA = ( tc->INTCTRLA & ~TC1_ERRINTLVL_gm ) | intLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Sets the interrupt level for compare/capture channel A interrupt.
|
||||
*
|
||||
* This function sets the interrupt level for compare/capture channel A
|
||||
* interrupt in Timer/Counter 0.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param intLevel New compare/capture channel A interrupt level.
|
||||
*/
|
||||
void TC0_SetCCAIntLevel( volatile TC0_t * tc, TC_CCAINTLVL_t intLevel )
|
||||
{
|
||||
tc->INTCTRLB = ( tc->INTCTRLB & ~TC0_CCAINTLVL_gm ) | intLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Sets the interrupt level for compare/capture channel A interrupt.
|
||||
*
|
||||
* This function sets the interrupt level for compare/capture channel A
|
||||
* interrupt in Timer/Counter 1.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param intLevel New compare/capture channel A interrupt level.
|
||||
*/
|
||||
void TC1_SetCCAIntLevel( volatile TC1_t * tc, TC_CCAINTLVL_t intLevel )
|
||||
{
|
||||
tc->INTCTRLB = ( tc->INTCTRLB & ~TC1_CCAINTLVL_gm ) | intLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Sets the interrupt level for compare/capture channel B interrupt.
|
||||
*
|
||||
* This function sets the interrupt level for compare/capture channel B
|
||||
* interrupt in Timer/Counter 0.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param intLevel New compare/capture channel B interrupt level.
|
||||
*/
|
||||
void TC0_SetCCBIntLevel( volatile TC0_t * tc, TC_CCBINTLVL_t intLevel )
|
||||
{
|
||||
tc->INTCTRLB = ( tc->INTCTRLB & ~TC0_CCBINTLVL_gm ) | intLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Sets the interrupt level for compare/capture channel B interrupt.
|
||||
*
|
||||
* This function sets the interrupt level for compare/capture channel B
|
||||
* interrupt in Timer/Counter 1.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param intLevel New compare/capture channel B interrupt level.
|
||||
*/
|
||||
void TC1_SetCCBIntLevel( volatile TC1_t * tc, TC_CCBINTLVL_t intLevel )
|
||||
{
|
||||
tc->INTCTRLB = ( tc->INTCTRLB & ~TC1_CCBINTLVL_gm ) | intLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Sets the interrupt level for compare/capture channel C interrupt.
|
||||
*
|
||||
* This function sets the interrupt level for compare/capture channel C
|
||||
* interrupt in Timer/Counter 0.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param intLevel New compare/capture channel A interrupt level.
|
||||
*/
|
||||
void TC0_SetCCCIntLevel( volatile TC0_t * tc, TC_CCCINTLVL_t intLevel )
|
||||
{
|
||||
tc->INTCTRLB = ( tc->INTCTRLB & ~TC0_CCCINTLVL_gm ) | intLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Sets the interrupt level for compare/capture channel D interrupt.
|
||||
*
|
||||
* This function sets the interrupt level for compare/capture channel D
|
||||
* interrupt in Timer/Counter 0.
|
||||
*
|
||||
* \param tc Timer/Counter module instance.
|
||||
* \param intLevel New compare/capture channel A interrupt level.
|
||||
*/
|
||||
void TC0_SetCCDIntLevel( volatile TC0_t * tc, TC_CCDINTLVL_t intLevel )
|
||||
{
|
||||
tc->INTCTRLB = ( tc->INTCTRLB & ~TC0_CCDINTLVL_gm ) | intLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Resets the Timer/Counter 0.
|
||||
*
|
||||
* This function will reset the Timer/Counter. After calling this function,
|
||||
* the Timer/Counter will be in the same state as it would after a full
|
||||
* reset of the device.
|
||||
*
|
||||
* \param tc Timer/Counter 0 module instance.
|
||||
*/
|
||||
void TC0_Reset( volatile TC0_t * tc )
|
||||
{
|
||||
/* TC must be turned off before a Reset command. */
|
||||
tc->CTRLA = ( tc->CTRLA & ~TC0_CLKSEL_gm ) | TC_CLKSEL_OFF_gc;
|
||||
|
||||
/* Issue Reset command. */
|
||||
tc->CTRLFSET = TC_CMD_RESET_gc;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Resets the Timer/Counter 1.
|
||||
*
|
||||
* This function will reset the Timer/Counter. After calling this function,
|
||||
* the Timer/Counter will be in the same state as it would after a full
|
||||
* reset of the device.
|
||||
*
|
||||
* \param tc Timer/Counter 1 module instance.
|
||||
*/
|
||||
void TC1_Reset( volatile TC1_t * tc )
|
||||
{
|
||||
/* TC must be turned off before a Reset command. */
|
||||
tc->CTRLA = ( tc->CTRLA & ~TC1_CLKSEL_gm ) | TC_CLKSEL_OFF_gc;
|
||||
|
||||
/* Issue Reset command. */
|
||||
tc->CTRLFSET = TC_CMD_RESET_gc;
|
||||
}
|
||||
@@ -0,0 +1,423 @@
|
||||
/* This file has been prepared for Doxygen automatic documentation generation.*/
|
||||
/*! \file *********************************************************************
|
||||
*
|
||||
* \brief XMEGA Timer/Counter driver header file.
|
||||
*
|
||||
* This file contains the function prototypes and enumerator definitions
|
||||
* for various configuration parameters for the XMEGA Timer/Counter driver.
|
||||
*
|
||||
* The driver is not intended for size and/or speed critical code, since
|
||||
* most functions are just a few lines of code, and the function call
|
||||
* overhead would decrease code performance. The driver is intended for
|
||||
* rapid prototyping and documentation purposes for getting started with
|
||||
* the XMEGA Timer/Counter module.
|
||||
*
|
||||
* For size and/or speed critical code, it is recommended to copy the
|
||||
* function contents directly into your application instead of making
|
||||
* a function call.
|
||||
*
|
||||
* \par Application note:
|
||||
* AVR1306: Using the XMEGA Timer/Counter
|
||||
*
|
||||
* \par Documentation
|
||||
* For comprehensive code documentation, supported compilers, compiler
|
||||
* settings and supported devices see readme.html
|
||||
*
|
||||
* \author
|
||||
* Atmel Corporation: http://www.atmel.com \n
|
||||
* Support email: avr@atmel.com
|
||||
*
|
||||
* $Revision: 1569 $
|
||||
* $Date: 2008-04-22 13:03:43 +0200 (ti, 22 apr 2008) $ \n
|
||||
*
|
||||
* Copyright (c) 2008, Atmel Corporation All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of ATMEL may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
|
||||
* SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
#ifndef TC_DRIVER_H
|
||||
#define TC_DRIVER_H
|
||||
|
||||
#include "avr_compiler.h"
|
||||
|
||||
/* Definition of macros. */
|
||||
|
||||
/*! \brief Enables the event delay for this TC.
|
||||
*
|
||||
* This macro enables a one clock cycle delay of event sources for this TC.
|
||||
* Mainly used for the high word TC when two TCs are cascaded to form a 32-bit
|
||||
* TC.
|
||||
*
|
||||
* \param _tc The Timer/Counter to enable delay on.
|
||||
*/
|
||||
#define TC_EnableEventDelay( _tc ) ( (_tc)->CTRLD |= TC0_EVDLY_bm )
|
||||
|
||||
/*! \brief This macro disables the event delay for this TC.
|
||||
*
|
||||
* \param _tc The Timer/Counter to disable delay on.
|
||||
*/
|
||||
#define TC_DisableEventDelay( _tc ) ( (_tc)->CTRLD &= ~TC0_EVDLY_bm )
|
||||
|
||||
/*! \brief Locks automatic updating of compare and period registers.
|
||||
*
|
||||
* This macro will lock automatic updates of compare registers from the
|
||||
* corresponding buffer registers. To enable automatic updates again, use the
|
||||
* \ref TC_UnlockCompareUpdate macro.
|
||||
*
|
||||
* \param _tc Timer/Counter module instance.
|
||||
*/
|
||||
#define TC_LockCompareUpdate( _tc ) ( (_tc)->CTRLFSET = TC0_LUPD_bm )
|
||||
|
||||
/*! \brief Unlocks automatic updating of compare and period registers.
|
||||
*
|
||||
* This macro will unlock automatic updates of compare registers from the
|
||||
* corresponding buffer registers. Note that the output compare registers will
|
||||
* not be updated until an update event occurs, e.g. that the counter hits
|
||||
* TOP or BOTTOM. To force an update of the compare register from the buffer
|
||||
* register, use the \ref TC_ForceUpdate macro.
|
||||
*
|
||||
* \param _tc Timer/Counter module instance.
|
||||
*/
|
||||
#define TC_UnlockCompareUpdate( _tc ) ( (_tc)->CTRLFCLR = TC0_LUPD_bm )
|
||||
|
||||
|
||||
/*! \brief Force an update of the output compare and period registers.
|
||||
*
|
||||
* This macro will trigger a transfer from the output compare and period
|
||||
* buffer registers ( CCxBUF and PERBUF ) to the output compare and period
|
||||
* registers ( CCx and PER ). Calling this macro has the same effect as an
|
||||
* update condition.
|
||||
*
|
||||
* \param _tc Timer/Counter module instance.
|
||||
*/
|
||||
#define TC_ForceUpdate( _tc ) ( (_tc)->CTRLFSET = TC_CMD_UPDATE_gc )
|
||||
|
||||
/*! \brief Restart the Timer/Counter.
|
||||
*
|
||||
* This macro will restart the timer. The effect of running this command is:
|
||||
* - The CNT[H:L] register is cleared.
|
||||
* - The direction (DIR ) is reset. (Next clock cycle will increase the counter )
|
||||
* - All compare outputs are set to 0.
|
||||
* - If a DTI module is connected to the timer, it will be reset as well.
|
||||
*
|
||||
* \param _tc Timer/Counter module instance.
|
||||
*/
|
||||
#define TC_Restart( _tc ) ( (_tc)->CTRLFSET = TC_CMD_RESTART_gc )
|
||||
|
||||
/*! \brief Manually set the count.
|
||||
*
|
||||
* This macro writes a new value to the CNT[H:L] register.
|
||||
* Note that the CNT[H:L] register is not double buffered, so it is recommended
|
||||
* that the timer is not running when this macro is used.
|
||||
*
|
||||
* \param _tc Timer/Counter module instance.
|
||||
* \param _count New count value.
|
||||
*/
|
||||
#define TC_SetCount( _tc, _count ) ( (_tc)->CNT = (_count) )
|
||||
|
||||
/*! \brief Sets the timer period.
|
||||
*
|
||||
* This macro sets a new timer period. The period buffer register is not
|
||||
* used, so the new period will be valid immediately after the 16-bit write
|
||||
* is finished.
|
||||
*
|
||||
* \param _tc Timer/Counter module instance.
|
||||
* \param _period New Timer/Counter period.
|
||||
*/
|
||||
#define TC_SetPeriod( _tc, _period ) ( (_tc)->PER = (_period) )
|
||||
|
||||
/*! \brief Sets the timer period ( double buffered ).
|
||||
*
|
||||
* This macro sets a new timer period. The period buffer register is used,
|
||||
* so the new period will be valid after the next update condition.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 or 1 module instance.
|
||||
* \param _period New Timer/Counter period.
|
||||
*/
|
||||
#define TC_SetPeriodBuffered( _tc, _period ) ( (_tc)->PERBUF = (_period) )
|
||||
|
||||
/*! \brief Set new compare value for compare channel A. ( Double buffered )
|
||||
*
|
||||
* This macro sets a new compare value for compare channel A. The compare
|
||||
* channel A buffer register is used, so the new period will be valid from the
|
||||
* next update condition.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 or 1 module instance.
|
||||
* \param _compareValue New compare value for compare channel A.
|
||||
*/
|
||||
#define TC_SetCompareA( _tc, _compareValue ) ( (_tc)->CCABUF = (_compareValue) )
|
||||
|
||||
/*! \brief Set new compare value for compare channel B. ( Double buffered )
|
||||
*
|
||||
* This macro sets a new compare value for compare channel B. The compare
|
||||
* channel B buffer register is used, so the new period will be valid from the
|
||||
* next update condition.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 or 1 module instance.
|
||||
* \param _compareValue New compare value for compare channel B.
|
||||
*/
|
||||
#define TC_SetCompareB( _tc, _compareValue ) ( (_tc)->CCBBUF = (_compareValue) )
|
||||
|
||||
/*! \brief Set new compare value for compare channel C. ( Double buffered )
|
||||
*
|
||||
* This macro sets a new compare value for compare channel C. The compare
|
||||
* channel C buffer register is used, so the new period will be valid from the
|
||||
* next update condition.
|
||||
*
|
||||
* \note The CCC channel is not available on TCx1.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 module instance.
|
||||
* \param _compareValue New compare value for compare channel C.
|
||||
*/
|
||||
#define TC_SetCompareC( _tc, _compareValue ) ( (_tc)->CCCBUF = (_compareValue) )
|
||||
|
||||
/*! \brief Set new compare value for compare channel D. ( Double buffered )
|
||||
*
|
||||
* This macro sets a new compare value for compare channel D. The compare
|
||||
* channel D buffer register is used, so the new period will be valid from the
|
||||
* next update condition.
|
||||
*
|
||||
* \note The CCD channel is not available on TCx1.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 module instance.
|
||||
* \param _compareValue New compare value for compare channel D.
|
||||
*/
|
||||
#define TC_SetCompareD( _tc, _compareValue ) ( (_tc)->CCDBUF = (_compareValue) )
|
||||
|
||||
/*! \brief Test whether an overflow has occurred.
|
||||
*
|
||||
* The return value of this macro indicates if an overflow has occurred.
|
||||
*
|
||||
* \param _tc Timer/Counter module instance.
|
||||
*
|
||||
* \return Non-zero if overflow flag is set, zero otherwise.
|
||||
*/
|
||||
#define TC_GetOverflowFlag( _tc ) ( (_tc)->INTFLAGS & TC0_OVFIF_bm )
|
||||
|
||||
/*! \brief Clears the Timer/Counter overflow flag.
|
||||
*
|
||||
* This macro clears the Timer/Counter overflow flag.
|
||||
*
|
||||
* \param _tc Timer/Counter module instance.
|
||||
*/
|
||||
#define TC_ClearOverflowFlag( _tc ) ( (_tc)->INTFLAGS = TC0_OVFIF_bm )
|
||||
|
||||
/*! \brief Test whether an error has occurred.
|
||||
*
|
||||
* The return value of this macro indicates if an error has occurred.
|
||||
*
|
||||
* \param _tc Timer/Counter module instance.
|
||||
*
|
||||
* \return Non-zero if the Timer error flag is set.
|
||||
*/
|
||||
#define TC_GetErrorFlag( _tc ) ( (_tc)->INTFLAGS & TC0_ERRIF_bm )
|
||||
|
||||
/*! \brief Clears the Timer/Counter error flag.
|
||||
*
|
||||
* This macro clears the Timer/Counter error flag.
|
||||
*
|
||||
* \param _tc Timer/Counter module instance.
|
||||
*/
|
||||
#define TC_ClearErrorFlag( _tc ) ( (_tc)->INTFLAGS = TC0_ERRIF_bm )
|
||||
|
||||
/*! \brief Get the status for Compare or Capture channel A.
|
||||
*
|
||||
* When the TC is in Input Capture mode, the return value of this macro
|
||||
* indicates whether there is an unread input capture value available for
|
||||
* capture channel A.
|
||||
*
|
||||
* When the TC is in any other mode, the return value of this macro
|
||||
* indicates whether there has been a compare match between channel A and the
|
||||
* counter.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 or 1 module instance.
|
||||
*
|
||||
* \return Non-zero if Compare or capture has occured, zero otherwise.
|
||||
*/
|
||||
#define TC_GetCCAFlag( _tc ) ( (_tc)->INTFLAGS & TC0_CCAIF_bm )
|
||||
|
||||
/*! \brief Clears the Timer/Counter compare or capture A interrupt flag.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 or 1 module instance.
|
||||
*/
|
||||
#define TC_ClearCCAFlag( _tc ) ( (_tc)->INTFLAGS = TC0_CCAIF_bm )
|
||||
|
||||
/*! \brief Get the status for Compare or Capture channel B.
|
||||
*
|
||||
* When the TC is in Input Capture mode, the return value of this macro
|
||||
* indicates whether there is an unread input capture value available for
|
||||
* capture channel B.
|
||||
*
|
||||
* When the TC is in any other mode, the return value of this macro
|
||||
* indicates whether there has been a compare match between channel B and the
|
||||
* counter.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 or 1 module instance.
|
||||
*
|
||||
* \return Non-zero if Compare or capture has occured, zero otherwise.
|
||||
*/
|
||||
#define TC_GetCCBFlag( _tc ) ( (_tc)->INTFLAGS & TC0_CCBIF_bm )
|
||||
|
||||
/*! \brief Clears the Timer/Counter compare or capture B interrupt flag.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 or 1 module instance.
|
||||
*/
|
||||
#define TC_ClearCCBFlag( _tc ) ( (_tc)->INTFLAGS = TC0_CCBIF_bm )
|
||||
|
||||
/*! \brief Get the status for Compare or Capture channel C.
|
||||
*
|
||||
* When the TC is in Input Capture mode, the return value of this macro
|
||||
* indicates whether there is an unread input capture value available for
|
||||
* capture channel C.
|
||||
*
|
||||
* When the TC is in any other mode, the return value of this macro
|
||||
* indicates whether there has been a compare match between channel C and the
|
||||
* counter.
|
||||
*
|
||||
* \note The CCC channel is not available on TCx1.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 module instance.
|
||||
*
|
||||
* \return Non-zero if Compare or capture has occured, zero otherwise.
|
||||
*/
|
||||
#define TC_GetCCCFlag( _tc ) ( (_tc)->INTFLAGS & TC0_CCCIF_bm )
|
||||
|
||||
/*! \brief Clears the Timer/Counter compare or capture C interrupt flag.
|
||||
*
|
||||
* This macro clears the Timer/Counter compare or capture C interrupt flag.
|
||||
*
|
||||
* \note The CCC channel is not available on TCx1.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 module instance.
|
||||
*/
|
||||
#define TC_ClearCCCFlag( _tc ) ( (_tc)->INTFLAGS = TC0_CCCIF_bm )
|
||||
|
||||
/*! \brief Get the status for Compare or Capture channel D.
|
||||
*
|
||||
* When the TC is in Input Capture mode, the return value of this macro
|
||||
* indicates whether there is an unread input capture value available for
|
||||
* capture channel D.
|
||||
*
|
||||
* When the TC is in any other mode, the return value of this macro
|
||||
* indicates whether there has been a compare match between channel D and the
|
||||
* counter.
|
||||
*
|
||||
* \note The CCD channel is not available on TCx1.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 module instance.
|
||||
*
|
||||
* \return Non-zero if Compare or capture has occured, zero otherwise.
|
||||
*/
|
||||
#define TC_GetCCDFlag( _tc ) ( (_tc)->INTFLAGS & TC0_CCDIF_bm )
|
||||
|
||||
/*! \brief Clears the Timer/Counter compare or capture D interrupt flag.
|
||||
*
|
||||
* This macro clears the Timer/Counter compare or capture D interrupt flag.
|
||||
*
|
||||
* \note The CCD channel is not available on TCx1.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 module instance.
|
||||
*/
|
||||
#define TC_ClearCCDFlag( _tc ) ( (_tc)->INTFLAGS = TC0_CCDIF_bm )
|
||||
|
||||
|
||||
/*! \brief Reads the first available input capture value for channel A.
|
||||
*
|
||||
* This macro returns the first available input capture value for
|
||||
* capture channel A.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 or 1 module instance.
|
||||
*
|
||||
* \return The first available input capture value for channel A.
|
||||
*/
|
||||
#define TC_GetCaptureA( _tc ) ( (_tc)->CCA )
|
||||
|
||||
/*! \brief Reads the first available input capture value for channel B.
|
||||
*
|
||||
* This macro returns the first available input capture value for
|
||||
* capture channel B.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 or 1 module instance.
|
||||
*
|
||||
* \return The first available input capture value for channel B.
|
||||
*/
|
||||
#define TC_GetCaptureB( _tc ) ( (_tc)->CCB )
|
||||
|
||||
/*! \brief Reads the first available input capture value for channel C.
|
||||
*
|
||||
* This macro returns the first available input capture value for
|
||||
* capture channel C.
|
||||
*
|
||||
* \note The CCC channel is not available on TCx1.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 module instance.
|
||||
*
|
||||
* \return The first available input capture value for channel C.
|
||||
*/
|
||||
#define TC_GetCaptureC( _tc ) ( (_tc)->CCC )
|
||||
|
||||
/*! \brief Reads the first available input capture value for channel D.
|
||||
*
|
||||
* This macro returns the first available input capture value for
|
||||
* capture channel D.
|
||||
*
|
||||
* \note The CCD channel is not available on TCx1.
|
||||
*
|
||||
* \param _tc Timer/Counter 0 module instance.
|
||||
*
|
||||
* \return The first available input capture value for channel D.
|
||||
*/
|
||||
#define TC_GetCaptureD( _tc ) ( (_tc)->CCD )
|
||||
|
||||
|
||||
/* Prototyping of functions. Documentation can be found in source file. */
|
||||
|
||||
void TC0_ConfigClockSource( volatile TC0_t * tc, TC_CLKSEL_t clockSelection );
|
||||
void TC0_ConfigWGM( volatile TC0_t * tc, TC_WGMODE_t wgm );
|
||||
void TC0_ConfigInputCapture( volatile TC0_t * tc, TC_EVSEL_t eventSource );
|
||||
void TC0_EnableCCChannels( volatile TC0_t * tc, uint8_t enableMask );
|
||||
void TC0_DisableCCChannels( volatile TC0_t * tc, uint8_t disableMask );
|
||||
void TC0_SetOverflowIntLevel( volatile TC0_t * tc, TC_OVFINTLVL_t intLevel );
|
||||
void TC0_SetErrorIntLevel( volatile TC0_t * tc, TC_ERRINTLVL_t intLevel );
|
||||
void TC0_SetCCAIntLevel( volatile TC0_t * tc, TC_CCAINTLVL_t intLevel );
|
||||
void TC0_SetCCBIntLevel( volatile TC0_t * tc, TC_CCBINTLVL_t intLevel );
|
||||
void TC0_SetCCCIntLevel( volatile TC0_t * tc, TC_CCCINTLVL_t intLevel );
|
||||
void TC0_SetCCDIntLevel( volatile TC0_t * tc, TC_CCDINTLVL_t intLevel );
|
||||
void TC0_Reset( volatile TC0_t * tc );
|
||||
|
||||
void TC1_ConfigClockSource( volatile TC1_t * tc, TC_CLKSEL_t clockSelection );
|
||||
void TC1_ConfigWGM( volatile TC1_t * tc, TC_WGMODE_t wgm );
|
||||
void TC1_ConfigInputCapture( volatile TC1_t * tc, TC_EVSEL_t eventSource );
|
||||
void TC1_EnableCCChannels( volatile TC1_t * tc, uint8_t enableMask );
|
||||
void TC1_DisableCCChannels( volatile TC1_t * tc, uint8_t disableMask );
|
||||
void TC1_SetOverflowIntLevel( volatile TC1_t * tc, TC_OVFINTLVL_t intLevel );
|
||||
void TC1_SetErrorIntLevel( volatile TC1_t * tc, TC_ERRINTLVL_t intLevel );
|
||||
void TC1_SetCCAIntLevel( volatile TC1_t * tc, TC_CCAINTLVL_t intLevel );
|
||||
void TC1_SetCCBIntLevel( volatile TC1_t * tc, TC_CCBINTLVL_t intLevel );
|
||||
void TC1_SetCCCIntLevel( volatile TC1_t * tc, TC_CCCINTLVL_t intLevel );
|
||||
void TC1_SetCCDIntLevel( volatile TC1_t * tc, TC_CCDINTLVL_t intLevel );
|
||||
void TC1_Reset( volatile TC1_t * tc );
|
||||
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,154 @@
|
||||
/* This file has been prepared for Doxygen automatic documentation generation.*/
|
||||
/*! \file *********************************************************************
|
||||
*
|
||||
* \brief This file implements some macros that makes the IAR C-compiler and
|
||||
* avr-gcc work with the same code base for the AVR architecture.
|
||||
*
|
||||
* \par Documentation
|
||||
* For comprehensive code documentation, supported compilers, compiler
|
||||
* settings and supported devices see readme.html
|
||||
*
|
||||
* \author
|
||||
* Atmel Corporation: http://www.atmel.com \n
|
||||
* Support email: avr@atmel.com
|
||||
*
|
||||
* $Revision: 1694 $
|
||||
* $Date: 2008-07-29 14:21:58 +0200 (ti, 29 jul 2008) $ \n
|
||||
*
|
||||
* Copyright (c) 2008, Atmel Corporation All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of ATMEL may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
|
||||
* SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef COMPILER_AVR_H
|
||||
#define COMPILER_AVR_H
|
||||
|
||||
#ifndef F_CPU
|
||||
/*! \brief Define default CPU frequency, if this is not already defined. */
|
||||
#define F_CPU 2000000UL
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/*! \brief This macro will protect the following code from interrupts. */
|
||||
#define AVR_ENTER_CRITICAL_REGION( ) uint8_t volatile saved_sreg = SREG; \
|
||||
cli();
|
||||
|
||||
/*! \brief This macro must always be used in conjunction with AVR_ENTER_CRITICAL_REGION
|
||||
* so the interrupts are enabled again.
|
||||
*/
|
||||
#define AVR_LEAVE_CRITICAL_REGION( ) SREG = saved_sreg;
|
||||
|
||||
#if defined( __ICCAVR__ )
|
||||
|
||||
#include <inavr.h>
|
||||
#include <ioavr.h>
|
||||
#include <intrinsics.h>
|
||||
#include <pgmspace.h>
|
||||
|
||||
#ifndef __HAS_ELPM__
|
||||
#define _MEMATTR __flash
|
||||
#else /* __HAS_ELPM__ */
|
||||
#define _MEMATTR __farflash
|
||||
#endif /* __HAS_ELPM__ */
|
||||
|
||||
/*! \brief Perform a delay of \c us microseconds.
|
||||
*
|
||||
* The macro F_CPU is supposed to be defined to a constant defining the CPU
|
||||
* clock frequency (in Hertz).
|
||||
*
|
||||
* The maximal possible delay is 262.14 ms / F_CPU in MHz.
|
||||
*
|
||||
* \note For the IAR compiler, currently F_CPU must be a
|
||||
* multiple of 1000000UL (1 MHz).
|
||||
*/
|
||||
#define delay_us( us ) ( __delay_cycles( ( F_CPU / 1000000UL ) * ( us ) ) )
|
||||
|
||||
/*! \brief Preprocessor magic.
|
||||
*
|
||||
* Some preprocessor magic to allow for a header file abstraction of
|
||||
* interrupt service routine declarations for the IAR compiler. This
|
||||
* requires the use of the C99 _Pragma() directive (rather than the
|
||||
* old #pragma one that could not be used as a macro replacement), as
|
||||
* well as two different levels of preprocessor concetanations in
|
||||
* order to do both, assign the correct interrupt vector name, as well
|
||||
* as construct a unique function name for the ISR.
|
||||
*
|
||||
* \note Do *NOT* try to reorder the macros below, as this will only
|
||||
* work in the given order.
|
||||
*/
|
||||
#define PRAGMA(x) _Pragma( #x )
|
||||
#define ISR(vec) PRAGMA( vector=vec ) __interrupt void handler_##vec(void)
|
||||
#define sei( ) (__enable_interrupt( ))
|
||||
#define cli( ) (__disable_interrupt( ))
|
||||
|
||||
/*! \brief Define the no operation macro. */
|
||||
#define nop( ) (__no_operation())
|
||||
|
||||
/*! \brief Define the watchdog reset macro. */
|
||||
#define watchdog_reset( ) (__watchdog_reset( ))
|
||||
|
||||
|
||||
#define INLINE PRAGMA( inline=forced ) static
|
||||
|
||||
#define FLASH_DECLARE(x) _MEMATTR x
|
||||
#define FLASH_STRING(x) ((_MEMATTR const char *)(x))
|
||||
#define FLASH_STRING_T char const _MEMATTR *
|
||||
#define FLASH_BYTE_ARRAY_T uint8_t const _MEMATTR *
|
||||
#define PGM_READ_BYTE(x) *(x)
|
||||
#define PGM_READ_WORD(x) *(x)
|
||||
|
||||
#define SHORTENUM /**/
|
||||
|
||||
#elif defined( __GNUC__ )
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <avr/pgmspace.h>
|
||||
#include <util/delay.h>
|
||||
|
||||
/*! \brief Define the delay_us macro for GCC. */
|
||||
#define delay_us( us ) (_delay_us( us ))
|
||||
|
||||
#define INLINE static inline
|
||||
|
||||
/*! \brief Define the no operation macro. */
|
||||
#define nop() do { __asm__ __volatile__ ("nop"); } while (0)
|
||||
|
||||
#define MAIN_TASK_PROLOGUE int
|
||||
|
||||
|
||||
#define MAIN_TASK_EPILOGUE() return -1;
|
||||
|
||||
#define SHORTENUM __attribute__ ((packed))
|
||||
|
||||
#else
|
||||
#error Compiler not supported.
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
/*
|
||||
* DriveControl.cpp
|
||||
*
|
||||
* Created: 4/22/2014 8:54:20 PM
|
||||
* Author: corwin
|
||||
PE3 - Status LED
|
||||
*/
|
||||
|
||||
#define F_CPU 32000000UL
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include "Sabertooth.h"
|
||||
#include "Misc.h"
|
||||
|
||||
extern "C"{
|
||||
#include "usart_driver.h"
|
||||
#include "avr_compiler.h"
|
||||
};
|
||||
#define TIMEOUTMAX 5 //Time in seconds before state change back to init
|
||||
|
||||
/*! Define that selects the Usart used in example. */
|
||||
#define XBEEDIO0 PIN5_bm //PORTA
|
||||
#define SabertoothTx PIN3_bm //PORTD
|
||||
#define StatusLight PIN3_bm //PORTE
|
||||
|
||||
#define RECEIVE_PACKET_SIZE 6
|
||||
#define SEND_PACKET_SIZE 4
|
||||
|
||||
uint8_t sendArray[SEND_PACKET_SIZE] = {0x55, 0xaa, 0xf0};
|
||||
uint8_t receiveArray[RECEIVE_PACKET_SIZE];
|
||||
|
||||
USART_data_t USART_PC_Data;
|
||||
|
||||
bool IsRoving = false;
|
||||
|
||||
volatile long unsigned int TimeSinceInit = 0;
|
||||
long unsigned int TimePrevious = 0;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
SetXMEGA32MhzCalibrated(); //Set XMega to user 32Mhz internal oscillator with 32Khz crystal calibration
|
||||
|
||||
///////Setup Inputs and Outputs///////
|
||||
PORTC.DIRSET = (PIN5_bm | PIN6_bm | PIN7_bm | PIN3_bm); //Sets outputs on port C
|
||||
PORTC.DIRCLR = PIN2_bm; //Sets inputs on PORT C
|
||||
PORTA.DIRCLR = XBEEDIO0;
|
||||
PORTE.DIRSET = PIN3_bm; //Sets inputs on PORTA
|
||||
|
||||
|
||||
///////Initialize Serial Communcations///////
|
||||
SetupPCComms(); //Initializes PC Communications at 9600 baud0
|
||||
_delay_ms(500); //Delay to make sabertooth initialize
|
||||
Sabertooth DriveSaber(&USARTD0, &PORTD); //Initializes Sabertooth Communications at 9600 Baud
|
||||
|
||||
|
||||
//////////////////Timers///////////////
|
||||
TCC0.CTRLA = TC_CLKSEL_DIV1024_gc; //31250 counts per second with 32Mhz Processor
|
||||
TCC0.CTRLB = TC_WGMODE_NORMAL_gc;
|
||||
TCC0.PER = 15625;
|
||||
TCC0.INTCTRLA = TC_OVFINTLVL_LO_gc;
|
||||
|
||||
TCD0.CTRLA = TC_CLKSEL_DIV1024_gc; //31250 counts per second with 32Mhz Processor
|
||||
TCD0.CTRLB = TC_WGMODE_NORMAL_gc;
|
||||
TCD0.PER = 31250;
|
||||
TCD0.INTCTRLA = TC_OVFINTLVL_LO_gc;
|
||||
///////////////////Timers//////////////
|
||||
|
||||
sei(); //Enables global interrupts so the interrupt serial can work
|
||||
|
||||
////Semi-global vars//////
|
||||
unsigned char BufferIdx = 0;
|
||||
const char XMegaID[] = "ID: MainDrive\r\n";
|
||||
enum MicroState{
|
||||
WaitForHost,
|
||||
Driving
|
||||
}XMegaState = WaitForHost;
|
||||
|
||||
while(1){
|
||||
|
||||
switch(XMegaState){
|
||||
case WaitForHost:
|
||||
for(int i = 0 ; XMegaID[i] != '\0'; i++){
|
||||
while(!USART_IsTXDataRegisterEmpty(&USARTC0));
|
||||
USART_PutChar(&USARTC0, XMegaID[i]);
|
||||
}
|
||||
_delay_ms(500);
|
||||
if(USART_RXBufferData_Available(&USART_PC_Data)){
|
||||
if(USART_RXBuffer_GetByte(&USART_PC_Data) == 'r'){
|
||||
XMegaState = Driving;
|
||||
USART_PutChar(&USARTC0, 'r');
|
||||
BufferIdx = 0;
|
||||
}
|
||||
}
|
||||
TimePrevious = TimeSinceInit;
|
||||
break;
|
||||
|
||||
case Driving:
|
||||
if(USART_RXBufferData_Available(&USART_PC_Data)){
|
||||
receiveArray[BufferIdx] = USART_RXBuffer_GetByte(&USART_PC_Data);
|
||||
BufferIdx++;
|
||||
}
|
||||
|
||||
if(BufferIdx == RECEIVE_PACKET_SIZE){
|
||||
FlushSerialBuffer(&USART_PC_Data);
|
||||
|
||||
if(IsRoving){
|
||||
if(receiveArray[4] == PCComsChecksum(receiveArray[1], receiveArray[2], receiveArray[3])){
|
||||
DriveSaber.ParsePacket(receiveArray[2], receiveArray[3]);
|
||||
STATUS1_SET();
|
||||
}
|
||||
else{STATUS1_CLR();}
|
||||
}else if(!IsRoving){
|
||||
_delay_ms(10);
|
||||
}
|
||||
|
||||
BufferIdx = 0;
|
||||
SendDriveControlStatus(&USARTC0, IsRoving, false);
|
||||
TimePrevious = TimeSinceInit;
|
||||
}
|
||||
|
||||
|
||||
if((TimeSinceInit - TimePrevious) > TIMEOUTMAX){
|
||||
DriveSaber.StopAll();
|
||||
XMegaState = WaitForHost;
|
||||
TimePrevious = TimeSinceInit;
|
||||
}
|
||||
break;
|
||||
|
||||
};
|
||||
|
||||
if(!IsRoving){
|
||||
DriveSaber.StopAll();
|
||||
}
|
||||
|
||||
if((PORTA.IN & XBEEDIO0)){
|
||||
ERROR_CLR();
|
||||
IsRoving = true;
|
||||
}else if((!(PORTA.IN & XBEEDIO0))){
|
||||
ERROR_SET();
|
||||
IsRoving = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ISR(USARTC0_RXC_vect){
|
||||
USART_RXComplete(&USART_PC_Data);
|
||||
}
|
||||
|
||||
|
||||
ISR(USARTC0_DRE_vect){
|
||||
USART_DataRegEmpty(&USART_PC_Data);
|
||||
}
|
||||
|
||||
ISR(TCC0_OVF_vect){
|
||||
if(IsRoving){
|
||||
JUDGELED_TOGGLE();
|
||||
}else if(!IsRoving){
|
||||
JUDGELED_SET();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ISR(TCD0_OVF_vect){
|
||||
STATUS2_TOGGLE();
|
||||
TimeSinceInit++;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,320 @@
|
||||
/* This file has been prepared for Doxygen automatic documentation generation.*/
|
||||
/*! \file *********************************************************************
|
||||
*
|
||||
* \brief
|
||||
* XMEGA USART driver source file.
|
||||
*
|
||||
* This file contains the function implementations the XMEGA interrupt
|
||||
* and polled USART driver.
|
||||
*
|
||||
* The driver is not intended for size and/or speed critical code, since
|
||||
* most functions are just a few lines of code, and the function call
|
||||
* overhead would decrease code performance. The driver is intended for
|
||||
* rapid prototyping and documentation purposes for getting started with
|
||||
* the XMEGA ADC module.
|
||||
*
|
||||
* For size and/or speed critical code, it is recommended to copy the
|
||||
* function contents directly into your application instead of making
|
||||
* a function call.
|
||||
*
|
||||
* Some functions use the following construct:
|
||||
* "some_register = ... | (some_parameter ? SOME_BIT_bm : 0) | ..."
|
||||
* Although the use of the ternary operator ( if ? then : else ) is discouraged,
|
||||
* in some occasions the operator makes it possible to write pretty clean and
|
||||
* neat code. In this driver, the construct is used to set or not set a
|
||||
* configuration bit based on a boolean input parameter, such as
|
||||
* the "some_parameter" in the example above.
|
||||
*
|
||||
* \par Application note:
|
||||
* AVR1307: Using the XMEGA USART
|
||||
*
|
||||
* \par Documentation
|
||||
* For comprehensive code documentation, supported compilers, compiler
|
||||
* settings and supported devices see readme.html
|
||||
*
|
||||
* \author
|
||||
* Atmel Corporation: http://www.atmel.com \n
|
||||
* Support email: avr@atmel.com
|
||||
*
|
||||
* $Revision: 1694 $
|
||||
* $Date: 2008-07-29 14:21:58 +0200 (ti, 29 jul 2008) $ \n
|
||||
*
|
||||
* Copyright (c) 2008, Atmel Corporation All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of ATMEL may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
|
||||
* SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
#include "usart_driver.h"
|
||||
|
||||
|
||||
|
||||
/*! \brief Initializes buffer and selects what USART module to use.
|
||||
*
|
||||
* Initializes receive and transmit buffer and selects what USART module to use,
|
||||
* and stores the data register empty interrupt level.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
* \param usart The USART module.
|
||||
* \param dreIntLevel Data register empty interrupt level.
|
||||
*/
|
||||
void USART_InterruptDriver_Initialize(USART_data_t * usart_data,
|
||||
USART_t * usart,
|
||||
USART_DREINTLVL_t dreIntLevel)
|
||||
{
|
||||
usart_data->usart = usart;
|
||||
usart_data->dreIntLevel = dreIntLevel;
|
||||
|
||||
usart_data->buffer.RX_Tail = 0;
|
||||
usart_data->buffer.RX_Head = 0;
|
||||
usart_data->buffer.TX_Tail = 0;
|
||||
usart_data->buffer.TX_Head = 0;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Set USART DRE interrupt level.
|
||||
*
|
||||
* Set the interrupt level on Data Register interrupt.
|
||||
*
|
||||
* \note Changing the DRE interrupt level in the interrupt driver while it is
|
||||
* running will not change the DRE interrupt level in the USART before the
|
||||
* DRE interrupt have been disabled and enabled again.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance
|
||||
* \param dreIntLevel Interrupt level of the DRE interrupt.
|
||||
*/
|
||||
void USART_InterruptDriver_DreInterruptLevel_Set(USART_data_t * usart_data,
|
||||
USART_DREINTLVL_t dreIntLevel)
|
||||
{
|
||||
usart_data->dreIntLevel = dreIntLevel;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Test if there is data in the transmitter software buffer.
|
||||
*
|
||||
* This function can be used to test if there is free space in the transmitter
|
||||
* software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*
|
||||
* \retval true There is data in the receive buffer.
|
||||
* \retval false The receive buffer is empty.
|
||||
*/
|
||||
bool USART_TXBuffer_FreeSpace(USART_data_t * usart_data)
|
||||
{
|
||||
/* Make copies to make sure that volatile access is specified. */
|
||||
uint8_t tempHead = (usart_data->buffer.TX_Head + 1) & USART_TX_BUFFER_MASK;
|
||||
uint8_t tempTail = usart_data->buffer.TX_Tail;
|
||||
|
||||
/* There are data left in the buffer unless Head and Tail are equal. */
|
||||
return (tempHead != tempTail);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Put data (5-8 bit character).
|
||||
*
|
||||
* Stores data byte in TX software buffer and enables DRE interrupt if there
|
||||
* is free space in the TX software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
* \param data The data to send.
|
||||
*/
|
||||
bool USART_TXBuffer_PutByte(USART_data_t * usart_data, uint8_t data)
|
||||
{
|
||||
uint8_t tempCTRLA;
|
||||
uint8_t tempTX_Head;
|
||||
bool TXBuffer_FreeSpace;
|
||||
USART_Buffer_t * TXbufPtr;
|
||||
|
||||
TXbufPtr = &usart_data->buffer;
|
||||
TXBuffer_FreeSpace = USART_TXBuffer_FreeSpace(usart_data);
|
||||
|
||||
|
||||
if(TXBuffer_FreeSpace)
|
||||
{
|
||||
tempTX_Head = TXbufPtr->TX_Head;
|
||||
TXbufPtr->TX[tempTX_Head]= data;
|
||||
/* Advance buffer head. */
|
||||
TXbufPtr->TX_Head = (tempTX_Head + 1) & USART_TX_BUFFER_MASK;
|
||||
|
||||
/* Enable DRE interrupt. */
|
||||
tempCTRLA = usart_data->usart->CTRLA;
|
||||
tempCTRLA = (tempCTRLA & ~USART_DREINTLVL_gm) | usart_data->dreIntLevel;
|
||||
usart_data->usart->CTRLA = tempCTRLA;
|
||||
}
|
||||
return TXBuffer_FreeSpace;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Test if there is data in the receive software buffer.
|
||||
*
|
||||
* This function can be used to test if there is data in the receive software
|
||||
* buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance
|
||||
*
|
||||
* \retval true There is data in the receive buffer.
|
||||
* \retval false The receive buffer is empty.
|
||||
*/
|
||||
bool USART_RXBufferData_Available(USART_data_t * usart_data)
|
||||
{
|
||||
/* Make copies to make sure that volatile access is specified. */
|
||||
uint8_t tempHead = usart_data->buffer.RX_Head;
|
||||
uint8_t tempTail = usart_data->buffer.RX_Tail;
|
||||
|
||||
/* There are data left in the buffer unless Head and Tail are equal. */
|
||||
return (tempHead != tempTail);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Get received data (5-8 bit character).
|
||||
*
|
||||
* The function USART_RXBufferData_Available should be used before this
|
||||
* function is used to ensure that data is available.
|
||||
*
|
||||
* Returns data from RX software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*
|
||||
* \return Received data.
|
||||
*/
|
||||
uint8_t USART_RXBuffer_GetByte(USART_data_t * usart_data)
|
||||
{
|
||||
USART_Buffer_t * bufPtr;
|
||||
uint8_t ans;
|
||||
|
||||
bufPtr = &usart_data->buffer;
|
||||
ans = (bufPtr->RX[bufPtr->RX_Tail]);
|
||||
|
||||
/* Advance buffer tail. */
|
||||
bufPtr->RX_Tail = (bufPtr->RX_Tail + 1) & USART_RX_BUFFER_MASK;
|
||||
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief RX Complete Interrupt Service Routine.
|
||||
*
|
||||
* RX Complete Interrupt Service Routine.
|
||||
* Stores received data in RX software buffer.
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*/
|
||||
bool USART_RXComplete(USART_data_t * usart_data)
|
||||
{
|
||||
USART_Buffer_t * bufPtr;
|
||||
bool ans;
|
||||
|
||||
bufPtr = &usart_data->buffer;
|
||||
/* Advance buffer head. */
|
||||
uint8_t tempRX_Head = (bufPtr->RX_Head + 1) & USART_RX_BUFFER_MASK;
|
||||
|
||||
/* Check for overflow. */
|
||||
uint8_t tempRX_Tail = bufPtr->RX_Tail;
|
||||
uint8_t data = usart_data->usart->DATA;
|
||||
|
||||
if (tempRX_Head == tempRX_Tail) {
|
||||
ans = false;
|
||||
}else{
|
||||
ans = true;
|
||||
usart_data->buffer.RX[usart_data->buffer.RX_Head] = data;
|
||||
usart_data->buffer.RX_Head = tempRX_Head;
|
||||
}
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*! \brief Data Register Empty Interrupt Service Routine.
|
||||
*
|
||||
* Data Register Empty Interrupt Service Routine.
|
||||
* Transmits one byte from TX software buffer. Disables DRE interrupt if buffer
|
||||
* is empty. Argument is pointer to USART (USART_data_t).
|
||||
*
|
||||
* \param usart_data The USART_data_t struct instance.
|
||||
*/
|
||||
void USART_DataRegEmpty(USART_data_t * usart_data)
|
||||
{
|
||||
USART_Buffer_t * bufPtr;
|
||||
bufPtr = &usart_data->buffer;
|
||||
|
||||
/* Check if all data is transmitted. */
|
||||
uint8_t tempTX_Tail = usart_data->buffer.TX_Tail;
|
||||
if (bufPtr->TX_Head == tempTX_Tail){
|
||||
/* Disable DRE interrupts. */
|
||||
uint8_t tempCTRLA = usart_data->usart->CTRLA;
|
||||
tempCTRLA = (tempCTRLA & ~USART_DREINTLVL_gm) | USART_DREINTLVL_OFF_gc;
|
||||
usart_data->usart->CTRLA = tempCTRLA;
|
||||
|
||||
}else{
|
||||
/* Start transmitting. */
|
||||
uint8_t data = bufPtr->TX[usart_data->buffer.TX_Tail];
|
||||
usart_data->usart->DATA = data;
|
||||
|
||||
/* Advance buffer tail. */
|
||||
bufPtr->TX_Tail = (bufPtr->TX_Tail + 1) & USART_TX_BUFFER_MASK;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Put data (9 bit character).
|
||||
*
|
||||
* Use the function USART_IsTXDataRegisterEmpty before using this function to
|
||||
* put 9 bit character to the TX register.
|
||||
*
|
||||
* \param usart The USART module.
|
||||
* \param data The data to send.
|
||||
*/
|
||||
void USART_NineBits_PutChar(USART_t * usart, uint16_t data)
|
||||
{
|
||||
if(data & 0x0100) {
|
||||
usart->CTRLB |= USART_TXB8_bm;
|
||||
}else {
|
||||
usart->CTRLB &= ~USART_TXB8_bm;
|
||||
}
|
||||
|
||||
usart->DATA = (data & 0x00FF);
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Get received data (9 bit character).
|
||||
*
|
||||
* This function reads out the received 9 bit character (uint16_t).
|
||||
* Use the function USART_IsRXComplete to check if anything is received.
|
||||
*
|
||||
* \param usart The USART module.
|
||||
*
|
||||
* \retval Received data.
|
||||
*/
|
||||
uint16_t USART_NineBits_GetChar(USART_t * usart)
|
||||
{
|
||||
if(usart->CTRLB & USART_RXB8_bm) {
|
||||
return(0x0100 | usart->DATA);
|
||||
}else {
|
||||
return(usart->DATA);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,306 @@
|
||||
/* This file has been prepared for Doxygen automatic documentation generation.*/
|
||||
/*! \file *********************************************************************
|
||||
*
|
||||
* \brief XMEGA USART driver header file.
|
||||
*
|
||||
* This file contains the function prototypes and enumerator definitions
|
||||
* for various configuration parameters for the XMEGA USART driver.
|
||||
*
|
||||
* The driver is not intended for size and/or speed critical code, since
|
||||
* most functions are just a few lines of code, and the function call
|
||||
* overhead would decrease code performance. The driver is intended for
|
||||
* rapid prototyping and documentation purposes for getting started with
|
||||
* the XMEGA ADC module.
|
||||
*
|
||||
* For size and/or speed critical code, it is recommended to copy the
|
||||
* function contents directly into your application instead of making
|
||||
* a function call.
|
||||
*
|
||||
* \par Application note:
|
||||
* AVR1307: Using the XMEGA USART
|
||||
*
|
||||
* \par Documentation
|
||||
* For comprehensive code documentation, supported compilers, compiler
|
||||
* settings and supported devices see readme.html
|
||||
*
|
||||
* \author
|
||||
* Atmel Corporation: http://www.atmel.com \n
|
||||
* Support email: avr@atmel.com
|
||||
*
|
||||
* $Revision: 1694 $
|
||||
* $Date: 2008-07-29 14:21:58 +0200 (ti, 29 jul 2008) $ \n
|
||||
*
|
||||
* Copyright (c) 2008, Atmel Corporation All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of ATMEL may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
|
||||
* SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
#ifndef USART_DRIVER_H
|
||||
#define USART_DRIVER_H
|
||||
|
||||
#include "avr_compiler.h"
|
||||
|
||||
/* USART buffer defines. */
|
||||
|
||||
/* \brief Receive buffer size: 2,4,8,16,32,64,128 or 256 bytes. */
|
||||
#define USART_RX_BUFFER_SIZE 4
|
||||
/* \brief Transmit buffer size: 2,4,8,16,32,64,128 or 256 bytes */
|
||||
#define USART_TX_BUFFER_SIZE 4
|
||||
/* \brief Receive buffer mask. */
|
||||
#define USART_RX_BUFFER_MASK ( USART_RX_BUFFER_SIZE - 1 )
|
||||
/* \brief Transmit buffer mask. */
|
||||
#define USART_TX_BUFFER_MASK ( USART_TX_BUFFER_SIZE - 1 )
|
||||
|
||||
|
||||
#if ( USART_RX_BUFFER_SIZE & USART_RX_BUFFER_MASK )
|
||||
#error RX buffer size is not a power of 2
|
||||
#endif
|
||||
#if ( USART_TX_BUFFER_SIZE & USART_TX_BUFFER_MASK )
|
||||
#error TX buffer size is not a power of 2
|
||||
#endif
|
||||
|
||||
|
||||
/* \brief USART transmit and receive ring buffer. */
|
||||
typedef struct USART_Buffer
|
||||
{
|
||||
/* \brief Receive buffer. */
|
||||
volatile uint8_t RX[USART_RX_BUFFER_SIZE];
|
||||
/* \brief Transmit buffer. */
|
||||
volatile uint8_t TX[USART_TX_BUFFER_SIZE];
|
||||
/* \brief Receive buffer head. */
|
||||
volatile uint8_t RX_Head;
|
||||
/* \brief Receive buffer tail. */
|
||||
volatile uint8_t RX_Tail;
|
||||
/* \brief Transmit buffer head. */
|
||||
volatile uint8_t TX_Head;
|
||||
/* \brief Transmit buffer tail. */
|
||||
volatile uint8_t TX_Tail;
|
||||
} USART_Buffer_t;
|
||||
|
||||
|
||||
/*! \brief Struct used when interrupt driven driver is used.
|
||||
*
|
||||
* Struct containing pointer to a usart, a buffer and a location to store Data
|
||||
* register interrupt level temporary.
|
||||
*/
|
||||
typedef struct Usart_and_buffer
|
||||
{
|
||||
/* \brief Pointer to USART module to use. */
|
||||
USART_t * usart;
|
||||
/* \brief Data register empty interrupt level. */
|
||||
USART_DREINTLVL_t dreIntLevel;
|
||||
/* \brief Data buffer. */
|
||||
USART_Buffer_t buffer;
|
||||
} USART_data_t;
|
||||
|
||||
|
||||
/* Macros. */
|
||||
|
||||
/*! \brief Macro that sets the USART frame format.
|
||||
*
|
||||
* Sets the frame format, Frame Size, parity mode and number of stop bits.
|
||||
*
|
||||
* \param _usart Pointer to the USART module
|
||||
* \param _charSize The character size. Use USART_CHSIZE_t type.
|
||||
* \param _parityMode The parity Mode. Use USART_PMODE_t type.
|
||||
* \param _twoStopBits Enable two stop bit mode. Use bool type.
|
||||
*/
|
||||
#define USART_Format_Set(_usart, _charSize, _parityMode, _twoStopBits) \
|
||||
(_usart)->CTRLC = (uint8_t) _charSize | _parityMode | \
|
||||
(_twoStopBits ? USART_SBMODE_bm : 0)
|
||||
|
||||
|
||||
/*! \brief Set USART baud rate.
|
||||
*
|
||||
* Sets the USART's baud rate register.
|
||||
*
|
||||
* UBRR_Value : Value written to UBRR
|
||||
* ScaleFactor : Time Base Generator Scale Factor
|
||||
*
|
||||
* Equation for calculation of BSEL value in asynchronous normal speed mode:
|
||||
* If ScaleFactor >= 0
|
||||
* BSEL = ((I/O clock frequency)/(2^(ScaleFactor)*16*Baudrate))-1
|
||||
* If ScaleFactor < 0
|
||||
* BSEL = (1/(2^(ScaleFactor)*16))*(((I/O clock frequency)/Baudrate)-1)
|
||||
*
|
||||
* \note See XMEGA manual for equations for calculation of BSEL value in other
|
||||
* modes.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _bselValue Value to write to BSEL part of Baud control register.
|
||||
* Use uint16_t type.
|
||||
* \param _bScaleFactor USART baud rate scale factor.
|
||||
* Use uint8_t type
|
||||
*/
|
||||
#define USART_Baudrate_Set(_usart, _bselValue, _bScaleFactor) \
|
||||
(_usart)->BAUDCTRLA =(uint8_t)_bselValue; \
|
||||
(_usart)->BAUDCTRLB =(_bScaleFactor << USART_BSCALE0_bp)|(_bselValue >> 8)
|
||||
|
||||
|
||||
/*! \brief Enable USART receiver.
|
||||
*
|
||||
* \param _usart Pointer to the USART module
|
||||
*/
|
||||
#define USART_Rx_Enable(_usart) ((_usart)->CTRLB |= USART_RXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Disable USART receiver.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
*/
|
||||
#define USART_Rx_Disable(_usart) ((_usart)->CTRLB &= ~USART_RXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Enable USART transmitter.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
*/
|
||||
#define USART_Tx_Enable(_usart) ((_usart)->CTRLB |= USART_TXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Disable USART transmitter.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
*/
|
||||
#define USART_Tx_Disable(_usart) ((_usart)->CTRLB &= ~USART_TXEN_bm)
|
||||
|
||||
|
||||
/*! \brief Set USART RXD interrupt level.
|
||||
*
|
||||
* Sets the interrupt level on RX Complete interrupt.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _rxdIntLevel Interrupt level of the RXD interrupt.
|
||||
* Use USART_RXCINTLVL_t type.
|
||||
*/
|
||||
#define USART_RxdInterruptLevel_Set(_usart, _rxdIntLevel) \
|
||||
((_usart)->CTRLA = ((_usart)->CTRLA & ~USART_RXCINTLVL_gm) | _rxdIntLevel)
|
||||
|
||||
|
||||
/*! \brief Set USART TXD interrupt level.
|
||||
*
|
||||
* Sets the interrupt level on TX Complete interrupt.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _txdIntLevel Interrupt level of the TXD interrupt.
|
||||
* Use USART_TXCINTLVL_t type.
|
||||
*/
|
||||
#define USART_TxdInterruptLevel_Set(_usart, _txdIntLevel) \
|
||||
(_usart)->CTRLA = ((_usart)->CTRLA & ~USART_TXCINTLVL_gm) | _txdIntLevel
|
||||
|
||||
|
||||
|
||||
/*! \brief Set USART DRE interrupt level.
|
||||
*
|
||||
* Sets the interrupt level on Data Register interrupt.
|
||||
*
|
||||
* \param _usart Pointer to the USART module.
|
||||
* \param _dreIntLevel Interrupt level of the DRE interrupt.
|
||||
* Use USART_DREINTLVL_t type.
|
||||
*/
|
||||
#define USART_DreInterruptLevel_Set(_usart, _dreIntLevel) \
|
||||
(_usart)->CTRLA = ((_usart)->CTRLA & ~USART_DREINTLVL_gm) | _dreIntLevel
|
||||
|
||||
|
||||
/*! \brief Set the mode the USART run in.
|
||||
*
|
||||
* Set the mode the USART run in. The default mode is asynchronous mode.
|
||||
*
|
||||
* \param _usart Pointer to the USART module register section.
|
||||
* \param _usartMode Selects the USART mode. Use USART_CMODE_t type.
|
||||
*
|
||||
* USART modes:
|
||||
* - 0x0 : Asynchronous mode.
|
||||
* - 0x1 : Synchronous mode.
|
||||
* - 0x2 : IrDA mode.
|
||||
* - 0x3 : Master SPI mode.
|
||||
*/
|
||||
#define USART_SetMode(_usart, _usartMode) \
|
||||
((_usart)->CTRLC = ((_usart)->CTRLC & (~USART_CMODE_gm)) | _usartMode)
|
||||
|
||||
|
||||
|
||||
/*! \brief Check if data register empty flag is set.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
*/
|
||||
#define USART_IsTXDataRegisterEmpty(_usart) (((_usart)->STATUS & USART_DREIF_bm) != 0)
|
||||
|
||||
|
||||
|
||||
/*! \brief Put data (5-8 bit character).
|
||||
*
|
||||
* Use the macro USART_IsTXDataRegisterEmpty before using this function to
|
||||
* put data to the TX register.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
* \param _data The data to send.
|
||||
*/
|
||||
#define USART_PutChar(_usart, _data) ((_usart)->DATA = _data)
|
||||
|
||||
|
||||
|
||||
/*! \brief Checks if the RX complete interrupt flag is set.
|
||||
*
|
||||
* Checks if the RX complete interrupt flag is set.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
*/
|
||||
#define USART_IsRXComplete(_usart) (((_usart)->STATUS & USART_RXCIF_bm) != 0)
|
||||
|
||||
|
||||
|
||||
|
||||
/*! \brief Get received data (5-8 bit character).
|
||||
*
|
||||
* This macro reads out the RX register.
|
||||
* Use the macro USART_RX_Complete to check if anything is received.
|
||||
*
|
||||
* \param _usart The USART module.
|
||||
*
|
||||
* \retval Received data.
|
||||
*/
|
||||
#define USART_GetChar(_usart) ((_usart)->DATA)
|
||||
|
||||
|
||||
/* Functions for interrupt driven driver. */
|
||||
void USART_InterruptDriver_Initialize(USART_data_t * usart_data,
|
||||
USART_t * usart,
|
||||
USART_DREINTLVL_t dreIntLevel );
|
||||
|
||||
void USART_InterruptDriver_DreInterruptLevel_Set(USART_data_t * usart_data,
|
||||
USART_DREINTLVL_t dreIntLevel);
|
||||
|
||||
bool USART_TXBuffer_FreeSpace(USART_data_t * usart_data);
|
||||
bool USART_TXBuffer_PutByte(USART_data_t * usart_data, uint8_t data);
|
||||
bool USART_RXBufferData_Available(USART_data_t * usart_data);
|
||||
uint8_t USART_RXBuffer_GetByte(USART_data_t * usart_data);
|
||||
bool USART_RXComplete(USART_data_t * usart_data);
|
||||
void USART_DataRegEmpty(USART_data_t * usart_data);
|
||||
|
||||
/* Functions for polled driver. */
|
||||
void USART_NineBits_PutChar(USART_t * usart, uint16_t data);
|
||||
uint16_t USART_NineBits_GetChar(USART_t * usart);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,3 @@
|
||||
Firmware for all final boards should go here.
|
||||
|
||||
All firmware developed using Atmel Studio 6.2.
|
||||
@@ -0,0 +1,52 @@
|
||||
DriveFeedback.d DriveFeedback.o: .././DriveFeedback.cpp \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iom328p.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iom328p.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||
@@ -0,0 +1 @@
|
||||
:00000001FF
|
||||
Binary file not shown.
@@ -0,0 +1,188 @@
|
||||
:100000000C9434000C9451000C9451000C94510049
|
||||
:100010000C9451000C9451000C9451000C9451001C
|
||||
:100020000C9451000C9451000C9451000C9451000C
|
||||
:100030000C9451000C9451000C9451000C945100FC
|
||||
:100040000C9451000C9451000C9451000C945100EC
|
||||
:100050000C9451000C9451000C9451000C945100DC
|
||||
:100060000C9451000C94510011241FBECFEFD8E026
|
||||
:10007000DEBFCDBF11E0A0E0B1E0E2E6FBE002C0F0
|
||||
:1000800005900D92A433B107D9F721E0A4E3B1E0C4
|
||||
:1000900001C01D92A839B207E1F70E94BE000C947E
|
||||
:1000A000AF050C940000389839983A983B983C98E2
|
||||
:1000B0003D9852985398549A559A569A579A219A1D
|
||||
:1000C000229A299A5F9A2A98519A5098089520E086
|
||||
:1000D00030E040E851E40E947B029B01AC0160E00B
|
||||
:1000E00074E284E79BE40E94910120E030E040E864
|
||||
:1000F0005FE30E942C010E94F9017093C500609398
|
||||
:10010000C40088E98093C10086E08093C20008950E
|
||||
:10011000E0ECF0E0908195FFFDCF8093C60008955C
|
||||
:10012000CF93DF93EC018881882331F021960E94E0
|
||||
:10013000880089918111FBCFDF91CF91089596B10D
|
||||
:1001400066B146B186B156B156B159B159B1627076
|
||||
:1001500070E0660F771F292F217030E0262B372B98
|
||||
:10016000447050E0440F551F440F551F242B352B6E
|
||||
:100170008870880F880F880F822B08950E94530083
|
||||
:100180002FEF89E698E1215080409040E1F700C0D0
|
||||
:10019000000060E070E086E196E40E9467002FEFC7
|
||||
:1001A00089E698E1215080409040E1F700C00000CE
|
||||
:1001B00080E091E00E9490002FEF87EA91E62150C5
|
||||
:1001C00080409040E1F700C000000CE111E0C4E382
|
||||
:1001D000D1E05C985D985E9A8FE39CE90197F1F716
|
||||
:1001E00000C000000E949F005D9A8FE39CE9019788
|
||||
:1001F000F1F700C000000E949F005D985E988FE3B9
|
||||
:100200009CE90197F1F700C000000E949F005D9AF1
|
||||
:100210008FE39CE90197F1F700C000000E949F0066
|
||||
:100220005C9A1F928F931F930F93DF93CF930E943B
|
||||
:10023000DE02CE010E9490008FEF91EE24E081500B
|
||||
:1002400090402040E1F700C000000F900F900F9009
|
||||
:100250000F900F900F90BDCF5058BB27AA270ED0FC
|
||||
:1002600010C101D130F006D120F031F49F3F11F4DC
|
||||
:100270001EF4F6C00EF4E095E7FBECC0E92F12D1B6
|
||||
:1002800080F3BA17620773078407950718F071F4B3
|
||||
:100290009EF52AC10EF4E0950B2EBA2FA02D0B016E
|
||||
:1002A000B90190010C01CA01A0011124FF27591BBB
|
||||
:1002B00099F0593F50F4503E68F11A16F040A22FC1
|
||||
:1002C000232F342F4427585FF3CF46953795279532
|
||||
:1002D000A795F0405395C9F77EF41F16BA0B620B31
|
||||
:1002E000730B840BBAF09150A1F0FF0FBB1F661F78
|
||||
:1002F000771F881FC2F70EC0BA0F621F731F841FBB
|
||||
:1003000048F4879577956795B795F7959E3F08F0E0
|
||||
:10031000B3CF9395880F08F09927EE0F979587959F
|
||||
:1003200008950CD0AEC0A6D040F09DD030F021F49E
|
||||
:100330005F3F19F08FC05111D8C092C0B3D098F36D
|
||||
:100340009923C9F35523B1F3951B550BBB27AA2756
|
||||
:1003500062177307840738F09F5F5F4F220F331FC8
|
||||
:10036000441FAA1FA9F333D00E2E3AF0E0E830D094
|
||||
:1003700091505040E695001CCAF729D0FE2F27D097
|
||||
:10038000660F771F881FBB1F261737074807AB0765
|
||||
:10039000B0E809F0BB0B802DBF01FF2793585F4FDA
|
||||
:1003A0002AF09E3F510568F055C09FC05F3FECF3B7
|
||||
:1003B000983EDCF3869577956795B795F7959F5F9F
|
||||
:1003C000C9F7880F911D9695879597F90895E1E0F3
|
||||
:1003D000660F771F881FBB1F621773078407BA0752
|
||||
:1003E00020F0621B730B840BBA0BEE1F88F7E095AD
|
||||
:1003F000089504D06894B11178C008955BD088F056
|
||||
:100400009F5790F0B92F9927B751A0F0D1F0660F00
|
||||
:10041000771F881F991F1AF0BA95C9F712C0B1301B
|
||||
:1004200081F062D0B1E008955FC0672F782F8827F0
|
||||
:10043000B85F39F0B93FCCF3869577956795B3955A
|
||||
:10044000D9F73EF490958095709561957F4F8F4FC9
|
||||
:100450009F4F089597F99F6780E870E060E00895E6
|
||||
:100460009FEF80EC089500240A94161617061806CC
|
||||
:100470000906089500240A941216130614060506A8
|
||||
:100480000895092E0394000C11F4882352F0BB0F39
|
||||
:1004900040F4BF2B11F460FF04C06F5F7F4F8F4F9C
|
||||
:1004A0009F4F089557FD9058440F551F59F05F3FD7
|
||||
:1004B00071F04795880F97FB991F61F09F3F79F086
|
||||
:1004C00087950895121613061406551FF2CF469508
|
||||
:1004D000F1DF08C0161617061806991FF1CF86958A
|
||||
:1004E0007105610508940895E894BB27662777276E
|
||||
:1004F000CB0197F908950BD0C4CFB5DF28F0BADF50
|
||||
:1005000018F0952309F0A6CFABCF1124EECFCADFA8
|
||||
:10051000A0F3959FD1F3950F50E0551F629FF00116
|
||||
:10052000729FBB27F00DB11D639FAA27F00DB11D6F
|
||||
:10053000AA1F649F6627B00DA11D661F829F2227F8
|
||||
:10054000B00DA11D621F739FB00DA11D621F839F7F
|
||||
:10055000A00D611D221F749F3327A00D611D231F55
|
||||
:10056000849F600D211D822F762F6A2F11249F57A3
|
||||
:1005700050408AF0E1F088234AF0EE0FFF1FBB1FC6
|
||||
:10058000661F771F881F91505040A9F79E3F510565
|
||||
:1005900070F060CFAACF5F3FECF3983EDCF3869516
|
||||
:1005A00077956795B795F795E7959F5FC1F7FE2B10
|
||||
:1005B000880F911D9695879597F90895AEE0B0E064
|
||||
:1005C000E4EEF2E00C9486050D891E8986E08C83AA
|
||||
:1005D0001A8309838FEF9FE79E838D83AE01475E69
|
||||
:1005E0005F4F6F89788DCE0101960E940003EF81E5
|
||||
:1005F000F885E00FF11F10822E96E4E00C94A2051E
|
||||
:10060000ACE0B0E0E6E0F3E00C9478057C016B012F
|
||||
:100610008A01FC0117821682838181FFBDC1CE0150
|
||||
:1006200001964C01F7019381F60193FD859193FFAB
|
||||
:1006300081916F01882309F4ABC1853239F493FDB0
|
||||
:10064000859193FF81916F01853229F4B70190E084
|
||||
:100650000E94E804E7CF512C312C20E02032A0F496
|
||||
:100660008B3269F030F4803259F0833269F42061C2
|
||||
:100670002CC08D3239F0803339F4216026C02260DD
|
||||
:10068000246023C0286021C027FD27C030ED380F2B
|
||||
:100690003A3078F426FF06C0FAE05F9E300D112450
|
||||
:1006A000532E13C08AE0389E300D1124332E206261
|
||||
:1006B0000CC08E3221F426FD6BC1206406C08C363E
|
||||
:1006C00011F4206802C0883641F4F60193FD85914B
|
||||
:1006D00093FF81916F018111C1CF982F9F7D955418
|
||||
:1006E000933028F40C5F1F4FFFE3F9830DC083366E
|
||||
:1006F00031F0833771F0833509F05BC022C0F80117
|
||||
:10070000808189830E5F1F4F44244394512C5401F0
|
||||
:1007100015C03801F2E06F0E711CF801A080B180A5
|
||||
:1007200026FF03C0652D70E002C06FEF7FEFC501AB
|
||||
:100730002C870E94DD042C0183012C852F77222E2B
|
||||
:1007400017C03801F2E06F0E711CF801A080B18073
|
||||
:1007500026FF03C0652D70E002C06FEF7FEFC5017B
|
||||
:100760002C870E94D2042C012C852068222E830124
|
||||
:1007700023FC1BC0832D90E048165906B0F4B70146
|
||||
:1007800080E290E00E94E8043A94F4CFF50127FC5F
|
||||
:10079000859127FE81915F01B70190E00E94E804F6
|
||||
:1007A00031103A94F1E04F1A51084114510471F795
|
||||
:1007B000E5C0843611F0893639F5F80127FF07C006
|
||||
:1007C00060817181828193810C5F1F4F08C06081BD
|
||||
:1007D0007181882777FD8095982F0E5F1F4F2F76A8
|
||||
:1007E000B22E97FF09C090958095709561957F4FC7
|
||||
:1007F0008F4F9F4F2068B22E2AE030E0A4010E9464
|
||||
:100800001A05A82EA81844C0853729F42F7EB22EC9
|
||||
:100810002AE030E025C0F22FF97FBF2E8F36C1F0DD
|
||||
:1008200018F4883579F0B4C0803719F0883721F092
|
||||
:10083000AFC02F2F2061B22EB4FE0DC08B2D84606F
|
||||
:10084000B82E09C024FF0AC09F2F9660B92E06C09B
|
||||
:1008500028E030E005C020E130E002C020E132E0D5
|
||||
:10086000F801B7FE07C060817181828193810C5FBE
|
||||
:100870001F4F06C06081718180E090E00E5F1F4FC6
|
||||
:10088000A4010E941A05A82EA818FB2DFF77BF2EE1
|
||||
:10089000B6FE0BC02B2D2E7FA51450F4B4FE0AC05B
|
||||
:1008A000B2FC08C02B2D2E7E05C07A2C2B2D03C048
|
||||
:1008B0007A2C01C0752C24FF0DC0FE01EA0DF11D3C
|
||||
:1008C0008081803311F4297E09C022FF06C0739411
|
||||
:1008D000739404C0822F867809F0739423FD13C0AB
|
||||
:1008E00020FF06C05A2C731418F4530C5718732C9D
|
||||
:1008F000731468F4B70180E290E02C870E94E8044A
|
||||
:1009000073942C85F5CF731410F4371801C0312C73
|
||||
:1009100024FF12C0B70180E390E02C870E94E80416
|
||||
:100920002C8522FF17C021FF03C088E590E002C09C
|
||||
:1009300088E790E0B7010CC0822F867859F021FD3E
|
||||
:1009400002C080E201C08BE227FD8DE2B70190E09A
|
||||
:100950000E94E804A51438F4B70180E390E00E94F7
|
||||
:10096000E8045A94F7CFAA94F401EA0DF11D8081AE
|
||||
:10097000B70190E00E94E804A110F5CF332009F4FC
|
||||
:1009800051CEB70180E290E00E94E8043A94F6CF9D
|
||||
:10099000F7018681978102C08FEF9FEF2C96E2E1ED
|
||||
:1009A0000C949405FC010590615070400110D8F73B
|
||||
:1009B000809590958E0F9F1F0895FC0161507040A7
|
||||
:1009C00001900110D8F7809590958E0F9F1F089584
|
||||
:1009D0000F931F93CF93DF93182F092FEB018B8178
|
||||
:1009E00081FD03C08FEF9FEF20C082FF10C04E81BA
|
||||
:1009F0005F812C813D81421753077CF4E881F981A6
|
||||
:100A00009F012F5F3F4F39832883108306C0E885FD
|
||||
:100A1000F985812F0995892B29F72E813F812F5F39
|
||||
:100A20003F4F3F832E83812F902FDF91CF911F91D6
|
||||
:100A30000F910895FA01AA27283051F1203181F150
|
||||
:100A4000E8946F936E7F6E5F7F4F8F4F9F4FAF4FD6
|
||||
:100A5000B1E03ED0B4E03CD0670F781F891F9A1FE9
|
||||
:100A6000A11D680F791F8A1F911DA11D6A0F711D9D
|
||||
:100A7000811D911DA11D20D009F468943F912AE0A9
|
||||
:100A8000269F11243019305D3193DEF6CF01089591
|
||||
:100A9000462F4770405D4193B3E00FD0C9F7F6CFC2
|
||||
:100AA000462F4F70405D4A3318F0495D31FD40528A
|
||||
:100AB000419302D0A9F7EACFB4E0A6959795879520
|
||||
:100AC00077956795BA95C9F70097610571050895FF
|
||||
:100AD0009B01AC010A2E06945795479537952795AB
|
||||
:100AE000BA95C9F7620F731F841F951FA01D089543
|
||||
:100AF0002F923F924F925F926F927F928F929F922E
|
||||
:100B0000AF92BF92CF92DF92EF92FF920F931F931B
|
||||
:100B1000CF93DF93CDB7DEB7CA1BDB0B0FB6F894CC
|
||||
:100B2000DEBF0FBECDBF09942A88398848885F840C
|
||||
:100B30006E847D848C849B84AA84B984C884DF807D
|
||||
:100B4000EE80FD800C811B81AA81B981CE0FD11D61
|
||||
:100B50000FB6F894DEBF0FBECDBFED010895F89437
|
||||
:020B6000FFCFC5
|
||||
:100B620044657669636520496E697469616C697A66
|
||||
:100B720065642121210D0A0D0A0D0A0054686520C1
|
||||
:100B82006C73622076616C75652069733A20256406
|
||||
:040B92002E0D0A001A
|
||||
:00000001FF
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,679 @@
|
||||
Archive member included because of file (symbol)
|
||||
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3.o)
|
||||
DriveFeedback.o (__subsf3)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3x.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3.o) (__addsf3x)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(divsf3.o)
|
||||
DriveFeedback.o (__divsf3)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(divsf3x.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(divsf3.o) (__divsf3x)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
|
||||
DriveFeedback.o (__fixsfsi)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fixsfsi.o) (__fixunssfsi)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_inf.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_inf)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_nan.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_nan)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_pscA)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_pscB)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_round.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3.o) (__fp_round)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_split3.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_split3)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_zero.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_zero)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(mulsf3.o)
|
||||
DriveFeedback.o (__mulsf3)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(mulsf3.o) (__mulsf3x)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o (exit)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
DriveFeedback.o (__do_copy_data)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
DriveFeedback.o (__do_clear_bss)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||
DriveFeedback.o (sprintf)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o) (vfprintf)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (strnlen_P)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (strnlen)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (fputc)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (__ultoa_invert)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o) (__prologue_saves__)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o) (__epilogue_restores__)
|
||||
|
||||
Discarded input sections
|
||||
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||
.text 0x00000000 0x0 DriveFeedback.o
|
||||
.bss 0x00000000 0x0 DriveFeedback.o
|
||||
.bss.RightValBuffer
|
||||
0x00000000 0x4 DriveFeedback.o
|
||||
.bss.LeftValBuffer
|
||||
0x00000000 0x4 DriveFeedback.o
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3x.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3x.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(divsf3.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(divsf3.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(divsf3x.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(divsf3x.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_inf.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_inf.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_nan.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_nan.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_round.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_round.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_split3.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_split3.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_zero.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_zero.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(mulsf3.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(mulsf3.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||
|
||||
Memory Configuration
|
||||
|
||||
Name Origin Length Attributes
|
||||
text 0x00000000 0x00020000 xr
|
||||
data 0x00800060 0x0000ffa0 rw !x
|
||||
eeprom 0x00810000 0x00010000 rw !x
|
||||
fuse 0x00820000 0x00000400 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 0x800100
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||
LOAD DriveFeedback.o
|
||||
START GROUP
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a
|
||||
END GROUP
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a
|
||||
START GROUP
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a
|
||||
END GROUP
|
||||
|
||||
.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 0xb62
|
||||
*(.vectors)
|
||||
.vectors 0x00000000 0x68 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||
0x00000000 __vector_default
|
||||
0x00000000 __vectors
|
||||
*(.vectors)
|
||||
*(.progmem.gcc*)
|
||||
0x00000068 . = ALIGN (0x2)
|
||||
0x00000068 __trampolines_start = .
|
||||
*(.trampolines)
|
||||
.trampolines 0x00000068 0x0 linker stubs
|
||||
*(.trampolines*)
|
||||
0x00000068 __trampolines_end = .
|
||||
*(.progmem*)
|
||||
0x00000068 . = ALIGN (0x2)
|
||||
*(.jumptables)
|
||||
*(.jumptables*)
|
||||
*(.lowtext)
|
||||
*(.lowtext*)
|
||||
0x00000068 __ctors_start = .
|
||||
*(.ctors)
|
||||
0x00000068 __ctors_end = .
|
||||
0x00000068 __dtors_start = .
|
||||
*(.dtors)
|
||||
0x00000068 __dtors_end = .
|
||||
SORT(*)(.ctors)
|
||||
SORT(*)(.dtors)
|
||||
*(.init0)
|
||||
.init0 0x00000068 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||
0x00000068 __init
|
||||
*(.init0)
|
||||
*(.init1)
|
||||
*(.init1)
|
||||
*(.init2)
|
||||
.init2 0x00000068 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||
*(.init2)
|
||||
*(.init3)
|
||||
*(.init3)
|
||||
*(.init4)
|
||||
.init4 0x00000074 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
0x00000074 __do_copy_data
|
||||
.init4 0x0000008a 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
0x0000008a __do_clear_bss
|
||||
*(.init4)
|
||||
*(.init5)
|
||||
*(.init5)
|
||||
*(.init6)
|
||||
*(.init6)
|
||||
*(.init7)
|
||||
*(.init7)
|
||||
*(.init8)
|
||||
*(.init8)
|
||||
*(.init9)
|
||||
.init9 0x0000009a 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||
*(.init9)
|
||||
*(.text)
|
||||
.text 0x000000a2 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||
0x000000a2 __vector_22
|
||||
0x000000a2 __vector_1
|
||||
0x000000a2 __vector_24
|
||||
0x000000a2 __vector_12
|
||||
0x000000a2 __bad_interrupt
|
||||
0x000000a2 __vector_6
|
||||
0x000000a2 __vector_3
|
||||
0x000000a2 __vector_23
|
||||
0x000000a2 __vector_25
|
||||
0x000000a2 __vector_11
|
||||
0x000000a2 __vector_13
|
||||
0x000000a2 __vector_17
|
||||
0x000000a2 __vector_19
|
||||
0x000000a2 __vector_7
|
||||
0x000000a2 __vector_5
|
||||
0x000000a2 __vector_4
|
||||
0x000000a2 __vector_9
|
||||
0x000000a2 __vector_2
|
||||
0x000000a2 __vector_21
|
||||
0x000000a2 __vector_15
|
||||
0x000000a2 __vector_8
|
||||
0x000000a2 __vector_14
|
||||
0x000000a2 __vector_10
|
||||
0x000000a2 __vector_16
|
||||
0x000000a2 __vector_18
|
||||
0x000000a2 __vector_20
|
||||
0x000000a6 . = ALIGN (0x2)
|
||||
*(.text.*)
|
||||
.text._Z8PinsInitv
|
||||
0x000000a6 0x28 DriveFeedback.o
|
||||
0x000000a6 _Z8PinsInitv
|
||||
.text._Z10SerialInitd
|
||||
0x000000ce 0x42 DriveFeedback.o
|
||||
0x000000ce _Z10SerialInitd
|
||||
.text._Z14SendByteUSART0c
|
||||
0x00000110 0x10 DriveFeedback.o
|
||||
0x00000110 _Z14SendByteUSART0c
|
||||
.text._Z16SendStringUSART0Pc
|
||||
0x00000120 0x1e DriveFeedback.o
|
||||
0x00000120 _Z16SendStringUSART0Pc
|
||||
.text._Z7ReadAVGv
|
||||
0x0000013e 0x3e DriveFeedback.o
|
||||
0x0000013e _Z7ReadAVGv
|
||||
.text.main 0x0000017c 0xdc DriveFeedback.o
|
||||
0x0000017c main
|
||||
.text.avr-libc.fplib
|
||||
0x00000258 0xa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3.o)
|
||||
0x00000258 __subsf3
|
||||
0x0000025a __addsf3
|
||||
.text.avr-libc.fplib
|
||||
0x00000262 0xc0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3x.o)
|
||||
0x0000027c __addsf3x
|
||||
.text.avr-libc.fplib
|
||||
0x00000322 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(divsf3.o)
|
||||
0x00000322 __divsf3
|
||||
.text.avr-libc.fplib
|
||||
0x00000326 0xcc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(divsf3x.o)
|
||||
0x0000033c __divsf3x
|
||||
0x00000340 __divsf3_pse
|
||||
.text.avr-libc.fplib
|
||||
0x000003f2 0xa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
|
||||
0x000003f2 __fixsfsi
|
||||
.text.avr-libc.fplib
|
||||
0x000003fc 0x58 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
|
||||
0x000003fc __fixunssfsi
|
||||
.text.avr-libc.fplib
|
||||
0x00000454 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_inf.o)
|
||||
0x00000454 __fp_inf
|
||||
.text.avr-libc.fplib
|
||||
0x00000460 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_nan.o)
|
||||
0x00000460 __fp_nan
|
||||
.text.avr-libc.fplib
|
||||
0x00000466 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
|
||||
0x00000466 __fp_pscA
|
||||
.text.avr-libc.fplib
|
||||
0x00000474 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
|
||||
0x00000474 __fp_pscB
|
||||
.text.avr-libc.fplib
|
||||
0x00000482 0x22 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_round.o)
|
||||
0x00000482 __fp_round
|
||||
.text.avr-libc.fplib
|
||||
0x000004a4 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_split3.o)
|
||||
0x000004a4 __fp_split3
|
||||
0x000004b4 __fp_splitA
|
||||
.text.avr-libc.fplib
|
||||
0x000004e8 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_zero.o)
|
||||
0x000004e8 __fp_zero
|
||||
0x000004ea __fp_szero
|
||||
.text.avr-libc.fplib
|
||||
0x000004f6 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(mulsf3.o)
|
||||
0x000004f6 __mulsf3
|
||||
.text.avr-libc.fplib
|
||||
0x000004fa 0xc2 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
|
||||
0x0000050e __mulsf3x
|
||||
0x00000512 __mulsf3_pse
|
||||
.text.avr-libc
|
||||
0x000005bc 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||
0x000005bc sprintf
|
||||
.text.avr-libc
|
||||
0x00000600 0x3a4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
0x00000600 vfprintf
|
||||
.text.avr-libc
|
||||
0x000009a4 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||
0x000009a4 strnlen_P
|
||||
.text.avr-libc
|
||||
0x000009ba 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||
0x000009ba strnlen
|
||||
.text.avr-libc
|
||||
0x000009d0 0x64 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
0x000009d0 fputc
|
||||
.text.avr-libc
|
||||
0x00000a34 0xbc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||
0x00000a34 __ultoa_invert
|
||||
.text.libgcc.prologue
|
||||
0x00000af0 0x38 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||
0x00000af0 __prologue_saves__
|
||||
.text.libgcc.prologue
|
||||
0x00000b28 0x36 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||
0x00000b28 __epilogue_restores__
|
||||
0x00000b5e . = ALIGN (0x2)
|
||||
*(.fini9)
|
||||
.fini9 0x00000b5e 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
0x00000b5e _exit
|
||||
0x00000b5e exit
|
||||
*(.fini9)
|
||||
*(.fini8)
|
||||
*(.fini8)
|
||||
*(.fini7)
|
||||
*(.fini7)
|
||||
*(.fini6)
|
||||
*(.fini6)
|
||||
*(.fini5)
|
||||
*(.fini5)
|
||||
*(.fini4)
|
||||
*(.fini4)
|
||||
*(.fini3)
|
||||
*(.fini3)
|
||||
*(.fini2)
|
||||
*(.fini2)
|
||||
*(.fini1)
|
||||
*(.fini1)
|
||||
*(.fini0)
|
||||
.fini0 0x00000b5e 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
*(.fini0)
|
||||
0x00000b62 _etext = .
|
||||
|
||||
.data 0x00800100 0x34 load address 0x00000b62
|
||||
0x00800100 PROVIDE (__data_start, .)
|
||||
*(.data)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||
.data 0x00800100 0x0 DriveFeedback.o
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(addsf3x.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(divsf3.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(divsf3x.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_inf.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_nan.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_round.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_split3.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(fp_zero.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(mulsf3.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||
*(.data*)
|
||||
*(.rodata)
|
||||
*(.rodata*)
|
||||
.rodata.str1.1
|
||||
0x00800100 0x34 DriveFeedback.o
|
||||
*(.gnu.linkonce.d*)
|
||||
0x00800134 . = ALIGN (0x2)
|
||||
0x00800134 _edata = .
|
||||
0x00800134 PROVIDE (__data_end, .)
|
||||
|
||||
.bss 0x00800134 0x64
|
||||
0x00800134 PROVIDE (__bss_start, .)
|
||||
*(.bss)
|
||||
*(.bss*)
|
||||
.bss.SendBuffer
|
||||
0x00800134 0x64 DriveFeedback.o
|
||||
0x00800134 SendBuffer
|
||||
*(COMMON)
|
||||
0x00800198 PROVIDE (__bss_end, .)
|
||||
0x00000b62 __data_load_start = LOADADDR (.data)
|
||||
0x00000b96 __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||
|
||||
.noinit 0x00800198 0x0
|
||||
0x00800198 PROVIDE (__noinit_start, .)
|
||||
*(.noinit*)
|
||||
0x00800198 PROVIDE (__noinit_end, .)
|
||||
0x00800198 _end = .
|
||||
0x00800198 PROVIDE (__heap_start, .)
|
||||
|
||||
.eeprom 0x00810000 0x0
|
||||
*(.eeprom*)
|
||||
0x00810000 __eeprom_end = .
|
||||
|
||||
.fuse
|
||||
*(.fuse)
|
||||
*(.lfuse)
|
||||
*(.hfuse)
|
||||
*(.efuse)
|
||||
|
||||
.lock
|
||||
*(.lock*)
|
||||
|
||||
.signature
|
||||
*(.signature*)
|
||||
|
||||
.user_signatures
|
||||
*(.user_signatures*)
|
||||
|
||||
.stab
|
||||
*(.stab)
|
||||
|
||||
.stabstr
|
||||
*(.stabstr)
|
||||
|
||||
.stab.excl
|
||||
*(.stab.excl)
|
||||
|
||||
.stab.exclstr
|
||||
*(.stab.exclstr)
|
||||
|
||||
.stab.index
|
||||
*(.stab.index)
|
||||
|
||||
.stab.indexstr
|
||||
*(.stab.indexstr)
|
||||
|
||||
.comment 0x00000000 0x5c
|
||||
*(.comment)
|
||||
.comment 0x00000000 0x30 DriveFeedback.o
|
||||
0x31 (size before relaxing)
|
||||
.comment 0x00000000 0x31 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||
.comment 0x00000030 0x2c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
0x2d (size before relaxing)
|
||||
.comment 0x00000000 0x31 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
|
||||
.note.gnu.build-id
|
||||
*(.note.gnu.build-id)
|
||||
|
||||
.debug
|
||||
*(.debug)
|
||||
|
||||
.line
|
||||
*(.line)
|
||||
|
||||
.debug_srcinfo
|
||||
*(.debug_srcinfo)
|
||||
|
||||
.debug_sfnames
|
||||
*(.debug_sfnames)
|
||||
|
||||
.debug_aranges 0x00000000 0x48
|
||||
*(.debug_aranges)
|
||||
.debug_aranges
|
||||
0x00000000 0x48 DriveFeedback.o
|
||||
|
||||
.debug_pubnames
|
||||
*(.debug_pubnames)
|
||||
|
||||
.debug_info 0x00000000 0x52b
|
||||
*(.debug_info .gnu.linkonce.wi.*)
|
||||
.debug_info 0x00000000 0x52b DriveFeedback.o
|
||||
|
||||
.debug_abbrev 0x00000000 0x22e
|
||||
*(.debug_abbrev)
|
||||
.debug_abbrev 0x00000000 0x22e DriveFeedback.o
|
||||
|
||||
.debug_line 0x00000000 0x25d
|
||||
*(.debug_line .debug_line.* .debug_line_end)
|
||||
.debug_line 0x00000000 0x25d DriveFeedback.o
|
||||
|
||||
.debug_frame 0x00000000 0x98
|
||||
*(.debug_frame)
|
||||
.debug_frame 0x00000000 0x98 DriveFeedback.o
|
||||
|
||||
.debug_str 0x00000000 0x2be
|
||||
*(.debug_str)
|
||||
.debug_str 0x00000000 0x2be DriveFeedback.o
|
||||
0x2f7 (size before relaxing)
|
||||
|
||||
.debug_loc 0x00000000 0x23c
|
||||
*(.debug_loc)
|
||||
.debug_loc 0x00000000 0x23c DriveFeedback.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 0x00000000 0x38
|
||||
*(.debug_ranges)
|
||||
.debug_ranges 0x00000000 0x38 DriveFeedback.o
|
||||
|
||||
.debug_macro
|
||||
*(.debug_macro)
|
||||
OUTPUT(DriveFeedback.elf elf32-avr)
|
||||
LOAD linker stubs
|
||||
Binary file not shown.
@@ -0,0 +1,189 @@
|
||||
S01500004472697665466565646261636B2E7372656310
|
||||
S11300000C9434000C9451000C9451000C94510045
|
||||
S11300100C9451000C9451000C9451000C94510018
|
||||
S11300200C9451000C9451000C9451000C94510008
|
||||
S11300300C9451000C9451000C9451000C945100F8
|
||||
S11300400C9451000C9451000C9451000C945100E8
|
||||
S11300500C9451000C9451000C9451000C945100D8
|
||||
S11300600C9451000C94510011241FBECFEFD8E022
|
||||
S1130070DEBFCDBF11E0A0E0B1E0E2E6FBE002C0EC
|
||||
S113008005900D92A433B107D9F721E0A4E3B1E0C0
|
||||
S113009001C01D92A839B207E1F70E94BE000C947A
|
||||
S11300A0AF050C940000389839983A983B983C98DE
|
||||
S11300B03D9852985398549A559A569A579A219A19
|
||||
S11300C0229A299A5F9A2A98519A5098089520E082
|
||||
S11300D030E040E851E40E947B029B01AC0160E007
|
||||
S11300E074E284E79BE40E94910120E030E040E860
|
||||
S11300F05FE30E942C010E94F9017093C500609394
|
||||
S1130100C40088E98093C10086E08093C20008950A
|
||||
S1130110E0ECF0E0908195FFFDCF8093C600089558
|
||||
S1130120CF93DF93EC018881882331F021960E94DC
|
||||
S1130130880089918111FBCFDF91CF91089596B109
|
||||
S113014066B146B186B156B156B159B159B1627072
|
||||
S113015070E0660F771F292F217030E0262B372B94
|
||||
S1130160447050E0440F551F440F551F242B352B6A
|
||||
S11301708870880F880F880F822B08950E9453007F
|
||||
S11301802FEF89E698E1215080409040E1F700C0CC
|
||||
S1130190000060E070E086E196E40E9467002FEFC3
|
||||
S11301A089E698E1215080409040E1F700C00000CA
|
||||
S11301B080E091E00E9490002FEF87EA91E62150C1
|
||||
S11301C080409040E1F700C000000CE111E0C4E37E
|
||||
S11301D0D1E05C985D985E9A8FE39CE90197F1F712
|
||||
S11301E000C000000E949F005D9A8FE39CE9019784
|
||||
S11301F0F1F700C000000E949F005D985E988FE3B5
|
||||
S11302009CE90197F1F700C000000E949F005D9AED
|
||||
S11302108FE39CE90197F1F700C000000E949F0062
|
||||
S11302205C9A1F928F931F930F93DF93CF930E9437
|
||||
S1130230DE02CE010E9490008FEF91EE24E0815007
|
||||
S113024090402040E1F700C000000F900F900F9005
|
||||
S11302500F900F900F90BDCF5058BB27AA270ED0F8
|
||||
S113026010C101D130F006D120F031F49F3F11F4D8
|
||||
S11302701EF4F6C00EF4E095E7FBECC0E92F12D1B2
|
||||
S113028080F3BA17620773078407950718F071F4AF
|
||||
S11302909EF52AC10EF4E0950B2EBA2FA02D0B016A
|
||||
S11302A0B90190010C01CA01A0011124FF27591BB7
|
||||
S11302B099F0593F50F4503E68F11A16F040A22FBD
|
||||
S11302C0232F342F4427585FF3CF4695379527952E
|
||||
S11302D0A795F0405395C9F77EF41F16BA0B620B2D
|
||||
S11302E0730B840BBAF09150A1F0FF0FBB1F661F74
|
||||
S11302F0771F881FC2F70EC0BA0F621F731F841FB7
|
||||
S113030048F4879577956795B795F7959E3F08F0DC
|
||||
S1130310B3CF9395880F08F09927EE0F979587959B
|
||||
S113032008950CD0AEC0A6D040F09DD030F021F49A
|
||||
S11303305F3F19F08FC05111D8C092C0B3D098F369
|
||||
S11303409923C9F35523B1F3951B550BBB27AA2752
|
||||
S113035062177307840738F09F5F5F4F220F331FC4
|
||||
S1130360441FAA1FA9F333D00E2E3AF0E0E830D090
|
||||
S113037091505040E695001CCAF729D0FE2F27D093
|
||||
S1130380660F771F881FBB1F261737074807AB0761
|
||||
S1130390B0E809F0BB0B802DBF01FF2793585F4FD6
|
||||
S11303A02AF09E3F510568F055C09FC05F3FECF3B3
|
||||
S11303B0983EDCF3869577956795B795F7959F5F9B
|
||||
S11303C0C9F7880F911D9695879597F90895E1E0EF
|
||||
S11303D0660F771F881FBB1F621773078407BA074E
|
||||
S11303E020F0621B730B840BBA0BEE1F88F7E095A9
|
||||
S11303F0089504D06894B11178C008955BD088F052
|
||||
S11304009F5790F0B92F9927B751A0F0D1F0660FFC
|
||||
S1130410771F881F991F1AF0BA95C9F712C0B13017
|
||||
S113042081F062D0B1E008955FC0672F782F8827EC
|
||||
S1130430B85F39F0B93FCCF3869577956795B39556
|
||||
S1130440D9F73EF490958095709561957F4F8F4FC5
|
||||
S11304509F4F089597F99F6780E870E060E00895E2
|
||||
S11304609FEF80EC089500240A94161617061806C8
|
||||
S11304700906089500240A941216130614060506A4
|
||||
S11304800895092E0394000C11F4882352F0BB0F35
|
||||
S113049040F4BF2B11F460FF04C06F5F7F4F8F4F98
|
||||
S11304A09F4F089557FD9058440F551F59F05F3FD3
|
||||
S11304B071F04795880F97FB991F61F09F3F79F082
|
||||
S11304C087950895121613061406551FF2CF469504
|
||||
S11304D0F1DF08C0161617061806991FF1CF869586
|
||||
S11304E07105610508940895E894BB27662777276A
|
||||
S11304F0CB0197F908950BD0C4CFB5DF28F0BADF4C
|
||||
S113050018F0952309F0A6CFABCF1124EECFCADFA4
|
||||
S1130510A0F3959FD1F3950F50E0551F629FF00112
|
||||
S1130520729FBB27F00DB11D639FAA27F00DB11D6B
|
||||
S1130530AA1F649F6627B00DA11D661F829F2227F4
|
||||
S1130540B00DA11D621F739FB00DA11D621F839F7B
|
||||
S1130550A00D611D221F749F3327A00D611D231F51
|
||||
S1130560849F600D211D822F762F6A2F11249F579F
|
||||
S113057050408AF0E1F088234AF0EE0FFF1FBB1FC2
|
||||
S1130580661F771F881F91505040A9F79E3F510561
|
||||
S113059070F060CFAACF5F3FECF3983EDCF3869512
|
||||
S11305A077956795B795F795E7959F5FC1F7FE2B0C
|
||||
S11305B0880F911D9695879597F90895AEE0B0E060
|
||||
S11305C0E4EEF2E00C9486050D891E8986E08C83A6
|
||||
S11305D01A8309838FEF9FE79E838D83AE01475E65
|
||||
S11305E05F4F6F89788DCE0101960E940003EF81E1
|
||||
S11305F0F885E00FF11F10822E96E4E00C94A2051A
|
||||
S1130600ACE0B0E0E6E0F3E00C9478057C016B012B
|
||||
S11306108A01FC0117821682838181FFBDC1CE014C
|
||||
S113062001964C01F7019381F60193FD859193FFA7
|
||||
S113063081916F01882309F4ABC1853239F493FDAC
|
||||
S1130640859193FF81916F01853229F4B70190E080
|
||||
S11306500E94E804E7CF512C312C20E02032A0F492
|
||||
S11306608B3269F030F4803259F0833269F42061BE
|
||||
S11306702CC08D3239F0803339F4216026C02260D9
|
||||
S1130680246023C0286021C027FD27C030ED380F27
|
||||
S11306903A3078F426FF06C0FAE05F9E300D11244C
|
||||
S11306A0532E13C08AE0389E300D1124332E20625D
|
||||
S11306B00CC08E3221F426FD6BC1206406C08C363A
|
||||
S11306C011F4206802C0883641F4F60193FD859147
|
||||
S11306D093FF81916F018111C1CF982F9F7D955414
|
||||
S11306E0933028F40C5F1F4FFFE3F9830DC083366A
|
||||
S11306F031F0833771F0833509F05BC022C0F80113
|
||||
S1130700808189830E5F1F4F44244394512C5401EC
|
||||
S113071015C03801F2E06F0E711CF801A080B180A1
|
||||
S113072026FF03C0652D70E002C06FEF7FEFC501A7
|
||||
S11307302C870E94DD042C0183012C852F77222E27
|
||||
S113074017C03801F2E06F0E711CF801A080B1806F
|
||||
S113075026FF03C0652D70E002C06FEF7FEFC50177
|
||||
S11307602C870E94D2042C012C852068222E830120
|
||||
S113077023FC1BC0832D90E048165906B0F4B70142
|
||||
S113078080E290E00E94E8043A94F4CFF50127FC5B
|
||||
S1130790859127FE81915F01B70190E00E94E804F2
|
||||
S11307A031103A94F1E04F1A51084114510471F791
|
||||
S11307B0E5C0843611F0893639F5F80127FF07C002
|
||||
S11307C060817181828193810C5F1F4F08C06081B9
|
||||
S11307D07181882777FD8095982F0E5F1F4F2F76A4
|
||||
S11307E0B22E97FF09C090958095709561957F4FC3
|
||||
S11307F08F4F9F4F2068B22E2AE030E0A4010E9460
|
||||
S11308001A05A82EA81844C0853729F42F7EB22EC5
|
||||
S11308102AE030E025C0F22FF97FBF2E8F36C1F0D9
|
||||
S113082018F4883579F0B4C0803719F0883721F08E
|
||||
S1130830AFC02F2F2061B22EB4FE0DC08B2D84606B
|
||||
S1130840B82E09C024FF0AC09F2F9660B92E06C097
|
||||
S113085028E030E005C020E130E002C020E132E0D1
|
||||
S1130860F801B7FE07C060817181828193810C5FBA
|
||||
S11308701F4F06C06081718180E090E00E5F1F4FC2
|
||||
S1130880A4010E941A05A82EA818FB2DFF77BF2EDD
|
||||
S1130890B6FE0BC02B2D2E7FA51450F4B4FE0AC057
|
||||
S11308A0B2FC08C02B2D2E7E05C07A2C2B2D03C044
|
||||
S11308B07A2C01C0752C24FF0DC0FE01EA0DF11D38
|
||||
S11308C08081803311F4297E09C022FF06C073940D
|
||||
S11308D0739404C0822F867809F0739423FD13C0A7
|
||||
S11308E020FF06C05A2C731418F4530C5718732C99
|
||||
S11308F0731468F4B70180E290E02C870E94E80446
|
||||
S113090073942C85F5CF731410F4371801C0312C6F
|
||||
S113091024FF12C0B70180E390E02C870E94E80412
|
||||
S11309202C8522FF17C021FF03C088E590E002C098
|
||||
S113093088E790E0B7010CC0822F867859F021FD3A
|
||||
S113094002C080E201C08BE227FD8DE2B70190E096
|
||||
S11309500E94E804A51438F4B70180E390E00E94F3
|
||||
S1130960E8045A94F7CFAA94F401EA0DF11D8081AA
|
||||
S1130970B70190E00E94E804A110F5CF332009F4F8
|
||||
S113098051CEB70180E290E00E94E8043A94F6CF99
|
||||
S1130990F7018681978102C08FEF9FEF2C96E2E1E9
|
||||
S11309A00C949405FC010590615070400110D8F737
|
||||
S11309B0809590958E0F9F1F0895FC0161507040A3
|
||||
S11309C001900110D8F7809590958E0F9F1F089580
|
||||
S11309D00F931F93CF93DF93182F092FEB018B8174
|
||||
S11309E081FD03C08FEF9FEF20C082FF10C04E81B6
|
||||
S11309F05F812C813D81421753077CF4E881F981A2
|
||||
S1130A009F012F5F3F4F39832883108306C0E885F9
|
||||
S1130A10F985812F0995892B29F72E813F812F5F35
|
||||
S1130A203F4F3F832E83812F902FDF91CF911F91D2
|
||||
S1130A300F910895FA01AA27283051F1203181F14C
|
||||
S1130A40E8946F936E7F6E5F7F4F8F4F9F4FAF4FD2
|
||||
S1130A50B1E03ED0B4E03CD0670F781F891F9A1FE5
|
||||
S1130A60A11D680F791F8A1F911DA11D6A0F711D99
|
||||
S1130A70811D911DA11D20D009F468943F912AE0A5
|
||||
S1130A80269F11243019305D3193DEF6CF0108958D
|
||||
S1130A90462F4770405D4193B3E00FD0C9F7F6CFBE
|
||||
S1130AA0462F4F70405D4A3318F0495D31FD405286
|
||||
S1130AB0419302D0A9F7EACFB4E0A695979587951C
|
||||
S1130AC077956795BA95C9F70097610571050895FB
|
||||
S1130AD09B01AC010A2E06945795479537952795A7
|
||||
S1130AE0BA95C9F7620F731F841F951FA01D08953F
|
||||
S1130AF02F923F924F925F926F927F928F929F922A
|
||||
S1130B00AF92BF92CF92DF92EF92FF920F931F9317
|
||||
S1130B10CF93DF93CDB7DEB7CA1BDB0B0FB6F894C8
|
||||
S1130B20DEBF0FBECDBF09942A88398848885F8408
|
||||
S1130B306E847D848C849B84AA84B984C884DF8079
|
||||
S1130B40EE80FD800C811B81AA81B981CE0FD11D5D
|
||||
S1130B500FB6F894DEBF0FBECDBFED010895F89433
|
||||
S1050B60FFCFC1
|
||||
S1130B6244657669636520496E697469616C697A62
|
||||
S1130B7265642121210D0A0D0A0D0A0054686520BD
|
||||
S1130B826C73622076616C75652069733A20256402
|
||||
S1070B922E0D0A0016
|
||||
S9030000FC
|
||||
@@ -0,0 +1,125 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
SHELL := cmd.exe
|
||||
RM := rm -rf
|
||||
|
||||
USER_OBJS :=
|
||||
|
||||
LIBS :=
|
||||
PROJ :=
|
||||
|
||||
O_SRCS :=
|
||||
C_SRCS :=
|
||||
S_SRCS :=
|
||||
S_UPPER_SRCS :=
|
||||
OBJ_SRCS :=
|
||||
ASM_SRCS :=
|
||||
PREPROCESSING_SRCS :=
|
||||
OBJS :=
|
||||
OBJS_AS_ARGS :=
|
||||
C_DEPS :=
|
||||
C_DEPS_AS_ARGS :=
|
||||
EXECUTABLES :=
|
||||
OUTPUT_FILE_PATH :=
|
||||
OUTPUT_FILE_PATH_AS_ARGS :=
|
||||
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
|
||||
QUOTE := "
|
||||
ADDITIONAL_DEPENDENCIES:=
|
||||
OUTPUT_FILE_DEP:=
|
||||
LIB_DEP:=
|
||||
|
||||
# Every subdirectory with source files must be described here
|
||||
SUBDIRS :=
|
||||
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
C_SRCS += \
|
||||
../DriveFeedback.cpp
|
||||
|
||||
|
||||
PREPROCESSING_SRCS +=
|
||||
|
||||
|
||||
ASM_SRCS +=
|
||||
|
||||
|
||||
OBJS += \
|
||||
DriveFeedback.o
|
||||
|
||||
OBJS_AS_ARGS += \
|
||||
DriveFeedback.o
|
||||
|
||||
C_DEPS += \
|
||||
DriveFeedback.d
|
||||
|
||||
C_DEPS_AS_ARGS += \
|
||||
DriveFeedback.d
|
||||
|
||||
OUTPUT_FILE_PATH +=DriveFeedback.elf
|
||||
|
||||
OUTPUT_FILE_PATH_AS_ARGS +=DriveFeedback.elf
|
||||
|
||||
ADDITIONAL_DEPENDENCIES:=
|
||||
|
||||
OUTPUT_FILE_DEP:= ./makedep.mk
|
||||
|
||||
LIB_DEP+=
|
||||
|
||||
# AVR32/GNU C Compiler
|
||||
|
||||
|
||||
|
||||
./%.o: .././%.cpp
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR8/GNU C Compiler : 4.8.1
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
|
||||
|
||||
# AVR32/GNU Preprocessing Assembler
|
||||
|
||||
|
||||
|
||||
# AVR32/GNU Assembler
|
||||
|
||||
|
||||
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifneq ($(strip $(C_DEPS)),)
|
||||
-include $(C_DEPS)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
|
||||
# All Target
|
||||
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
|
||||
|
||||
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP)
|
||||
@echo Building target: $@
|
||||
@echo Invoking: AVR8/GNU Linker : 4.8.1
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="DriveFeedback.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega328p
|
||||
@echo Finished building target: $@
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "DriveFeedback.elf" "DriveFeedback.hex"
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "DriveFeedback.elf" "DriveFeedback.eep" || exit 0
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "DriveFeedback.elf" > "DriveFeedback.lss"
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "DriveFeedback.elf" "DriveFeedback.srec"
|
||||
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-size.exe" "DriveFeedback.elf"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Other Targets
|
||||
clean:
|
||||
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
|
||||
-$(RM) $(C_DEPS_AS_ARGS)
|
||||
rm -rf "DriveFeedback.elf" "DriveFeedback.a" "DriveFeedback.hex" "DriveFeedback.lss" "DriveFeedback.eep" "DriveFeedback.map" "DriveFeedback.srec" "DriveFeedback.usersignatures"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit or delete the file
|
||||
################################################################################
|
||||
|
||||
DriveFeedback.cpp
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Atmel Studio Solution File, Format Version 11.00
|
||||
Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "DriveFeedback", "DriveFeedback.cppproj", "{355496BA-23D8-49EF-A3EE-BE449ED245C6}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|AVR = Debug|AVR
|
||||
Release|AVR = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{355496BA-23D8-49EF-A3EE-BE449ED245C6}.Debug|AVR.ActiveCfg = Debug|AVR
|
||||
{355496BA-23D8-49EF-A3EE-BE449ED245C6}.Debug|AVR.Build.0 = Debug|AVR
|
||||
{355496BA-23D8-49EF-A3EE-BE449ED245C6}.Release|AVR.ActiveCfg = Release|AVR
|
||||
{355496BA-23D8-49EF-A3EE-BE449ED245C6}.Release|AVR.Build.0 = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user