Added missing classes from final year at OSU

This commit is contained in:
2019-06-17 14:04:15 -07:00
parent 8fa1ffb1b0
commit c717a0316f
166 changed files with 653934 additions and 308 deletions

View File

@@ -0,0 +1,22 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Atmel Studio Solution File, Format Version 11.00
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{18226A42-8477-4023-8AD2-40C49DA407C9}") = "Corwin_Perren_Lab8_remote_sourcecode", "Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asmproj", "{59B1D629-9DCC-43ED-A0FD-8AB0E4D622AB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AVR = Debug|AVR
Release|AVR = Release|AVR
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{59B1D629-9DCC-43ED-A0FD-8AB0E4D622AB}.Debug|AVR.ActiveCfg = Debug|AVR
{59B1D629-9DCC-43ED-A0FD-8AB0E4D622AB}.Debug|AVR.Build.0 = Debug|AVR
{59B1D629-9DCC-43ED-A0FD-8AB0E4D622AB}.Release|AVR.ActiveCfg = Release|AVR
{59B1D629-9DCC-43ED-A0FD-8AB0E4D622AB}.Release|AVR.Build.0 = Release|AVR
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,263 @@
;***********************************************************
;*
;* Enter Name of file here
;*
;* Enter the description of the program here
;*
;* This is the TRANSMIT skeleton file for Lab 8 of ECE 375
;*
;***********************************************************
;*
;* Author: Enter your name
;* Date: Enter Date
;*
;***********************************************************
.include "m128def.inc" ; Include definition file
;***********************************************************
;* Internal Register Definitions and Constants
;***********************************************************
.def mpr = r16 ; Multi-Purpose Register
.def waitcnt = r17 ; Wait Loop Counter
.def ilcnt = r18 ; Inner Loop Counter
.def olcnt = r19 ; Outer Loop Counter
.def speed_reg = r20 ; Store of speed
.def command_reg = r21 ; Reg to store current command
.equ WTime = 15 ; Button debounce time
.equ EngEnR = 4 ; Right Engine Enable Bit
.equ EngEnL = 7 ; Left Engine Enable Bit
.equ EngDirR = 5 ; Right Engine Direction Bit
.equ EngDirL = 6 ; Left Engine Direction Bit
.equ BotAddress = 0x1a ; (Enter your robot's address here (8 bits))
; Use these action codes between the remote and robot
; MSB = 1 thus:
; control signals are shifted right by one and ORed with 0b10000000 = $80
.equ MovFwdCmd = ($80|1<<(EngDirR-1)|1<<(EngDirL-1)) ;0b10110000 Move Forward Action Code
.equ MovBckCmd = ($80|$00) ;0b10000000 Move Backward Action Code
.equ TurnRCmd = ($80|1<<(EngDirL-1)) ;0b10100000 Turn Right Action Code
.equ TurnLCmd = ($80|1<<(EngDirR-1)) ;0b10010000 Turn Left Action Code
.equ HaltCmd = ($80|1<<(EngEnR-1)|1<<(EngEnL-1)) ;0b11001000 Halt Action Code
.equ FreezeCmd = 0b11111000 ;0b11111000 Freeze Action Code
; Input pins for sending control commands
; Note that I had to avoid using the pin
; that is the transmitter on port D
.equ MoveFwdPin = 0
.equ MoveBackPin = 1
.equ MoveLeftPin = 7
.equ MoveRightPin = 6
.equ MoveHaltPin = 5
.equ FreezePin = 4
; Outputs on port D
.equ TXD1 = 3
; Store the upper and lower bytes for ubrr setting
.equ ubrr_low = low(832)
.equ ubrr_high = high(832)
;***********************************************************
;* Start of Code Segment
;***********************************************************
.cseg ; Beginning of code segment
;***********************************************************
;* Interrupt Vectors
;***********************************************************
.org $0000 ; Beginning of IVs
rjmp INIT ; Reset interrupt
.org $0046 ; End of Interrupt Vectors
;***********************************************************
;* Program Initialization
;***********************************************************
INIT:
; Initialize the Stack Pointer
ldi mpr, low(RAMEND) ; Init the 2 stack pointer registers
out SPL, mpr
ldi mpr, high(RAMEND)
out SPH, mpr
; I/O Ports
; Initialize Port D pins for input
ldi mpr, ((0 << MoveFwdPin) | (0 << MoveBackPin) | (0 << MoveLeftPin) | (0 << MoveRightPin) | (0 << MoveHaltPin) | (1 << TXD1))
out DDRD, mpr
; Enable pullups on input pins
ldi mpr, ((1 << MoveFwdPin) | (1 << MoveBackPin) | (1 << MoveLeftPin) | (1 << MoveRightPin) | (1 << MoveHaltPin) | (1 << FreezePin))
out PORTD, mpr
; USART1
; Set baudrate at 2400bps
ldi mpr, ubrr_low
sts UBRR1L, mpr
ldi mpr, ubrr_high
sts UBRR1H, mpr
; Enable transmitter
ldi mpr, ((1 << TXEN1) | (1 << RXEN1))
sts UCSR1B, mpr
; Set frame format: 8 data bits, 2 stop bits
; Double data rate
ldi mpr, (1 << U2X1)
sts UCSR1A, mpr
; 8N2 setting
ldi mpr, ((1 << UCSZ10) | (1 << UCSZ11) | (1 << USBS1))
sts UCSR1C, mpr
;***********************************************************
;* Main Program
;***********************************************************
MAIN:
in mpr, PIND ; Get current state of button pins
sbrs mpr, MoveFwdPin ; Check if forward pin pressed
rcall SendMoveFwd ; Send move forward if pressed
sbrs mpr, MoveBackPin ; Check if back pin pressed
rcall SendMoveBack ; Send move back if pressed
sbrs mpr, MoveLeftPin ; Check if left pin pressed
rcall SendMoveLeft ; Send move left if pressed
sbrs mpr, MoveRightPin ; Check if right pin pressed
rcall SendMoveRight ; Send move right if pressed
sbrs mpr, MoveHaltPin ; Check if halt pin pressed
rcall SendMoveHalt ; Send move halt if pressed
sbrs mpr, FreezePin ; Check if freeze pin pressed
rcall SendFreeze ; Send move freeze if pressed
; Some debounce time for any button presses
ldi waitcnt, WTime ; Wait for 150 milliseconds
rcall Wait ; Call wait function
rjmp MAIN
;***********************************************************
;* Functions and Subroutines
;***********************************************************
SendAddress:
lds mpr, UCSR1A ; Load usart1 status
sbrs mpr, UDRE1 ; Check if data reg empty
rjmp SendAddress ; Jump back until it is
ldi mpr, BotAddress ; Load the bot address
sts UDR1, mpr ; Send the address over serial
ret
SendCommand:
lds mpr, UCSR1A ; Load usart1 status
sbrs mpr, UDRE1 ; Check if data reg empty
rjmp SendCommand ; Jump back until it is
sts UDR1, command_reg ; Send command over serial
ret
SendMoveFwd:
lds mpr, UCSR1A ; Load usart1 status
sbrs mpr, UDRE1 ; Check if data reg empty
rjmp SendMoveFwd ; Jump back until it is
rcall SendAddress ; Send the address
ldi command_reg, MovFwdCmd ; Load move forward command
rcall SendCommand ; Call the subroutine to send it
ldi mpr, 0xFF ; Set mpr to max val so next loop can set it
ret
SendMoveBack:
lds mpr, UCSR1A ; Load usart1 status
sbrs mpr, UDRE1 ; Check if data reg empty
rjmp SendMoveFwd ; Jump back until it is
rcall SendAddress ; Send the address
ldi command_reg, MovBckCmd ; Load move back command
rcall SendCommand ; Call the subroutine to send it
ldi mpr, 0xFF ; Set mpr to max val so next loop can set it
ret
SendMoveLeft:
lds mpr, UCSR1A ; Load usart1 status
sbrs mpr, UDRE1 ; Check if data reg empty
rjmp SendMoveFwd ; Jump back until it is
rcall SendAddress ; Send the address
ldi command_reg, TurnLCmd ; Load turn left command
rcall SendCommand ; Call the subroutine to send it
ldi mpr, 0xFF ; Set mpr to max val so next loop can set it
ret
SendMoveRight:
lds mpr, UCSR1A ; Load usart1 status
sbrs mpr, UDRE1 ; Check if data reg empty
rjmp SendMoveFwd ; Jump back until it is
rcall SendAddress ; Send the address
ldi command_reg, TurnRCmd ; Load turn right command
rcall SendCommand ; Call the subroutine to send it
ldi mpr, 0xFF ; Set mpr to max val so next loop can set it
ret
SendMoveHalt:
lds mpr, UCSR1A ; Load usart1 status
sbrs mpr, UDRE1 ; Check if data reg empty
rjmp SendMoveFwd ; Jump back until it is
rcall SendAddress ; Send the address
ldi command_reg, HaltCmd ; Load halt command
rcall SendCommand ; Call the subroutine to send it
ldi mpr, 0xFF ; Set mpr to max val so next loop can set it
ret
SendFreeze:
lds mpr, UCSR1A ; Load usart1 status
sbrs mpr, UDRE1 ; Check if data reg empty
rjmp SendFreeze ; Jump back until it is
rcall SendAddress ; Send the address
ldi command_reg, FreezeCmd ; Load halt command
rcall SendCommand ; Call the subroutine to send it
ldi mpr, 0xFF ; Set mpr to max val so next loop can set it
ret
Wait:
push waitcnt ; Save wait register
push ilcnt ; Save ilcnt register
push olcnt ; Save olcnt register
Loop: ldi olcnt, 224 ; load olcnt register
OLoop: ldi ilcnt, 237 ; load ilcnt register
ILoop: dec ilcnt ; decrement ilcnt
brne ILoop ; Continue Inner Loop
dec olcnt ; decrement olcnt
brne OLoop ; Continue Outer Loop
dec waitcnt ; Decrement wait
brne Loop ; Continue Wait loop
pop olcnt ; Restore olcnt register
pop ilcnt ; Restore ilcnt register
pop waitcnt ; Restore wait register
ret ; Return from subroutine

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>7.0</ProjectVersion>
<ToolchainName>com.Atmel.AVRAssembler</ToolchainName>
<ProjectGuid>59B1D629-9DCC-43ed-A0FD-8AB0E4D622AB</ProjectGuid>
<avrdeviceseries>none</avrdeviceseries>
<avrdevice>ATmega128</avrdevice>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.obj</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<Language>ASSEMBLY</Language>
<AssemblyName>Corwin_Perren_Lab8_remote_sourcecode</AssemblyName>
<Name>Corwin_Perren_Lab8_remote_sourcecode</Name>
<RootNamespace>Corwin_Perren_Lab8_remote_sourcecode</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<EntryFile>$(MSBuildProjectDirectory)\Corwin_Perren_Lab8_remote_sourcecode.asm</EntryFile>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<CacheFlash>true</CacheFlash>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress />
<UncachedRange />
<preserveEEPROM>true</preserveEEPROM>
<OverrideVtorValue />
<BootSegment>2</BootSegment>
<ResetRule>0</ResetRule>
<eraseonlaunchrule>0</eraseonlaunchrule>
<EraseKey />
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.40.0" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrAssembler>
<avrasm.assembler.general.AdditionalIncludeDirectories>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\avrasm\inc</Value>
</ListValues>
</avrasm.assembler.general.AdditionalIncludeDirectories>
<avrasm.assembler.general.IncludeFile>m128def.inc</avrasm.assembler.general.IncludeFile>
</AvrAssembler>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrAssembler>
<avrasm.assembler.general.AdditionalIncludeDirectories>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\avrasm\inc</Value>
</ListValues>
</avrasm.assembler.general.AdditionalIncludeDirectories>
<avrasm.assembler.general.IncludeFile>m128def.inc</avrasm.assembler.general.IncludeFile>
</AvrAssembler>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="Corwin_Perren_Lab8_remote_sourcecode.asm">
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Assembler.targets" />
</Project>

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement">
<ProjectComponents>
<ProjectComponent z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<CApiVersion></CApiVersion>
<CBundle></CBundle>
<CClass>Device</CClass>
<CGroup>Startup</CGroup>
<CSub></CSub>
<CVariant></CVariant>
<CVendor>Atmel</CVendor>
<CVersion>1.2.0</CVersion>
<DefaultRepoPath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs</DefaultRepoPath>
<DependentComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Description></Description>
<Files xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc</AbsolutePath>
<Attribute></Attribute>
<Category>include</Category>
<Condition>AVRASM</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>avrasm/inc</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc\m128def.inc</AbsolutePath>
<Attribute></Attribute>
<Category>header</Category>
<Condition>AVRASM</Condition>
<FileContentHash>bd3TUV9UtxpdYQkn+6MWPA==</FileContentHash>
<FileVersion></FileVersion>
<Name>avrasm/inc/m128def.inc</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\templates\main.asm</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>AVRASM</Condition>
<FileContentHash>3eRwuFZpVzSU1OGBkc7CFw==</FileContentHash>
<FileVersion></FileVersion>
<Name>avrasm/templates/main.asm</Name>
<SelectString>Main file (.asm)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
</Files>
<PackName>ATmega_DFP</PackName>
<PackPath>C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/Atmel.ATmega_DFP.pdsc</PackPath>
<PackVersion>1.2.209</PackVersion>
<PresentInProject>true</PresentInProject>
<ReferenceConditionId>ATmega128</ReferenceConditionId>
<RteComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string></d4p1:string>
</RteComponents>
<Status>Resolved</Status>
<VersionMode>Fixed</VersionMode>
<IsComponentInAtProject>true</IsComponentInAtProject>
</ProjectComponent>
</ProjectComponents>
</Store>

View File

@@ -0,0 +1,19 @@
:020000020000FC
:0200000045C0F9
:10008C000FEF0DBF00E10EBF08E001BB03EF02BB99
:10009C0000E40093990003E00093980008E10093BA
:1000AC009A0002E000939B000EE000939D0000B3C9
:1000BC0000FF1CD001FF23D007FF2AD006FF31D050
:1000CC0005FF38D004FF3FD01FE046D0F0CF0091A1
:1000DC009B0005FFFCCF0AE100939C000895009162
:1000EC009B0005FFFCCF50939C00089500919B0052
:1000FC0005FFFCCFECDF50EBF2DF0FEF0895009122
:10010C009B0005FFF3CFE3DF50E8E9DF0FEF089525
:10011C0000919B0005FFEACFDADF50E9E0DF0FEF3B
:10012C00089500919B0005FFE1CFD1DF50EAD7DFA6
:10013C000FEF089500919B0005FFD8CFC8DF58EC56
:10014C00CEDF0FEF089500919B0005FFFCCFBFDFC2
:10015C0058EFC5DF0FEF08951F932F933F9330EEA9
:10016C002DEE2A95F1F73A95D9F71A95C1F73F91EB
:06017C002F911F91089570
:00000001FF

View File

@@ -0,0 +1,910 @@
AVRASM ver. 2.2.7 C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm Sun Nov 25 15:14:57 2018
EQU SIGNATURE_000 0000001e
EQU SIGNATURE_001 00000097
EQU SIGNATURE_002 00000002
EQU UCSR1C 0000009d
EQU UDR1 0000009c
EQU UCSR1A 0000009b
EQU UCSR1B 0000009a
EQU UBRR1H 00000098
EQU UBRR1L 00000099
EQU UCSR0C 00000095
EQU UBRR0H 00000090
EQU TCCR3C 0000008c
EQU TCCR3A 0000008b
EQU TCCR3B 0000008a
EQU TCNT3L 00000088
EQU TCNT3H 00000089
EQU OCR3AL 00000086
EQU OCR3AH 00000087
EQU OCR3BL 00000084
EQU OCR3BH 00000085
EQU OCR3CL 00000082
EQU OCR3CH 00000083
EQU ICR3L 00000080
EQU ICR3H 00000081
EQU ETIMSK 0000007d
EQU ETIFR 0000007c
EQU TCCR1C 0000007a
EQU OCR1CL 00000078
EQU OCR1CH 00000079
EQU TWCR 00000074
EQU TWDR 00000073
EQU TWAR 00000072
EQU TWSR 00000071
EQU TWBR 00000070
EQU OSCCAL 0000006f
EQU XMCRA 0000006d
EQU XMCRB 0000006c
EQU EICRA 0000006a
EQU SPMCSR 00000068
EQU PORTG 00000065
EQU DDRG 00000064
EQU PING 00000063
EQU PORTF 00000062
EQU DDRF 00000061
EQU SREG 0000003f
EQU SPL 0000003d
EQU SPH 0000003e
EQU XDIV 0000003c
EQU RAMPZ 0000003b
EQU EICRB 0000003a
EQU EIMSK 00000039
EQU EIFR 00000038
EQU TIMSK 00000037
EQU TIFR 00000036
EQU MCUCR 00000035
EQU MCUCSR 00000034
EQU TCCR0 00000033
EQU TCNT0 00000032
EQU OCR0 00000031
EQU ASSR 00000030
EQU TCCR1A 0000002f
EQU TCCR1B 0000002e
EQU TCNT1L 0000002c
EQU TCNT1H 0000002d
EQU OCR1AL 0000002a
EQU OCR1AH 0000002b
EQU OCR1BL 00000028
EQU OCR1BH 00000029
EQU ICR1L 00000026
EQU ICR1H 00000027
EQU TCCR2 00000025
EQU TCNT2 00000024
EQU OCR2 00000023
EQU OCDR 00000022
EQU WDTCR 00000021
EQU SFIOR 00000020
EQU EEARL 0000001e
EQU EEARH 0000001f
EQU EEDR 0000001d
EQU EECR 0000001c
EQU PORTA 0000001b
EQU DDRA 0000001a
EQU PINA 00000019
EQU PORTB 00000018
EQU DDRB 00000017
EQU PINB 00000016
EQU PORTC 00000015
EQU DDRC 00000014
EQU PINC 00000013
EQU PORTD 00000012
EQU DDRD 00000011
EQU PIND 00000010
EQU SPDR 0000000f
EQU SPSR 0000000e
EQU SPCR 0000000d
EQU UDR0 0000000c
EQU UCSR0A 0000000b
EQU UCSR0B 0000000a
EQU UBRR0L 00000009
EQU ACSR 00000008
EQU ADMUX 00000007
EQU ADCSRA 00000006
EQU ADCH 00000005
EQU ADCL 00000004
EQU PORTE 00000003
EQU DDRE 00000002
EQU PINE 00000001
EQU PINF 00000000
EQU ACME 00000003
EQU ACIS0 00000000
EQU ACIS1 00000001
EQU ACIC 00000002
EQU ACIE 00000003
EQU ACI 00000004
EQU ACO 00000005
EQU ACBG 00000006
EQU ACD 00000007
EQU SPDR0 00000000
EQU SPDR1 00000001
EQU SPDR2 00000002
EQU SPDR3 00000003
EQU SPDR4 00000004
EQU SPDR5 00000005
EQU SPDR6 00000006
EQU SPDR7 00000007
EQU SPI2X 00000000
EQU WCOL 00000006
EQU SPIF 00000007
EQU SPR0 00000000
EQU SPR1 00000001
EQU CPHA 00000002
EQU CPOL 00000003
EQU MSTR 00000004
EQU DORD 00000005
EQU SPE 00000006
EQU SPIE 00000007
EQU I2BR 00000070
EQU TWBR0 00000000
EQU TWBR1 00000001
EQU TWBR2 00000002
EQU TWBR3 00000003
EQU TWBR4 00000004
EQU TWBR5 00000005
EQU TWBR6 00000006
EQU TWBR7 00000007
EQU I2CR 00000074
EQU TWIE 00000000
EQU I2IE 00000000
EQU TWEN 00000002
EQU I2EN 00000002
EQU ENI2C 00000002
EQU TWWC 00000003
EQU I2WC 00000003
EQU TWSTO 00000004
EQU I2STO 00000004
EQU TWSTA 00000005
EQU I2STA 00000005
EQU TWEA 00000006
EQU I2EA 00000006
EQU TWINT 00000007
EQU I2INT 00000007
EQU I2SR 00000071
EQU TWPS0 00000000
EQU TWS0 00000000
EQU I2GCE 00000000
EQU TWPS1 00000001
EQU TWS1 00000001
EQU TWS3 00000003
EQU I2S3 00000003
EQU TWS4 00000004
EQU I2S4 00000004
EQU TWS5 00000005
EQU I2S5 00000005
EQU TWS6 00000006
EQU I2S6 00000006
EQU TWS7 00000007
EQU I2S7 00000007
EQU I2DR 00000073
EQU TWD0 00000000
EQU TWD1 00000001
EQU TWD2 00000002
EQU TWD3 00000003
EQU TWD4 00000004
EQU TWD5 00000005
EQU TWD6 00000006
EQU TWD7 00000007
EQU I2AR 00000072
EQU TWGCE 00000000
EQU TWA0 00000001
EQU TWA1 00000002
EQU TWA2 00000003
EQU TWA3 00000004
EQU TWA4 00000005
EQU TWA5 00000006
EQU TWA6 00000007
EQU UDR00 00000000
EQU UDR01 00000001
EQU UDR02 00000002
EQU UDR03 00000003
EQU UDR04 00000004
EQU UDR05 00000005
EQU UDR06 00000006
EQU UDR07 00000007
EQU MPCM0 00000000
EQU U2X0 00000001
EQU UPE0 00000002
EQU DOR0 00000003
EQU FE0 00000004
EQU UDRE0 00000005
EQU TXC0 00000006
EQU RXC0 00000007
EQU TXB80 00000000
EQU RXB80 00000001
EQU UCSZ02 00000002
EQU UCSZ2 00000002
EQU TXEN0 00000003
EQU RXEN0 00000004
EQU UDRIE0 00000005
EQU TXCIE0 00000006
EQU RXCIE0 00000007
EQU UCPOL0 00000000
EQU UCSZ00 00000001
EQU UCSZ01 00000002
EQU USBS0 00000003
EQU UPM00 00000004
EQU UPM01 00000005
EQU UMSEL0 00000006
EQU UBRR8 00000000
EQU UBRR9 00000001
EQU UBRR10 00000002
EQU UBRR11 00000003
EQU UBRR0 00000000
EQU UBRR1 00000001
EQU UBRR2 00000002
EQU UBRR3 00000003
EQU UBRR4 00000004
EQU UBRR5 00000005
EQU UBRR6 00000006
EQU UBRR7 00000007
EQU UDR10 00000000
EQU UDR11 00000001
EQU UDR12 00000002
EQU UDR13 00000003
EQU UDR14 00000004
EQU UDR15 00000005
EQU UDR16 00000006
EQU UDR17 00000007
EQU MPCM1 00000000
EQU U2X1 00000001
EQU UPE1 00000002
EQU DOR1 00000003
EQU FE1 00000004
EQU UDRE1 00000005
EQU TXC1 00000006
EQU RXC1 00000007
EQU TXB81 00000000
EQU RXB81 00000001
EQU UCSZ12 00000002
EQU TXEN1 00000003
EQU RXEN1 00000004
EQU UDRIE1 00000005
EQU TXCIE1 00000006
EQU RXCIE1 00000007
EQU UCPOL1 00000000
EQU UCSZ10 00000001
EQU UCSZ11 00000002
EQU USBS1 00000003
EQU UPM10 00000004
EQU UPM11 00000005
EQU UMSEL1 00000006
EQU SREG_C 00000000
EQU SREG_Z 00000001
EQU SREG_N 00000002
EQU SREG_V 00000003
EQU SREG_S 00000004
EQU SREG_H 00000005
EQU SREG_T 00000006
EQU SREG_I 00000007
EQU IVCE 00000000
EQU IVSEL 00000001
EQU SM2 00000002
EQU SM0 00000003
EQU SM1 00000004
EQU SE 00000005
EQU SRW10 00000006
EQU SRE 00000007
EQU SRW11 00000001
EQU SRW00 00000002
EQU SRW01 00000003
EQU SRL0 00000004
EQU SRL1 00000005
EQU SRL2 00000006
EQU XMM0 00000000
EQU XMM1 00000001
EQU XMM2 00000002
EQU XMBK 00000007
EQU CAL0 00000000
EQU CAL1 00000001
EQU CAL2 00000002
EQU CAL3 00000003
EQU CAL4 00000004
EQU CAL5 00000005
EQU CAL6 00000006
EQU CAL7 00000007
EQU XDIV0 00000000
EQU XDIV1 00000001
EQU XDIV2 00000002
EQU XDIV3 00000003
EQU XDIV4 00000004
EQU XDIV5 00000005
EQU XDIV6 00000006
EQU XDIVEN 00000007
EQU PORF 00000000
EQU EXTRF 00000001
EQU BORF 00000002
EQU WDRF 00000003
EQU JTRF 00000004
EQU JTD 00000007
EQU RAMPZ0 00000000
EQU SPMCR 00000068
EQU SPMEN 00000000
EQU PGERS 00000001
EQU PGWRT 00000002
EQU BLBSET 00000003
EQU RWWSRE 00000004
EQU ASRE 00000004
EQU RWWSB 00000006
EQU ASB 00000006
EQU SPMIE 00000007
EQU OCDR0 00000000
EQU OCDR1 00000001
EQU OCDR2 00000002
EQU OCDR3 00000003
EQU OCDR4 00000004
EQU OCDR5 00000005
EQU OCDR6 00000006
EQU OCDR7 00000007
EQU IDRD 00000007
EQU PSR321 00000000
EQU PSR1 00000000
EQU PSR2 00000000
EQU PSR3 00000000
EQU PSR0 00000001
EQU PUD 00000002
EQU TSM 00000007
EQU ISC00 00000000
EQU ISC01 00000001
EQU ISC10 00000002
EQU ISC11 00000003
EQU ISC20 00000004
EQU ISC21 00000005
EQU ISC30 00000006
EQU ISC31 00000007
EQU ISC40 00000000
EQU ISC41 00000001
EQU ISC50 00000002
EQU ISC51 00000003
EQU ISC60 00000004
EQU ISC61 00000005
EQU ISC70 00000006
EQU ISC71 00000007
EQU GICR 00000039
EQU GIMSK 00000039
EQU INT0 00000000
EQU INT1 00000001
EQU INT2 00000002
EQU INT3 00000003
EQU INT4 00000004
EQU INT5 00000005
EQU INT6 00000006
EQU INT7 00000007
EQU GIFR 00000038
EQU INTF0 00000000
EQU INTF1 00000001
EQU INTF2 00000002
EQU INTF3 00000003
EQU INTF4 00000004
EQU INTF5 00000005
EQU INTF6 00000006
EQU INTF7 00000007
EQU EEDR0 00000000
EQU EEDR1 00000001
EQU EEDR2 00000002
EQU EEDR3 00000003
EQU EEDR4 00000004
EQU EEDR5 00000005
EQU EEDR6 00000006
EQU EEDR7 00000007
EQU EERE 00000000
EQU EEWE 00000001
EQU EEMWE 00000002
EQU EERIE 00000003
EQU PORTA0 00000000
EQU PA0 00000000
EQU PORTA1 00000001
EQU PA1 00000001
EQU PORTA2 00000002
EQU PA2 00000002
EQU PORTA3 00000003
EQU PA3 00000003
EQU PORTA4 00000004
EQU PA4 00000004
EQU PORTA5 00000005
EQU PA5 00000005
EQU PORTA6 00000006
EQU PA6 00000006
EQU PORTA7 00000007
EQU PA7 00000007
EQU DDA0 00000000
EQU DDA1 00000001
EQU DDA2 00000002
EQU DDA3 00000003
EQU DDA4 00000004
EQU DDA5 00000005
EQU DDA6 00000006
EQU DDA7 00000007
EQU PINA0 00000000
EQU PINA1 00000001
EQU PINA2 00000002
EQU PINA3 00000003
EQU PINA4 00000004
EQU PINA5 00000005
EQU PINA6 00000006
EQU PINA7 00000007
EQU PORTB0 00000000
EQU PB0 00000000
EQU PORTB1 00000001
EQU PB1 00000001
EQU PORTB2 00000002
EQU PB2 00000002
EQU PORTB3 00000003
EQU PB3 00000003
EQU PORTB4 00000004
EQU PB4 00000004
EQU PORTB5 00000005
EQU PB5 00000005
EQU PORTB6 00000006
EQU PB6 00000006
EQU PORTB7 00000007
EQU PB7 00000007
EQU DDB0 00000000
EQU DDB1 00000001
EQU DDB2 00000002
EQU DDB3 00000003
EQU DDB4 00000004
EQU DDB5 00000005
EQU DDB6 00000006
EQU DDB7 00000007
EQU PINB0 00000000
EQU PINB1 00000001
EQU PINB2 00000002
EQU PINB3 00000003
EQU PINB4 00000004
EQU PINB5 00000005
EQU PINB6 00000006
EQU PINB7 00000007
EQU PORTC0 00000000
EQU PC0 00000000
EQU PORTC1 00000001
EQU PC1 00000001
EQU PORTC2 00000002
EQU PC2 00000002
EQU PORTC3 00000003
EQU PC3 00000003
EQU PORTC4 00000004
EQU PC4 00000004
EQU PORTC5 00000005
EQU PC5 00000005
EQU PORTC6 00000006
EQU PC6 00000006
EQU PORTC7 00000007
EQU PC7 00000007
EQU DDC0 00000000
EQU DDC1 00000001
EQU DDC2 00000002
EQU DDC3 00000003
EQU DDC4 00000004
EQU DDC5 00000005
EQU DDC6 00000006
EQU DDC7 00000007
EQU PINC0 00000000
EQU PINC1 00000001
EQU PINC2 00000002
EQU PINC3 00000003
EQU PINC4 00000004
EQU PINC5 00000005
EQU PINC6 00000006
EQU PINC7 00000007
EQU PORTD0 00000000
EQU PD0 00000000
EQU PORTD1 00000001
EQU PD1 00000001
EQU PORTD2 00000002
EQU PD2 00000002
EQU PORTD3 00000003
EQU PD3 00000003
EQU PORTD4 00000004
EQU PD4 00000004
EQU PORTD5 00000005
EQU PD5 00000005
EQU PORTD6 00000006
EQU PD6 00000006
EQU PORTD7 00000007
EQU PD7 00000007
EQU DDD0 00000000
EQU DDD1 00000001
EQU DDD2 00000002
EQU DDD3 00000003
EQU DDD4 00000004
EQU DDD5 00000005
EQU DDD6 00000006
EQU DDD7 00000007
EQU PIND0 00000000
EQU PIND1 00000001
EQU PIND2 00000002
EQU PIND3 00000003
EQU PIND4 00000004
EQU PIND5 00000005
EQU PIND6 00000006
EQU PIND7 00000007
EQU PORTE0 00000000
EQU PE0 00000000
EQU PORTE1 00000001
EQU PE1 00000001
EQU PORTE2 00000002
EQU PE2 00000002
EQU PORTE3 00000003
EQU PE3 00000003
EQU PORTE4 00000004
EQU PE4 00000004
EQU PORTE5 00000005
EQU PE5 00000005
EQU PORTE6 00000006
EQU PE6 00000006
EQU PORTE7 00000007
EQU PE7 00000007
EQU DDE0 00000000
EQU DDE1 00000001
EQU DDE2 00000002
EQU DDE3 00000003
EQU DDE4 00000004
EQU DDE5 00000005
EQU DDE6 00000006
EQU DDE7 00000007
EQU PINE0 00000000
EQU PINE1 00000001
EQU PINE2 00000002
EQU PINE3 00000003
EQU PINE4 00000004
EQU PINE5 00000005
EQU PINE6 00000006
EQU PINE7 00000007
EQU PORTF0 00000000
EQU PF0 00000000
EQU PORTF1 00000001
EQU PF1 00000001
EQU PORTF2 00000002
EQU PF2 00000002
EQU PORTF3 00000003
EQU PF3 00000003
EQU PORTF4 00000004
EQU PF4 00000004
EQU PORTF5 00000005
EQU PF5 00000005
EQU PORTF6 00000006
EQU PF6 00000006
EQU PORTF7 00000007
EQU PF7 00000007
EQU DDF0 00000000
EQU DDF1 00000001
EQU DDF2 00000002
EQU DDF3 00000003
EQU DDF4 00000004
EQU DDF5 00000005
EQU DDF6 00000006
EQU DDF7 00000007
EQU PINF0 00000000
EQU PINF1 00000001
EQU PINF2 00000002
EQU PINF3 00000003
EQU PINF4 00000004
EQU PINF5 00000005
EQU PINF6 00000006
EQU PINF7 00000007
EQU PORTG0 00000000
EQU PG0 00000000
EQU PORTG1 00000001
EQU PG1 00000001
EQU PORTG2 00000002
EQU PG2 00000002
EQU PORTG3 00000003
EQU PG3 00000003
EQU PORTG4 00000004
EQU PG4 00000004
EQU DDG0 00000000
EQU DDG1 00000001
EQU DDG2 00000002
EQU DDG3 00000003
EQU DDG4 00000004
EQU PING0 00000000
EQU PING1 00000001
EQU PING2 00000002
EQU PING3 00000003
EQU PING4 00000004
EQU CS00 00000000
EQU CS01 00000001
EQU CS02 00000002
EQU WGM01 00000003
EQU CTC0 00000003
EQU COM00 00000004
EQU COM01 00000005
EQU WGM00 00000006
EQU PWM0 00000006
EQU FOC0 00000007
EQU TCNT0_0 00000000
EQU TCNT0_1 00000001
EQU TCNT0_2 00000002
EQU TCNT0_3 00000003
EQU TCNT0_4 00000004
EQU TCNT0_5 00000005
EQU TCNT0_6 00000006
EQU TCNT0_7 00000007
EQU OCR0_0 00000000
EQU OCR0_1 00000001
EQU OCR0_2 00000002
EQU OCR0_3 00000003
EQU OCR0_4 00000004
EQU OCR0_5 00000005
EQU OCR0_6 00000006
EQU OCR0_7 00000007
EQU TCR0UB 00000000
EQU OCR0UB 00000001
EQU TCN0UB 00000002
EQU AS0 00000003
EQU TOIE0 00000000
EQU OCIE0 00000001
EQU TOV0 00000000
EQU OCF0 00000001
EQU TOIE1 00000002
EQU OCIE1B 00000003
EQU OCIE1A 00000004
EQU TICIE1 00000005
EQU OCIE1C 00000000
EQU TOV1 00000002
EQU OCF1B 00000003
EQU OCF1A 00000004
EQU ICF1 00000005
EQU OCF1C 00000000
EQU WGM10 00000000
EQU PWM10 00000000
EQU WGM11 00000001
EQU PWM11 00000001
EQU COM1C0 00000002
EQU COM1C1 00000003
EQU COM1B0 00000004
EQU COM1B1 00000005
EQU COM1A0 00000006
EQU COM1A1 00000007
EQU CS10 00000000
EQU CS11 00000001
EQU CS12 00000002
EQU WGM12 00000003
EQU CTC10 00000003
EQU WGM13 00000004
EQU CTC11 00000004
EQU ICES1 00000006
EQU ICNC1 00000007
EQU FOC1C 00000005
EQU FOC1B 00000006
EQU FOC1A 00000007
EQU CS20 00000000
EQU CS21 00000001
EQU CS22 00000002
EQU WGM21 00000003
EQU CTC2 00000003
EQU COM20 00000004
EQU COM21 00000005
EQU WGM20 00000006
EQU PWM2 00000006
EQU FOC2 00000007
EQU TCNT2_0 00000000
EQU TCNT2_1 00000001
EQU TCNT2_2 00000002
EQU TCNT2_3 00000003
EQU TCNT2_4 00000004
EQU TCNT2_5 00000005
EQU TCNT2_6 00000006
EQU TCNT2_7 00000007
EQU OCR2_0 00000000
EQU OCR2_1 00000001
EQU OCR2_2 00000002
EQU OCR2_3 00000003
EQU OCR2_4 00000004
EQU OCR2_5 00000005
EQU OCR2_6 00000006
EQU OCR2_7 00000007
EQU TOIE2 00000006
EQU OCIE2 00000007
EQU TOV2 00000006
EQU OCF2 00000007
EQU OCIE3C 00000001
EQU TOIE3 00000002
EQU OCIE3B 00000003
EQU OCIE3A 00000004
EQU TICIE3 00000005
EQU OCF3C 00000001
EQU TOV3 00000002
EQU OCF3B 00000003
EQU OCF3A 00000004
EQU ICF3 00000005
EQU WGM30 00000000
EQU PWM30 00000000
EQU WGM31 00000001
EQU PWM31 00000001
EQU COM3C0 00000002
EQU COM3C1 00000003
EQU COM3B0 00000004
EQU COM3B1 00000005
EQU COM3A0 00000006
EQU COM3A1 00000007
EQU CS30 00000000
EQU CS31 00000001
EQU CS32 00000002
EQU WGM32 00000003
EQU CTC30 00000003
EQU WGM33 00000004
EQU CTC31 00000004
EQU ICES3 00000006
EQU ICNC3 00000007
EQU FOC3C 00000005
EQU FOC3B 00000006
EQU FOC3A 00000007
EQU TCN3L0 00000000
EQU TCN3L1 00000001
EQU TCN3L2 00000002
EQU TCN3L3 00000003
EQU TCN3L4 00000004
EQU TCN3L5 00000005
EQU TCN3L6 00000006
EQU TCN3L7 00000007
EQU WDTCSR 00000021
EQU WDP0 00000000
EQU WDP1 00000001
EQU WDP2 00000002
EQU WDE 00000003
EQU WDCE 00000004
EQU WDTOE 00000004
EQU MUX0 00000000
EQU MUX1 00000001
EQU MUX2 00000002
EQU MUX3 00000003
EQU MUX4 00000004
EQU ADLAR 00000005
EQU REFS0 00000006
EQU REFS1 00000007
EQU ADCSR 00000006
EQU ADPS0 00000000
EQU ADPS1 00000001
EQU ADPS2 00000002
EQU ADIE 00000003
EQU ADIF 00000004
EQU ADFR 00000005
EQU ADSC 00000006
EQU ADEN 00000007
EQU ADCH0 00000000
EQU ADCH1 00000001
EQU ADCH2 00000002
EQU ADCH3 00000003
EQU ADCH4 00000004
EQU ADCH5 00000005
EQU ADCH6 00000006
EQU ADCH7 00000007
EQU ADCL0 00000000
EQU ADCL1 00000001
EQU ADCL2 00000002
EQU ADCL3 00000003
EQU ADCL4 00000004
EQU ADCL5 00000005
EQU ADCL6 00000006
EQU ADCL7 00000007
EQU LB1 00000000
EQU LB2 00000001
EQU BLB01 00000002
EQU BLB02 00000003
EQU BLB11 00000004
EQU BLB12 00000005
EQU CKSEL0 00000000
EQU CKSEL1 00000001
EQU CKSEL2 00000002
EQU CKSEL3 00000003
EQU SUT0 00000004
EQU SUT1 00000005
EQU BODEN 00000006
EQU BODLEVEL 00000007
EQU BOOTRST 00000000
EQU BOOTSZ0 00000001
EQU BOOTSZ1 00000002
EQU EESAVE 00000003
EQU CKOPT 00000004
EQU SPIEN 00000005
EQU JTAGEN 00000006
EQU OCDEN 00000007
EQU WDTON 00000000
EQU M103C 00000001
DEF XH r27
DEF XL r26
DEF YH r29
DEF YL r28
DEF ZH r31
DEF ZL r30
EQU FLASHEND 0000ffff
EQU IOEND 000000ff
EQU SRAM_START 00000100
EQU SRAM_SIZE 00001000
EQU RAMEND 000010ff
EQU XRAMEND 0000ffff
EQU E2END 00000fff
EQU EEPROMEND 00000fff
EQU EEADRBITS 0000000c
EQU NRWW_START_ADDR 0000f000
EQU NRWW_STOP_ADDR 0000ffff
EQU RWW_START_ADDR 00000000
EQU RWW_STOP_ADDR 0000efff
EQU PAGESIZE 00000080
EQU FIRSTBOOTSTART 0000fe00
EQU SECONDBOOTSTART 0000fc00
EQU THIRDBOOTSTART 0000f800
EQU FOURTHBOOTSTART 0000f000
EQU SMALLBOOTSTART 0000fe00
EQU LARGEBOOTSTART 0000f000
EQU INT0addr 00000002
EQU INT1addr 00000004
EQU INT2addr 00000006
EQU INT3addr 00000008
EQU INT4addr 0000000a
EQU INT5addr 0000000c
EQU INT6addr 0000000e
EQU INT7addr 00000010
EQU OC2addr 00000012
EQU OVF2addr 00000014
EQU ICP1addr 00000016
EQU OC1Aaddr 00000018
EQU OC1Baddr 0000001a
EQU OVF1addr 0000001c
EQU OC0addr 0000001e
EQU OVF0addr 00000020
EQU SPIaddr 00000022
EQU URXC0addr 00000024
EQU UDRE0addr 00000026
EQU UTXC0addr 00000028
EQU ADCCaddr 0000002a
EQU ERDYaddr 0000002c
EQU ACIaddr 0000002e
EQU OC1Caddr 00000030
EQU ICP3addr 00000032
EQU OC3Aaddr 00000034
EQU OC3Baddr 00000036
EQU OC3Caddr 00000038
EQU OVF3addr 0000003a
EQU URXC1addr 0000003c
EQU UDRE1addr 0000003e
EQU UTXC1addr 00000040
EQU TWIaddr 00000042
EQU SPMRaddr 00000044
EQU INT_VECTORS_SIZE 00000046
DEF mpr r16
DEF waitcnt r17
DEF ilcnt r18
DEF olcnt r19
DEF speed_reg r20
DEF command_reg r21
EQU WTime 0000000f
EQU EngEnR 00000004
EQU EngEnL 00000007
EQU EngDirR 00000005
EQU EngDirL 00000006
EQU BotAddress 0000001a
EQU MovFwdCmd 000000b0
EQU MovBckCmd 00000080
EQU TurnRCmd 000000a0
EQU TurnLCmd 00000090
EQU HaltCmd 000000c8
EQU FreezeCmd 000000f8
EQU MoveFwdPin 00000000
EQU MoveBackPin 00000001
EQU MoveLeftPin 00000007
EQU MoveRightPin 00000006
EQU MoveHaltPin 00000005
EQU FreezePin 00000004
EQU TXD1 00000003
EQU ubrr_low 00000040
EQU ubrr_high 00000003
CSEG INIT 00000046
CSEG MAIN 0000005d
CSEG SendMoveFwd 0000007c
CSEG SendMoveBack 00000085
CSEG SendMoveLeft 0000008e
CSEG SendMoveRight 00000097
CSEG SendMoveHalt 000000a0
CSEG SendFreeze 000000a9
CSEG Wait 000000b2
CSEG SendAddress 0000006d
CSEG SendCommand 00000075
CSEG Loop 000000b5
CSEG OLoop 000000b6
CSEG ILoop 000000b7

View File

@@ -0,0 +1,40 @@
<ASSEMBLER_INFO>
<VERSION>2.2.7</VERSION>
<DEVICE>"ATmega128"</DEVICE>
<WORKING_DIR>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Debug</WORKING_DIR>
<INCLUDE_PATH>
<DIR>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc</DIR>
<DIR>C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\Include</DIR>
<DIR></DIR>
</INCLUDE_PATH>
<SOURCE_FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</SOURCE_FILE>
<INCLUDED_FILES>
<FILE>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc\m128def.inc</FILE>
</INCLUDED_FILES>
<OBJECT_FILES>
<FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Debug\Corwin_Perren_Lab8_remote_sourcecode.obj</FILE>
</OBJECT_FILES>
<HEX_FILES>
<FILE>Corwin_Perren_Lab8_remote_sourcecode.hex</FILE>
</HEX_FILES>
<OUTPUT_FILES>
<FILE>Corwin_Perren_Lab8_remote_sourcecode.map</FILE>
<FILE>Corwin_Perren_Lab8_remote_sourcecode.lss</FILE>
</OUTPUT_FILES>
<LABELS>
<INIT><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>80</LINE></INIT>
<MAIN><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>120</LINE></MAIN>
<SendMoveFwd><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>167</LINE></SendMoveFwd>
<SendMoveBack><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>180</LINE></SendMoveBack>
<SendMoveLeft><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>193</LINE></SendMoveLeft>
<SendMoveRight><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>206</LINE></SendMoveRight>
<SendMoveHalt><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>219</LINE></SendMoveHalt>
<SendFreeze><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>232</LINE></SendFreeze>
<Wait><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>245</LINE></Wait>
<SendAddress><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>150</LINE></SendAddress>
<SendCommand><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>159</LINE></SendCommand>
<Loop><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>250</LINE></Loop>
<OLoop><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>251</LINE></OLoop>
<ILoop><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode\Corwin_Perren_Lab8_remote_sourcecode.asm</FILE><LINE>252</LINE></ILoop>
</LABELS>
</ASSEMBLER_INFO>

View File

@@ -0,0 +1,22 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Atmel Studio Solution File, Format Version 11.00
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{18226A42-8477-4023-8AD2-40C49DA407C9}") = "Corwin_Perren_Lab8_robot_sourcecode", "Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asmproj", "{59B1D629-9DCC-43ED-A0FD-8AB0E4D622AB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AVR = Debug|AVR
Release|AVR = Release|AVR
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{59B1D629-9DCC-43ED-A0FD-8AB0E4D622AB}.Debug|AVR.ActiveCfg = Debug|AVR
{59B1D629-9DCC-43ED-A0FD-8AB0E4D622AB}.Debug|AVR.Build.0 = Debug|AVR
{59B1D629-9DCC-43ED-A0FD-8AB0E4D622AB}.Release|AVR.ActiveCfg = Release|AVR
{59B1D629-9DCC-43ED-A0FD-8AB0E4D622AB}.Release|AVR.Build.0 = Release|AVR
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,425 @@
;***********************************************************
;*
;* Enter Name of file here
;*
;* Enter the description of the program here
;*
;* This is the RECEIVE skeleton file for Lab 8 of ECE 375
;*
;***********************************************************
;*
;* Author: Enter your name
;* Date: Enter Date
;*
;***********************************************************
.include "m128def.inc" ; Include definition file
;***********************************************************
;* Internal Register Definitions and Constants
;***********************************************************
.def mpr = r16 ; Multi-Purpose Register
.def waitcnt = r17 ; Wait Loop Counter
.def ilcnt = r18 ; Inner Loop Counter
.def olcnt = r19 ; Outer Loop Counter
.def cmd_reg = r20 ; Current command reg
.def addr_reg = r21 ; Current address reg
.def freeze_sent_reg = r22 ; State of freeze send
.def freeze_count_reg = r23 ; Freeze count
.equ WTime = 100 ; Time to wait in wait loop, used to be 100
; Inputs on port d
.equ WskrR = 0 ; Right Whisker Input Bit
.equ WskrL = 1 ; Left Whisker Input Bit
.equ RXD1 = 2 ; RX Input Pin
; Drive pins
.equ EngEnR = 4 ; Right Engine Enable Bit
.equ EngEnL = 7 ; Left Engine Enable Bit
.equ EngDirR = 5 ; Right Engine Direction Bit
.equ EngDirL = 6 ; Left Engine Direction Bit
.equ BotAddress = 0x1a ; (Enter your robot's address here (8 bits))
;/////////////////////////////////////////////////////////////
;These macros are the values to make the TekBot Move.
;/////////////////////////////////////////////////////////////
.equ MovFwd = (1<<EngDirR|1<<EngDirL) ;0b01100000 Move Forward Action Code
.equ MovBck = $00 ;0b00000000 Move Backward Action Code
.equ TurnR = (1<<EngDirL) ;0b01000000 Turn Right Action Code
.equ TurnL = (1<<EngDirR) ;0b00100000 Turn Left Action Code
.equ Halt = (1<<EngEnR|1<<EngEnL) ;0b10010000 Halt Action Code
;/////////////////////////////////////////////////////////////
;These macros are the TekBot IR commands.
;/////////////////////////////////////////////////////////////
; INPUT
.equ MovFwdCmd = ($80|1<<(EngDirR-1)|1<<(EngDirL-1)) ;0b10110000 Move Forward Action Code
.equ MovBckCmd = ($80|$00) ;0b10000000 Move Backward Action Code
.equ TurnRCmd = ($80|1<<(EngDirL-1)) ;0b10100000 Turn Right Action Code
.equ TurnLCmd = ($80|1<<(EngDirR-1)) ;0b10010000 Turn Left Action Code
.equ HaltCmd = ($80|1<<(EngEnR-1)|1<<(EngEnL-1)) ;0b11001000 Halt Action Code
.equ FreezeCmd = 0b11111000 ;0b11111000 Freeze Action Code
; OUTPUT
.equ FreezeOthersCmd = 0b01010101 ;0b01010101 Broadcase freeze action code
; Store the upper and lower bytes for ubrr setting
.equ ubrr_low = low(832)
.equ ubrr_high = high(832)
; Bits 1 and 3 set for INT0 and INT1 trigger on falling edge
.equ InterruptsFallingEdge = (1 << ISC01) | (1 << ISC11)
; Bits 0 and 1 set for INT0 and INT1 interrupts enabled
.equ InterruptMasksEnabled = (1 << INT0) | (1 << INT1)
.equ InterruptMasksDisabled = 0
; Setting these bits to one and writing them to the flag register clears them
.equ InterruptFlagRegisterClear = (1 << INTF0) | (1 << INTF1)
; Mask for commands vs addresses
.equ cmd_addr_bit = 7
; Max freeze before offline
.equ freezes_to_perm_halt = 3
;***********************************************************
;* Start of Code Segment
;***********************************************************
.cseg ; Beginning of code segment
;***********************************************************
;* Interrupt Vectors
;***********************************************************
.org $0000 ; Beginning of IVs
rjmp INIT ; Reset interrupt
;Should have Interrupt vectors for:
;- Right whisker
.org INT0addr
rjmp HitRight
;- Left whisker
.org INT1addr
rjmp HitLeft
;- USART receive
.org URXC1addr
rjmp RX1_DATA_RECEIVED
.org $0046 ; End of Interrupt Vectors
;***********************************************************
;* Program Initialization
;***********************************************************
INIT:
; Initialize the Stack Pointer
ldi mpr, low(RAMEND) ; Init the 2 stack pointer registers
out SPL, mpr
ldi mpr, high(RAMEND)
out SPH, mpr
; I/O Ports
; Set drive pins to outputs
ldi mpr, ((1 << EngEnR) | (1 << EngDirR) | (1 << EngEnL) | (1 << EngDirL))
out DDRB, mpr
; Set whisker pins and rx pin to inputs
ldi mpr, ((0 << WskrR) | (0 << WskrL) | (0 << RXD1))
out DDRD, mpr
; Set whisker pins to enable pullups
ldi mpr, ((1 << WskrR) | (1 << WskrL))
out PORTD, mpr
; USART1
; Set baudrate at 2400bps
ldi mpr, ubrr_low
sts UBRR1L, mpr
ldi mpr, ubrr_high
sts UBRR1H, mpr
; Enable transmitter, reciever, and enable interrupt on receive
ldi mpr, ((1 << TXEN1) | (1 << RXEN1) | (1 << RXCIE1))
sts UCSR1B, mpr
; Set frame format: 8 data bits, 2 stop bits
; Double data rate
ldi mpr, (1 << U2X1)
sts UCSR1A, mpr
; 8N2 setting
ldi mpr, ((1 << UCSZ10) | (1 << UCSZ11) | (1 << USBS1))
sts UCSR1C, mpr
; External Interrupts
; D0 is INT0, D1 is INT1
; Set the Interrupt Sense Control to falling edge
ldi mpr, InterruptsFallingEdge
sts EICRA, mpr
; Configure the External Interrupt Mask
ldi mpr, InterruptMasksEnabled
out EIMSK, mpr
; Initialize TekBot Forward Movement
ldi cmd_reg, MovFwd ; Load Move Forward Command
out PORTB, cmd_reg ; Send command to motors
; Flush usart rx
rcall USART_Flush
; Clear address register
clr addr_reg
clr freeze_count_reg
; Enabled global interrupts
sei
;***********************************************************
;* Main Program
;***********************************************************
MAIN:
rjmp MAIN
;***********************************************************
;* Functions and Subroutines
;***********************************************************
;----------------------------------------------------------------
; Sub: SendFreezeOthers
; Desc: Sends a tekbot command to freeze all other bots
;----------------------------------------------------------------
SendFreezeOthers:
lds mpr, UCSR1A ; Load usart1 status
sbrs mpr, UDRE1 ; Check if data reg empty
rjmp SendFreezeOthers ; Jump back until it is
ldi mpr, FreezeOthersCmd ; Load freeze cmd
sts UDR1, mpr ; Send command over serial
ret
;----------------------------------------------------------------
; Sub: USART_Flush
; Desc: Clear RX buffer
;----------------------------------------------------------------
USART_Flush:
lds mpr, UCSR1A ; Load status reg
sbrs mpr, RXC1 ; Check to see if there's data
ret ; If not, return
lds mpr, UDR1 ; Otherwise, read in data
rjmp USART_Flush ; And go check again
;----------------------------------------------------------------
; Sub: RX1_DATA_RECEIVED
; Desc: Processes incoming serial data on interrupt
;----------------------------------------------------------------
RX1_DATA_RECEIVED:
cli ; Stop processing interrupts
cpi freeze_count_reg, freezes_to_perm_halt ; Check if at limit
breq RX1_DATA_RECV_END_NO_INT ; No interrrupt return
lds mpr, UDR1 ; Read in data
; Check freeze
cpi mpr, FreezeOthersCmd ; Check if we should be frozen
brne RX1_DATA_RECV_ADDR ; Skip to process normal command
; Check if it's our freeze
cpi freeze_sent_reg, 0 ; Check if we sent it
breq RX1_PROCESS_FREEZE
; Ignore our own command
clr freeze_sent_reg ; Reset flag
clr addr_reg ; Clear addr reg for next run
rjmp RX1_DATA_RECV_END ; Go to end
RX1_PROCESS_FREEZE:
; Process freeze
ldi mpr, Halt ; Load cmd to halt
out PORTB, mpr ; Halt bot
ldi mpr, 5 ; Load 5 sec wait
RX1_FREEZE_LOOP:
ldi waitcnt, WTime ; Wait for 1 seconds
rcall Wait ; Call wait function
dec mpr ; Decrement counter
brne RX1_FREEZE_LOOP ; If not done with wait, go back
; Clear interrupt flags so no new interrupts until after
ldi mpr, InterruptFlagRegisterClear
out EIFR, mpr
inc freeze_count_reg ; Inc count for freeze
cpi freeze_count_reg, freezes_to_perm_halt ; Check if at limit
breq RX1_DATA_RECV_END_NO_INT ; No interrrupt return
; Not at limit, go back to last command
rcall USART_Flush ; Clear any commands while frozen
out PORTB, cmd_reg ; Go to prev state
rjmp RX1_DATA_RECV_END ; Go to end
; Check address
RX1_DATA_RECV_ADDR:
sbrc mpr, cmd_addr_bit ; Check if is address
rjmp RX1_DATA_RECV_COMMAND ; Process if was command
mov addr_reg, mpr ; If addr, update addr reg
rjmp RX1_DATA_RECV_END ; Go to end
; Check command
RX1_DATA_RECV_COMMAND:
cpi addr_reg, BotAddress ; Cmp current with our addr
brne RX1_DATA_RECV_END ; If not ours, go to end
; Check if it's freeze command
cpi mpr, FreezeCmd
brne RX1_REG_COMMAND
rcall SendFreezeOthers ; Send freeze
ldi freeze_sent_reg, 1 ; Set that freeze sent
clr addr_reg ; Clear addr reg for next run
rjmp RX1_DATA_RECV_END ; Go to end
RX1_REG_COMMAND:
; Otherwise it's normal command
mov cmd_reg, mpr ; Set current command
lsl cmd_reg ; Ours, remove cmd bit, make command
out PORTB, cmd_reg ; Write command
clr addr_reg ; Clear addr reg for next run
RX1_DATA_RECV_END:
sei ; Reenable interrupts
RX1_DATA_RECV_END_NO_INT:
reti
;----------------------------------------------------------------
; Sub: HitRight
; Desc: Processes the logic for when the right whisker is hit
;----------------------------------------------------------------
HitRight:
cli
cpi freeze_count_reg, freezes_to_perm_halt ; Check if at limit
breq HitRightEnd ; No interrrupt return
push mpr ; Save mpr register
push waitcnt ; Save wait register
in mpr, SREG ; Save program state
push mpr ; Save program state
; Move Backwards for a second
ldi mpr, MovBck ; Load Move Backward command
out PORTB, mpr ; Send command to port
ldi waitcnt, WTime ; Wait for 1 second
rcall Wait ; Call wait function
; Turn left for a second
ldi mpr, TurnL ; Load Turn Left Command
out PORTB, mpr ; Send command to port
ldi waitcnt, WTime ; Wait for 1 second
rcall Wait ; Call wait function
; Restore drive state
out PORTB, cmd_reg ; Send saved command to port
; Clear interrupt flags so no new interrupts until after
ldi mpr, InterruptFlagRegisterClear
out EIFR, mpr
rcall USART_Flush ; Clear out receive register
pop mpr ; Restore program state
out SREG, mpr ; Restore program state
pop waitcnt ; Restore wait register
pop mpr ; Restore mpr
sei
HitRightEnd:
reti ; Return from subroutine
;----------------------------------------------------------------
; Sub: HitLeft
; Desc: Processes the logic for when the left whisker is hit
;----------------------------------------------------------------
HitLeft:
cli
cpi freeze_count_reg, freezes_to_perm_halt ; Check if at limit
breq HitLeftEnd ; No interrrupt return
push mpr ; Save mpr register
push waitcnt ; Save wait register
in mpr, SREG ; Save program state
push mpr ; Save program state
; Move Backwards for a second
ldi mpr, MovBck ; Load Move Backward command
out PORTB, mpr ; Send command to port
ldi waitcnt, WTime ; Wait for 1 second
rcall Wait ; Call wait function
; Turn right for a second
ldi mpr, TurnR ; Load Turn Left Command
out PORTB, mpr ; Send command to port
ldi waitcnt, WTime ; Wait for 1 second
rcall Wait ; Call wait function
; Restore drive state
out PORTB, cmd_reg ; Send saved command to port
; Clear interrupt flags so no new interrupts until after
ldi mpr, InterruptFlagRegisterClear
out EIFR, mpr
rcall USART_Flush ; Clear out receive register
pop mpr ; Restore program state
out SREG, mpr ; Restore program state
pop waitcnt ; Restore wait register
pop mpr ; Restore mpr
sei
HitLeftEnd:
reti ; Return from subroutine
;----------------------------------------------------------------
; Sub: Wait
; Desc: A wait loop that is 16 + 159975*waitcnt cycles or roughly
; waitcnt*10ms. Just initialize wait for the specific amount
; of time in 10ms intervals. Here is the general eqaution
; for the number of clock cycles in the wait loop:
; ((3 * ilcnt + 3) * olcnt + 3) * waitcnt + 13 + call
;----------------------------------------------------------------
Wait:
push waitcnt ; Save wait register
push ilcnt ; Save ilcnt register
push olcnt ; Save olcnt register
Loop: ldi olcnt, 224 ; load olcnt register
OLoop: ldi ilcnt, 237 ; load ilcnt register
ILoop: dec ilcnt ; decrement ilcnt
brne ILoop ; Continue Inner Loop
dec olcnt ; decrement olcnt
brne OLoop ; Continue Outer Loop
dec waitcnt ; Decrement wait
brne Loop ; Continue Wait loop
pop olcnt ; Restore olcnt register
pop ilcnt ; Restore ilcnt register
pop waitcnt ; Restore wait register
ret ; Return from subroutine
;***********************************************************
;* Stored Program Data
;***********************************************************
;***********************************************************
;* Additional Program Includes
;***********************************************************

View File

@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>7.0</ProjectVersion>
<ToolchainName>com.Atmel.AVRAssembler</ToolchainName>
<ProjectGuid>59B1D629-9DCC-43ed-A0FD-8AB0E4D622AB</ProjectGuid>
<avrdeviceseries>none</avrdeviceseries>
<avrdevice>ATmega128</avrdevice>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.obj</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<Language>ASSEMBLY</Language>
<AssemblyName>Corwin_Perren_Lab8_robot_sourcecode</AssemblyName>
<Name>Corwin_Perren_Lab8_robot_sourcecode</Name>
<RootNamespace>Corwin_Perren_Lab8_robot_sourcecode</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<EntryFile>$(MSBuildProjectDirectory)\Corwin_Perren_Lab8_robot_sourcecode.asm</EntryFile>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<CacheFlash>true</CacheFlash>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress>0x20000000</RamSnippetAddress>
<UncachedRange />
<preserveEEPROM>true</preserveEEPROM>
<OverrideVtorValue>exception_table</OverrideVtorValue>
<BootSegment>2</BootSegment>
<ResetRule>0</ResetRule>
<eraseonlaunchrule>0</eraseonlaunchrule>
<EraseKey />
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.40.0" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrAssembler>
<avrasm.assembler.general.AdditionalIncludeDirectories>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\avrasm\inc</Value>
</ListValues>
</avrasm.assembler.general.AdditionalIncludeDirectories>
<avrasm.assembler.general.IncludeFile>m128def.inc</avrasm.assembler.general.IncludeFile>
</AvrAssembler>
</ToolchainSettings>
<OutputType>Executable</OutputType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrAssembler>
<avrasm.assembler.general.AdditionalIncludeDirectories>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\avrasm\inc</Value>
</ListValues>
</avrasm.assembler.general.AdditionalIncludeDirectories>
<avrasm.assembler.general.IncludeFile>m128def.inc</avrasm.assembler.general.IncludeFile>
</AvrAssembler>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="Corwin_Perren_Lab8_robot_sourcecode.asm">
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Assembler.targets" />
</Project>

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement">
<ProjectComponents>
<ProjectComponent z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<CApiVersion></CApiVersion>
<CBundle></CBundle>
<CClass>Device</CClass>
<CGroup>Startup</CGroup>
<CSub></CSub>
<CVariant></CVariant>
<CVendor>Atmel</CVendor>
<CVersion>1.2.0</CVersion>
<DefaultRepoPath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs</DefaultRepoPath>
<DependentComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Description></Description>
<Files xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc</AbsolutePath>
<Attribute></Attribute>
<Category>include</Category>
<Condition>AVRASM</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>avrasm/inc</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc\m128def.inc</AbsolutePath>
<Attribute></Attribute>
<Category>header</Category>
<Condition>AVRASM</Condition>
<FileContentHash>bd3TUV9UtxpdYQkn+6MWPA==</FileContentHash>
<FileVersion></FileVersion>
<Name>avrasm/inc/m128def.inc</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\templates\main.asm</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>AVRASM</Condition>
<FileContentHash>3ELbTGaJNgggk9/rZzYTAg==</FileContentHash>
<FileVersion></FileVersion>
<Name>avrasm/templates/main.asm</Name>
<SelectString>Main file (.asm)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
</Files>
<PackName>ATmega_DFP</PackName>
<PackPath>C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/Atmel.ATmega_DFP.pdsc</PackPath>
<PackVersion>1.2.209</PackVersion>
<PresentInProject>true</PresentInProject>
<ReferenceConditionId>ATmega128</ReferenceConditionId>
<RteComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string></d4p1:string>
</RteComponents>
<Status>Resolved</Status>
<VersionMode>Fixed</VersionMode>
<IsComponentInAtProject>true</IsComponentInAtProject>
</ProjectComponent>
</ProjectComponents>
</Store>

View File

@@ -0,0 +1,27 @@
:020000020000FC
:0200000045C0F9
:02000400A4C096
:02000800BBC07B
:020078003DC089
:10008C000FEF0DBF00E10EBF00EF07BB00E001BB9F
:10009C0003E002BB00E40093990003E00093980096
:1000AC0008E900939A0002E000939B000EE0009395
:1000BC009D000AE000936A0003E009BF40E648BBDC
:1000CC000CD0552777277894FFCF00919B0005FF24
:1000DC00FCCF05E500939C00089500919B0007FF61
:1000EC00089500919C00F9CFF894733049F1009178
:1000FC009C000535A1F4603019F0662755271FC008
:10010C0000E908BB05E014E64ED00A95E1F703E0E0
:10011C0008BF73957330A1F0E0DF48BB10C007FD3A
:10012C0002C0502F0CC05A3151F4083F21F4CDDFDE
:10013C0061E0552704C0402F440F48BB55277894E5
:10014C001895F8947330A9F00F931F930FB70F9372
:10015C0000E008BB14E627D000E208BB14E623D06D
:10016C0048BB03E008BFB9DF0F910FBF1F910F9180
:10017C0078941895F8947330A9F00F931F930FB7D8
:10018C000F9300E008BB14E60ED000E408BB14E6A5
:10019C000AD048BB03E008BFA0DF0F910FBF1F912F
:1001AC000F91789418951F932F933F9330EE2DEE6B
:1001BC002A95F1F73A95D9F71A95C1F73F912F91F6
:0401CC001F910895E2
:00000001FF

View File

@@ -0,0 +1,926 @@
AVRASM ver. 2.2.7 C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm Sun Nov 25 16:43:19 2018
EQU SIGNATURE_000 0000001e
EQU SIGNATURE_001 00000097
EQU SIGNATURE_002 00000002
EQU UCSR1C 0000009d
EQU UDR1 0000009c
EQU UCSR1A 0000009b
EQU UCSR1B 0000009a
EQU UBRR1H 00000098
EQU UBRR1L 00000099
EQU UCSR0C 00000095
EQU UBRR0H 00000090
EQU TCCR3C 0000008c
EQU TCCR3A 0000008b
EQU TCCR3B 0000008a
EQU TCNT3L 00000088
EQU TCNT3H 00000089
EQU OCR3AL 00000086
EQU OCR3AH 00000087
EQU OCR3BL 00000084
EQU OCR3BH 00000085
EQU OCR3CL 00000082
EQU OCR3CH 00000083
EQU ICR3L 00000080
EQU ICR3H 00000081
EQU ETIMSK 0000007d
EQU ETIFR 0000007c
EQU TCCR1C 0000007a
EQU OCR1CL 00000078
EQU OCR1CH 00000079
EQU TWCR 00000074
EQU TWDR 00000073
EQU TWAR 00000072
EQU TWSR 00000071
EQU TWBR 00000070
EQU OSCCAL 0000006f
EQU XMCRA 0000006d
EQU XMCRB 0000006c
EQU EICRA 0000006a
EQU SPMCSR 00000068
EQU PORTG 00000065
EQU DDRG 00000064
EQU PING 00000063
EQU PORTF 00000062
EQU DDRF 00000061
EQU SREG 0000003f
EQU SPL 0000003d
EQU SPH 0000003e
EQU XDIV 0000003c
EQU RAMPZ 0000003b
EQU EICRB 0000003a
EQU EIMSK 00000039
EQU EIFR 00000038
EQU TIMSK 00000037
EQU TIFR 00000036
EQU MCUCR 00000035
EQU MCUCSR 00000034
EQU TCCR0 00000033
EQU TCNT0 00000032
EQU OCR0 00000031
EQU ASSR 00000030
EQU TCCR1A 0000002f
EQU TCCR1B 0000002e
EQU TCNT1L 0000002c
EQU TCNT1H 0000002d
EQU OCR1AL 0000002a
EQU OCR1AH 0000002b
EQU OCR1BL 00000028
EQU OCR1BH 00000029
EQU ICR1L 00000026
EQU ICR1H 00000027
EQU TCCR2 00000025
EQU TCNT2 00000024
EQU OCR2 00000023
EQU OCDR 00000022
EQU WDTCR 00000021
EQU SFIOR 00000020
EQU EEARL 0000001e
EQU EEARH 0000001f
EQU EEDR 0000001d
EQU EECR 0000001c
EQU PORTA 0000001b
EQU DDRA 0000001a
EQU PINA 00000019
EQU PORTB 00000018
EQU DDRB 00000017
EQU PINB 00000016
EQU PORTC 00000015
EQU DDRC 00000014
EQU PINC 00000013
EQU PORTD 00000012
EQU DDRD 00000011
EQU PIND 00000010
EQU SPDR 0000000f
EQU SPSR 0000000e
EQU SPCR 0000000d
EQU UDR0 0000000c
EQU UCSR0A 0000000b
EQU UCSR0B 0000000a
EQU UBRR0L 00000009
EQU ACSR 00000008
EQU ADMUX 00000007
EQU ADCSRA 00000006
EQU ADCH 00000005
EQU ADCL 00000004
EQU PORTE 00000003
EQU DDRE 00000002
EQU PINE 00000001
EQU PINF 00000000
EQU ACME 00000003
EQU ACIS0 00000000
EQU ACIS1 00000001
EQU ACIC 00000002
EQU ACIE 00000003
EQU ACI 00000004
EQU ACO 00000005
EQU ACBG 00000006
EQU ACD 00000007
EQU SPDR0 00000000
EQU SPDR1 00000001
EQU SPDR2 00000002
EQU SPDR3 00000003
EQU SPDR4 00000004
EQU SPDR5 00000005
EQU SPDR6 00000006
EQU SPDR7 00000007
EQU SPI2X 00000000
EQU WCOL 00000006
EQU SPIF 00000007
EQU SPR0 00000000
EQU SPR1 00000001
EQU CPHA 00000002
EQU CPOL 00000003
EQU MSTR 00000004
EQU DORD 00000005
EQU SPE 00000006
EQU SPIE 00000007
EQU I2BR 00000070
EQU TWBR0 00000000
EQU TWBR1 00000001
EQU TWBR2 00000002
EQU TWBR3 00000003
EQU TWBR4 00000004
EQU TWBR5 00000005
EQU TWBR6 00000006
EQU TWBR7 00000007
EQU I2CR 00000074
EQU TWIE 00000000
EQU I2IE 00000000
EQU TWEN 00000002
EQU I2EN 00000002
EQU ENI2C 00000002
EQU TWWC 00000003
EQU I2WC 00000003
EQU TWSTO 00000004
EQU I2STO 00000004
EQU TWSTA 00000005
EQU I2STA 00000005
EQU TWEA 00000006
EQU I2EA 00000006
EQU TWINT 00000007
EQU I2INT 00000007
EQU I2SR 00000071
EQU TWPS0 00000000
EQU TWS0 00000000
EQU I2GCE 00000000
EQU TWPS1 00000001
EQU TWS1 00000001
EQU TWS3 00000003
EQU I2S3 00000003
EQU TWS4 00000004
EQU I2S4 00000004
EQU TWS5 00000005
EQU I2S5 00000005
EQU TWS6 00000006
EQU I2S6 00000006
EQU TWS7 00000007
EQU I2S7 00000007
EQU I2DR 00000073
EQU TWD0 00000000
EQU TWD1 00000001
EQU TWD2 00000002
EQU TWD3 00000003
EQU TWD4 00000004
EQU TWD5 00000005
EQU TWD6 00000006
EQU TWD7 00000007
EQU I2AR 00000072
EQU TWGCE 00000000
EQU TWA0 00000001
EQU TWA1 00000002
EQU TWA2 00000003
EQU TWA3 00000004
EQU TWA4 00000005
EQU TWA5 00000006
EQU TWA6 00000007
EQU UDR00 00000000
EQU UDR01 00000001
EQU UDR02 00000002
EQU UDR03 00000003
EQU UDR04 00000004
EQU UDR05 00000005
EQU UDR06 00000006
EQU UDR07 00000007
EQU MPCM0 00000000
EQU U2X0 00000001
EQU UPE0 00000002
EQU DOR0 00000003
EQU FE0 00000004
EQU UDRE0 00000005
EQU TXC0 00000006
EQU RXC0 00000007
EQU TXB80 00000000
EQU RXB80 00000001
EQU UCSZ02 00000002
EQU UCSZ2 00000002
EQU TXEN0 00000003
EQU RXEN0 00000004
EQU UDRIE0 00000005
EQU TXCIE0 00000006
EQU RXCIE0 00000007
EQU UCPOL0 00000000
EQU UCSZ00 00000001
EQU UCSZ01 00000002
EQU USBS0 00000003
EQU UPM00 00000004
EQU UPM01 00000005
EQU UMSEL0 00000006
EQU UBRR8 00000000
EQU UBRR9 00000001
EQU UBRR10 00000002
EQU UBRR11 00000003
EQU UBRR0 00000000
EQU UBRR1 00000001
EQU UBRR2 00000002
EQU UBRR3 00000003
EQU UBRR4 00000004
EQU UBRR5 00000005
EQU UBRR6 00000006
EQU UBRR7 00000007
EQU UDR10 00000000
EQU UDR11 00000001
EQU UDR12 00000002
EQU UDR13 00000003
EQU UDR14 00000004
EQU UDR15 00000005
EQU UDR16 00000006
EQU UDR17 00000007
EQU MPCM1 00000000
EQU U2X1 00000001
EQU UPE1 00000002
EQU DOR1 00000003
EQU FE1 00000004
EQU UDRE1 00000005
EQU TXC1 00000006
EQU RXC1 00000007
EQU TXB81 00000000
EQU RXB81 00000001
EQU UCSZ12 00000002
EQU TXEN1 00000003
EQU RXEN1 00000004
EQU UDRIE1 00000005
EQU TXCIE1 00000006
EQU RXCIE1 00000007
EQU UCPOL1 00000000
EQU UCSZ10 00000001
EQU UCSZ11 00000002
EQU USBS1 00000003
EQU UPM10 00000004
EQU UPM11 00000005
EQU UMSEL1 00000006
EQU SREG_C 00000000
EQU SREG_Z 00000001
EQU SREG_N 00000002
EQU SREG_V 00000003
EQU SREG_S 00000004
EQU SREG_H 00000005
EQU SREG_T 00000006
EQU SREG_I 00000007
EQU IVCE 00000000
EQU IVSEL 00000001
EQU SM2 00000002
EQU SM0 00000003
EQU SM1 00000004
EQU SE 00000005
EQU SRW10 00000006
EQU SRE 00000007
EQU SRW11 00000001
EQU SRW00 00000002
EQU SRW01 00000003
EQU SRL0 00000004
EQU SRL1 00000005
EQU SRL2 00000006
EQU XMM0 00000000
EQU XMM1 00000001
EQU XMM2 00000002
EQU XMBK 00000007
EQU CAL0 00000000
EQU CAL1 00000001
EQU CAL2 00000002
EQU CAL3 00000003
EQU CAL4 00000004
EQU CAL5 00000005
EQU CAL6 00000006
EQU CAL7 00000007
EQU XDIV0 00000000
EQU XDIV1 00000001
EQU XDIV2 00000002
EQU XDIV3 00000003
EQU XDIV4 00000004
EQU XDIV5 00000005
EQU XDIV6 00000006
EQU XDIVEN 00000007
EQU PORF 00000000
EQU EXTRF 00000001
EQU BORF 00000002
EQU WDRF 00000003
EQU JTRF 00000004
EQU JTD 00000007
EQU RAMPZ0 00000000
EQU SPMCR 00000068
EQU SPMEN 00000000
EQU PGERS 00000001
EQU PGWRT 00000002
EQU BLBSET 00000003
EQU RWWSRE 00000004
EQU ASRE 00000004
EQU RWWSB 00000006
EQU ASB 00000006
EQU SPMIE 00000007
EQU OCDR0 00000000
EQU OCDR1 00000001
EQU OCDR2 00000002
EQU OCDR3 00000003
EQU OCDR4 00000004
EQU OCDR5 00000005
EQU OCDR6 00000006
EQU OCDR7 00000007
EQU IDRD 00000007
EQU PSR321 00000000
EQU PSR1 00000000
EQU PSR2 00000000
EQU PSR3 00000000
EQU PSR0 00000001
EQU PUD 00000002
EQU TSM 00000007
EQU ISC00 00000000
EQU ISC01 00000001
EQU ISC10 00000002
EQU ISC11 00000003
EQU ISC20 00000004
EQU ISC21 00000005
EQU ISC30 00000006
EQU ISC31 00000007
EQU ISC40 00000000
EQU ISC41 00000001
EQU ISC50 00000002
EQU ISC51 00000003
EQU ISC60 00000004
EQU ISC61 00000005
EQU ISC70 00000006
EQU ISC71 00000007
EQU GICR 00000039
EQU GIMSK 00000039
EQU INT0 00000000
EQU INT1 00000001
EQU INT2 00000002
EQU INT3 00000003
EQU INT4 00000004
EQU INT5 00000005
EQU INT6 00000006
EQU INT7 00000007
EQU GIFR 00000038
EQU INTF0 00000000
EQU INTF1 00000001
EQU INTF2 00000002
EQU INTF3 00000003
EQU INTF4 00000004
EQU INTF5 00000005
EQU INTF6 00000006
EQU INTF7 00000007
EQU EEDR0 00000000
EQU EEDR1 00000001
EQU EEDR2 00000002
EQU EEDR3 00000003
EQU EEDR4 00000004
EQU EEDR5 00000005
EQU EEDR6 00000006
EQU EEDR7 00000007
EQU EERE 00000000
EQU EEWE 00000001
EQU EEMWE 00000002
EQU EERIE 00000003
EQU PORTA0 00000000
EQU PA0 00000000
EQU PORTA1 00000001
EQU PA1 00000001
EQU PORTA2 00000002
EQU PA2 00000002
EQU PORTA3 00000003
EQU PA3 00000003
EQU PORTA4 00000004
EQU PA4 00000004
EQU PORTA5 00000005
EQU PA5 00000005
EQU PORTA6 00000006
EQU PA6 00000006
EQU PORTA7 00000007
EQU PA7 00000007
EQU DDA0 00000000
EQU DDA1 00000001
EQU DDA2 00000002
EQU DDA3 00000003
EQU DDA4 00000004
EQU DDA5 00000005
EQU DDA6 00000006
EQU DDA7 00000007
EQU PINA0 00000000
EQU PINA1 00000001
EQU PINA2 00000002
EQU PINA3 00000003
EQU PINA4 00000004
EQU PINA5 00000005
EQU PINA6 00000006
EQU PINA7 00000007
EQU PORTB0 00000000
EQU PB0 00000000
EQU PORTB1 00000001
EQU PB1 00000001
EQU PORTB2 00000002
EQU PB2 00000002
EQU PORTB3 00000003
EQU PB3 00000003
EQU PORTB4 00000004
EQU PB4 00000004
EQU PORTB5 00000005
EQU PB5 00000005
EQU PORTB6 00000006
EQU PB6 00000006
EQU PORTB7 00000007
EQU PB7 00000007
EQU DDB0 00000000
EQU DDB1 00000001
EQU DDB2 00000002
EQU DDB3 00000003
EQU DDB4 00000004
EQU DDB5 00000005
EQU DDB6 00000006
EQU DDB7 00000007
EQU PINB0 00000000
EQU PINB1 00000001
EQU PINB2 00000002
EQU PINB3 00000003
EQU PINB4 00000004
EQU PINB5 00000005
EQU PINB6 00000006
EQU PINB7 00000007
EQU PORTC0 00000000
EQU PC0 00000000
EQU PORTC1 00000001
EQU PC1 00000001
EQU PORTC2 00000002
EQU PC2 00000002
EQU PORTC3 00000003
EQU PC3 00000003
EQU PORTC4 00000004
EQU PC4 00000004
EQU PORTC5 00000005
EQU PC5 00000005
EQU PORTC6 00000006
EQU PC6 00000006
EQU PORTC7 00000007
EQU PC7 00000007
EQU DDC0 00000000
EQU DDC1 00000001
EQU DDC2 00000002
EQU DDC3 00000003
EQU DDC4 00000004
EQU DDC5 00000005
EQU DDC6 00000006
EQU DDC7 00000007
EQU PINC0 00000000
EQU PINC1 00000001
EQU PINC2 00000002
EQU PINC3 00000003
EQU PINC4 00000004
EQU PINC5 00000005
EQU PINC6 00000006
EQU PINC7 00000007
EQU PORTD0 00000000
EQU PD0 00000000
EQU PORTD1 00000001
EQU PD1 00000001
EQU PORTD2 00000002
EQU PD2 00000002
EQU PORTD3 00000003
EQU PD3 00000003
EQU PORTD4 00000004
EQU PD4 00000004
EQU PORTD5 00000005
EQU PD5 00000005
EQU PORTD6 00000006
EQU PD6 00000006
EQU PORTD7 00000007
EQU PD7 00000007
EQU DDD0 00000000
EQU DDD1 00000001
EQU DDD2 00000002
EQU DDD3 00000003
EQU DDD4 00000004
EQU DDD5 00000005
EQU DDD6 00000006
EQU DDD7 00000007
EQU PIND0 00000000
EQU PIND1 00000001
EQU PIND2 00000002
EQU PIND3 00000003
EQU PIND4 00000004
EQU PIND5 00000005
EQU PIND6 00000006
EQU PIND7 00000007
EQU PORTE0 00000000
EQU PE0 00000000
EQU PORTE1 00000001
EQU PE1 00000001
EQU PORTE2 00000002
EQU PE2 00000002
EQU PORTE3 00000003
EQU PE3 00000003
EQU PORTE4 00000004
EQU PE4 00000004
EQU PORTE5 00000005
EQU PE5 00000005
EQU PORTE6 00000006
EQU PE6 00000006
EQU PORTE7 00000007
EQU PE7 00000007
EQU DDE0 00000000
EQU DDE1 00000001
EQU DDE2 00000002
EQU DDE3 00000003
EQU DDE4 00000004
EQU DDE5 00000005
EQU DDE6 00000006
EQU DDE7 00000007
EQU PINE0 00000000
EQU PINE1 00000001
EQU PINE2 00000002
EQU PINE3 00000003
EQU PINE4 00000004
EQU PINE5 00000005
EQU PINE6 00000006
EQU PINE7 00000007
EQU PORTF0 00000000
EQU PF0 00000000
EQU PORTF1 00000001
EQU PF1 00000001
EQU PORTF2 00000002
EQU PF2 00000002
EQU PORTF3 00000003
EQU PF3 00000003
EQU PORTF4 00000004
EQU PF4 00000004
EQU PORTF5 00000005
EQU PF5 00000005
EQU PORTF6 00000006
EQU PF6 00000006
EQU PORTF7 00000007
EQU PF7 00000007
EQU DDF0 00000000
EQU DDF1 00000001
EQU DDF2 00000002
EQU DDF3 00000003
EQU DDF4 00000004
EQU DDF5 00000005
EQU DDF6 00000006
EQU DDF7 00000007
EQU PINF0 00000000
EQU PINF1 00000001
EQU PINF2 00000002
EQU PINF3 00000003
EQU PINF4 00000004
EQU PINF5 00000005
EQU PINF6 00000006
EQU PINF7 00000007
EQU PORTG0 00000000
EQU PG0 00000000
EQU PORTG1 00000001
EQU PG1 00000001
EQU PORTG2 00000002
EQU PG2 00000002
EQU PORTG3 00000003
EQU PG3 00000003
EQU PORTG4 00000004
EQU PG4 00000004
EQU DDG0 00000000
EQU DDG1 00000001
EQU DDG2 00000002
EQU DDG3 00000003
EQU DDG4 00000004
EQU PING0 00000000
EQU PING1 00000001
EQU PING2 00000002
EQU PING3 00000003
EQU PING4 00000004
EQU CS00 00000000
EQU CS01 00000001
EQU CS02 00000002
EQU WGM01 00000003
EQU CTC0 00000003
EQU COM00 00000004
EQU COM01 00000005
EQU WGM00 00000006
EQU PWM0 00000006
EQU FOC0 00000007
EQU TCNT0_0 00000000
EQU TCNT0_1 00000001
EQU TCNT0_2 00000002
EQU TCNT0_3 00000003
EQU TCNT0_4 00000004
EQU TCNT0_5 00000005
EQU TCNT0_6 00000006
EQU TCNT0_7 00000007
EQU OCR0_0 00000000
EQU OCR0_1 00000001
EQU OCR0_2 00000002
EQU OCR0_3 00000003
EQU OCR0_4 00000004
EQU OCR0_5 00000005
EQU OCR0_6 00000006
EQU OCR0_7 00000007
EQU TCR0UB 00000000
EQU OCR0UB 00000001
EQU TCN0UB 00000002
EQU AS0 00000003
EQU TOIE0 00000000
EQU OCIE0 00000001
EQU TOV0 00000000
EQU OCF0 00000001
EQU TOIE1 00000002
EQU OCIE1B 00000003
EQU OCIE1A 00000004
EQU TICIE1 00000005
EQU OCIE1C 00000000
EQU TOV1 00000002
EQU OCF1B 00000003
EQU OCF1A 00000004
EQU ICF1 00000005
EQU OCF1C 00000000
EQU WGM10 00000000
EQU PWM10 00000000
EQU WGM11 00000001
EQU PWM11 00000001
EQU COM1C0 00000002
EQU COM1C1 00000003
EQU COM1B0 00000004
EQU COM1B1 00000005
EQU COM1A0 00000006
EQU COM1A1 00000007
EQU CS10 00000000
EQU CS11 00000001
EQU CS12 00000002
EQU WGM12 00000003
EQU CTC10 00000003
EQU WGM13 00000004
EQU CTC11 00000004
EQU ICES1 00000006
EQU ICNC1 00000007
EQU FOC1C 00000005
EQU FOC1B 00000006
EQU FOC1A 00000007
EQU CS20 00000000
EQU CS21 00000001
EQU CS22 00000002
EQU WGM21 00000003
EQU CTC2 00000003
EQU COM20 00000004
EQU COM21 00000005
EQU WGM20 00000006
EQU PWM2 00000006
EQU FOC2 00000007
EQU TCNT2_0 00000000
EQU TCNT2_1 00000001
EQU TCNT2_2 00000002
EQU TCNT2_3 00000003
EQU TCNT2_4 00000004
EQU TCNT2_5 00000005
EQU TCNT2_6 00000006
EQU TCNT2_7 00000007
EQU OCR2_0 00000000
EQU OCR2_1 00000001
EQU OCR2_2 00000002
EQU OCR2_3 00000003
EQU OCR2_4 00000004
EQU OCR2_5 00000005
EQU OCR2_6 00000006
EQU OCR2_7 00000007
EQU TOIE2 00000006
EQU OCIE2 00000007
EQU TOV2 00000006
EQU OCF2 00000007
EQU OCIE3C 00000001
EQU TOIE3 00000002
EQU OCIE3B 00000003
EQU OCIE3A 00000004
EQU TICIE3 00000005
EQU OCF3C 00000001
EQU TOV3 00000002
EQU OCF3B 00000003
EQU OCF3A 00000004
EQU ICF3 00000005
EQU WGM30 00000000
EQU PWM30 00000000
EQU WGM31 00000001
EQU PWM31 00000001
EQU COM3C0 00000002
EQU COM3C1 00000003
EQU COM3B0 00000004
EQU COM3B1 00000005
EQU COM3A0 00000006
EQU COM3A1 00000007
EQU CS30 00000000
EQU CS31 00000001
EQU CS32 00000002
EQU WGM32 00000003
EQU CTC30 00000003
EQU WGM33 00000004
EQU CTC31 00000004
EQU ICES3 00000006
EQU ICNC3 00000007
EQU FOC3C 00000005
EQU FOC3B 00000006
EQU FOC3A 00000007
EQU TCN3L0 00000000
EQU TCN3L1 00000001
EQU TCN3L2 00000002
EQU TCN3L3 00000003
EQU TCN3L4 00000004
EQU TCN3L5 00000005
EQU TCN3L6 00000006
EQU TCN3L7 00000007
EQU WDTCSR 00000021
EQU WDP0 00000000
EQU WDP1 00000001
EQU WDP2 00000002
EQU WDE 00000003
EQU WDCE 00000004
EQU WDTOE 00000004
EQU MUX0 00000000
EQU MUX1 00000001
EQU MUX2 00000002
EQU MUX3 00000003
EQU MUX4 00000004
EQU ADLAR 00000005
EQU REFS0 00000006
EQU REFS1 00000007
EQU ADCSR 00000006
EQU ADPS0 00000000
EQU ADPS1 00000001
EQU ADPS2 00000002
EQU ADIE 00000003
EQU ADIF 00000004
EQU ADFR 00000005
EQU ADSC 00000006
EQU ADEN 00000007
EQU ADCH0 00000000
EQU ADCH1 00000001
EQU ADCH2 00000002
EQU ADCH3 00000003
EQU ADCH4 00000004
EQU ADCH5 00000005
EQU ADCH6 00000006
EQU ADCH7 00000007
EQU ADCL0 00000000
EQU ADCL1 00000001
EQU ADCL2 00000002
EQU ADCL3 00000003
EQU ADCL4 00000004
EQU ADCL5 00000005
EQU ADCL6 00000006
EQU ADCL7 00000007
EQU LB1 00000000
EQU LB2 00000001
EQU BLB01 00000002
EQU BLB02 00000003
EQU BLB11 00000004
EQU BLB12 00000005
EQU CKSEL0 00000000
EQU CKSEL1 00000001
EQU CKSEL2 00000002
EQU CKSEL3 00000003
EQU SUT0 00000004
EQU SUT1 00000005
EQU BODEN 00000006
EQU BODLEVEL 00000007
EQU BOOTRST 00000000
EQU BOOTSZ0 00000001
EQU BOOTSZ1 00000002
EQU EESAVE 00000003
EQU CKOPT 00000004
EQU SPIEN 00000005
EQU JTAGEN 00000006
EQU OCDEN 00000007
EQU WDTON 00000000
EQU M103C 00000001
DEF XH r27
DEF XL r26
DEF YH r29
DEF YL r28
DEF ZH r31
DEF ZL r30
EQU FLASHEND 0000ffff
EQU IOEND 000000ff
EQU SRAM_START 00000100
EQU SRAM_SIZE 00001000
EQU RAMEND 000010ff
EQU XRAMEND 0000ffff
EQU E2END 00000fff
EQU EEPROMEND 00000fff
EQU EEADRBITS 0000000c
EQU NRWW_START_ADDR 0000f000
EQU NRWW_STOP_ADDR 0000ffff
EQU RWW_START_ADDR 00000000
EQU RWW_STOP_ADDR 0000efff
EQU PAGESIZE 00000080
EQU FIRSTBOOTSTART 0000fe00
EQU SECONDBOOTSTART 0000fc00
EQU THIRDBOOTSTART 0000f800
EQU FOURTHBOOTSTART 0000f000
EQU SMALLBOOTSTART 0000fe00
EQU LARGEBOOTSTART 0000f000
EQU INT0addr 00000002
EQU INT1addr 00000004
EQU INT2addr 00000006
EQU INT3addr 00000008
EQU INT4addr 0000000a
EQU INT5addr 0000000c
EQU INT6addr 0000000e
EQU INT7addr 00000010
EQU OC2addr 00000012
EQU OVF2addr 00000014
EQU ICP1addr 00000016
EQU OC1Aaddr 00000018
EQU OC1Baddr 0000001a
EQU OVF1addr 0000001c
EQU OC0addr 0000001e
EQU OVF0addr 00000020
EQU SPIaddr 00000022
EQU URXC0addr 00000024
EQU UDRE0addr 00000026
EQU UTXC0addr 00000028
EQU ADCCaddr 0000002a
EQU ERDYaddr 0000002c
EQU ACIaddr 0000002e
EQU OC1Caddr 00000030
EQU ICP3addr 00000032
EQU OC3Aaddr 00000034
EQU OC3Baddr 00000036
EQU OC3Caddr 00000038
EQU OVF3addr 0000003a
EQU URXC1addr 0000003c
EQU UDRE1addr 0000003e
EQU UTXC1addr 00000040
EQU TWIaddr 00000042
EQU SPMRaddr 00000044
EQU INT_VECTORS_SIZE 00000046
DEF mpr r16
DEF waitcnt r17
DEF ilcnt r18
DEF olcnt r19
DEF cmd_reg r20
DEF addr_reg r21
DEF freeze_sent_reg r22
DEF freeze_count_reg r23
EQU WTime 00000064
EQU WskrR 00000000
EQU WskrL 00000001
EQU RXD1 00000002
EQU EngEnR 00000004
EQU EngEnL 00000007
EQU EngDirR 00000005
EQU EngDirL 00000006
EQU BotAddress 0000001a
EQU MovFwd 00000060
EQU MovBck 00000000
EQU TurnR 00000040
EQU TurnL 00000020
EQU Halt 00000090
EQU MovFwdCmd 000000b0
EQU MovBckCmd 00000080
EQU TurnRCmd 000000a0
EQU TurnLCmd 00000090
EQU HaltCmd 000000c8
EQU FreezeCmd 000000f8
EQU FreezeOthersCmd 00000055
EQU ubrr_low 00000040
EQU ubrr_high 00000003
EQU InterruptsFallingEdge 0000000a
EQU InterruptMasksEnabled 00000003
EQU InterruptMasksDisabled 00000000
EQU InterruptFlagRegisterClear 00000003
EQU cmd_addr_bit 00000007
EQU freezes_to_perm_halt 00000003
CSEG INIT 00000046
CSEG HitRight 000000a7
CSEG HitLeft 000000c0
CSEG RX1_DATA_RECEIVED 0000007a
CSEG USART_Flush 00000073
CSEG MAIN 0000006a
CSEG SendFreezeOthers 0000006b
CSEG RX1_DATA_RECV_END_NO_INT 000000a6
CSEG RX1_DATA_RECV_ADDR 00000095
CSEG RX1_PROCESS_FREEZE 00000086
CSEG RX1_DATA_RECV_END 000000a5
CSEG RX1_FREEZE_LOOP 00000089
CSEG Wait 000000d9
CSEG RX1_DATA_RECV_COMMAND 00000099
CSEG RX1_REG_COMMAND 000000a1
CSEG HitRightEnd 000000bf
CSEG HitLeftEnd 000000d8
CSEG Loop 000000dc
CSEG OLoop 000000dd
CSEG ILoop 000000de

View File

@@ -0,0 +1,46 @@
<ASSEMBLER_INFO>
<VERSION>2.2.7</VERSION>
<DEVICE>"ATmega128"</DEVICE>
<WORKING_DIR>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Debug</WORKING_DIR>
<INCLUDE_PATH>
<DIR>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc</DIR>
<DIR>C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\Include</DIR>
<DIR></DIR>
</INCLUDE_PATH>
<SOURCE_FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</SOURCE_FILE>
<INCLUDED_FILES>
<FILE>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc\m128def.inc</FILE>
</INCLUDED_FILES>
<OBJECT_FILES>
<FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Debug\Corwin_Perren_Lab8_robot_sourcecode.obj</FILE>
</OBJECT_FILES>
<HEX_FILES>
<FILE>Corwin_Perren_Lab8_robot_sourcecode.hex</FILE>
</HEX_FILES>
<OUTPUT_FILES>
<FILE>Corwin_Perren_Lab8_robot_sourcecode.map</FILE>
<FILE>Corwin_Perren_Lab8_robot_sourcecode.lss</FILE>
</OUTPUT_FILES>
<LABELS>
<INIT><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>117</LINE></INIT>
<HitRight><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>306</LINE></HitRight>
<HitLeft><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>351</LINE></HitLeft>
<RX1_DATA_RECEIVED><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>219</LINE></RX1_DATA_RECEIVED>
<USART_Flush><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>208</LINE></USART_Flush>
<MAIN><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>185</LINE></MAIN>
<SendFreezeOthers><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>195</LINE></SendFreezeOthers>
<RX1_DATA_RECV_END_NO_INT><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>299</LINE></RX1_DATA_RECV_END_NO_INT>
<RX1_DATA_RECV_ADDR><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>266</LINE></RX1_DATA_RECV_ADDR>
<RX1_PROCESS_FREEZE><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>240</LINE></RX1_PROCESS_FREEZE>
<RX1_DATA_RECV_END><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>296</LINE></RX1_DATA_RECV_END>
<RX1_FREEZE_LOOP><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>246</LINE></RX1_FREEZE_LOOP>
<Wait><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>400</LINE></Wait>
<RX1_DATA_RECV_COMMAND><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>274</LINE></RX1_DATA_RECV_COMMAND>
<RX1_REG_COMMAND><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>288</LINE></RX1_REG_COMMAND>
<HitRightEnd><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>344</LINE></HitRightEnd>
<HitLeftEnd><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>389</LINE></HitLeftEnd>
<Loop><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>405</LINE></Loop>
<OLoop><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>406</LINE></OLoop>
<ILoop><FILE>C:\Users\caperren\Github\ECE_375\Labs\Lab 8\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode\Corwin_Perren_Lab8_robot_sourcecode.asm</FILE><LINE>407</LINE></ILoop>
</LABELS>
</ASSEMBLER_INFO>