Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
avrkurs
avrkurs
Commits
8753b829
Commit
8753b829
authored
Mar 06, 2019
by
medlem
Browse files
Fixed LF task 3. Also added new cool screen and adc feature. Currently only LF in copied file.
parent
89bc499e
Changes
22
Expand all
Hide whitespace changes
Inline
Side-by-side
Session3-LF/Task1_LF/Task1_LF/Task1_LF.cproj
View file @
8753b829
...
...
@@ -34,14 +34,13 @@
<documentation
help=
""
/>
<offline-documentation
help=
""
/>
<dependencies>
<content-extension
eid=
"atmel.asf"
uuidref=
"Atmel.ASF"
version=
"3.3
4.1
"
/>
<content-extension
eid=
"atmel.asf"
uuidref=
"Atmel.ASF"
version=
"3.3
7
"
/>
</dependencies>
</framework-data>
</AsfFrameworkConfig>
<avrtool>
</avrtool>
<avrtoolserialnumber>
ATML2654041800000542
</avrtoolserialnumber>
<avrdeviceexpectedsignature>
0x1E9320
</avrdeviceexpectedsignature>
<avrtool>
com.atmel.avrdbg.tool.nedbg
</avrtool>
<avrtoolserialnumber>
ATML3094051800000371
</avrtoolserialnumber>
<avrdeviceexpectedsignature>
0x1E9651
</avrdeviceexpectedsignature>
<avrtoolinterface>
UPDI
</avrtoolinterface>
<com_atmel_avrdbg_tool_edbg>
<ToolOptions>
...
...
@@ -54,86 +53,97 @@
<ToolNumber>
ATML2654041800000542
</ToolNumber>
<ToolName>
EDBG
</ToolName>
</com_atmel_avrdbg_tool_edbg>
<avrtoolinterfaceclock>
10
0000
</avrtoolinterfaceclock>
<avrtoolinterfaceclock>
75
0000
</avrtoolinterfaceclock>
<ResetRule>
0
</ResetRule>
<EraseKey
/>
<com_atmel_avrdbg_tool_nedbg>
<ToolOptions>
<InterfaceProperties>
<UpdiClock>
750000
</UpdiClock>
</InterfaceProperties>
<InterfaceName>
UPDI
</InterfaceName>
</ToolOptions>
<ToolType>
com.atmel.avrdbg.tool.nedbg
</ToolType>
<ToolNumber>
ATML3094051800000371
</ToolNumber>
<ToolName>
nEDBG
</ToolName>
</com_atmel_avrdbg_tool_nedbg>
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)' == 'Release' "
>
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>
-mmcu=atmega4809 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega4809"
</avrgcc.common.Device>
<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.directories.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>
libm
</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
</AvrGcc>
<avrgcc.common.Device>
-mmcu=atmega4809 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega4809"
</avrgcc.common.Device>
<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.directories.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>
libm
</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)' == 'Debug' "
>
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>
-mmcu=atmega4809 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega4809"
</avrgcc.common.Device>
<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.directories.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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.linker.libraries.Libraries>
<ListValues>
<Value>
libm
</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
<avrgcc.assembler.debugging.DebugLevel>
Default (-Wa,-g)
</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
<avrgcc.common.Device>
-mmcu=atmega4809 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega4809"
</avrgcc.common.Device>
<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.directories.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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.linker.libraries.Libraries>
<ListValues>
<Value>
libm
</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
<avrgcc.assembler.debugging.DebugLevel>
Default (-Wa,-g)
</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
...
...
Session3-LF/Task1_LF/Task1_LF/adc.c
View file @
8753b829
...
...
@@ -8,10 +8,10 @@
#include <avr/io.h>
void
adc_init
(){
ADC0
.
CTRLA
|=
(
ADC_RESSEL_
8
BIT_gc
);
//Set resolution, we choose 8 bits
ADC0
.
CTRLA
|=
(
ADC_RESSEL_
10
BIT_gc
);
//Set resolution, we choose 8 bits
ADC0
.
CTRLB
|=
(
ADC_SAMPNUM_ACC4_gc
);
//OPTIONAL: We can use multiple samples if we like, example here with 4
//More samples gives a better result but takes longer
//More samples gives a better result but takes longer
.
ADC0
.
CTRLC
|=
(
ADC_REFSEL_VDDREF_gc
);
//We select to use the supply voltage (VDD) as voltage reference
ADC0
.
CTRLC
|=
(
ADC_PRESC_DIV2_gc
);
//ADC clock prescaler, best accuracy when run below 2MHz. (Here div2 ~1.46 MHz)
...
...
@@ -19,7 +19,7 @@ void adc_init(){
}
uint
8
_t
adc_read
(
uint8_t
channel
){
uint
16
_t
adc_read
(
uint8_t
channel
){
ADC0
.
MUXPOS
=
channel
;
//Select input on the ADC mux
//NOTE: We can use = here because this is the only thing the register holds. Neat!
...
...
@@ -30,6 +30,6 @@ uint8_t adc_read(uint8_t channel){
while
(
!
(
ADC0
.
INTFLAGS
&
ADC_RESRDY_bm
)){
//Wait for the results ready flag to be set
}
return
ADC0
.
RES
L
;
//Return
8
bit result
return
ADC0
.
RES
;
//Return
10
bit result
}
Session3-LF/Task1_LF/Task1_LF/adc.h
View file @
8753b829
...
...
@@ -11,6 +11,6 @@
void
adc_init
(
void
);
uint
8
_t
adc_read
(
uint8_t
channel
);
uint
16
_t
adc_read
(
uint8_t
channel
);
#endif
/* ADC_H_ */
\ No newline at end of file
Session3-LF/Task1_LF/Task1_LF/main.c
View file @
8753b829
...
...
@@ -16,30 +16,28 @@
#include "uart.h"
#define
LIGHT
0x01 //
Light sensor
is connected to ADC channel 1 (which is on port D pin 1)
#define
KLAKK
0x01 //
OV-POT KLAKK
is connected to ADC channel 1 (which is on port D pin 1)
uint
8
_t
data
=
0
;
uint
16
_t
data
=
0
;
int
main
(
void
)
{
uart_init
(
BAUD_9600
);
//Initiate the uart (provided in uart.c) with a baudrate of 9600
uart_init
(
BAUD_9600
);
//Initiate the u
s
art (provided in u
s
art.c) with a baudrate of 9600
adc_init
();
//Initiate the adc (The student has to write this function)
sei
();
//If we want to receive via
UART
we need interrupts enabled.
//NOTE:
UART
isn't used to receive here and as such this isn't required.
sei
();
//If we want to receive via
usart
we need interrupts enabled.
//NOTE:
usart
isn't used to receive here and as such this isn't required.
while
(
1
)
{
data
=
adc_read
(
LIGHT
);
//Read the analog voltage on channel 6, connected to light sensor
//The light sensor returns the ones complement (the opposite) of the brightness:
data
=
0xff
-
data
;
data
=
adc_read
(
KLAKK
);
//Read the analog voltage on channel 6, connected to OV-POT KLAKK
printf
(
"
Light intensity is currently %d brightness points
!
\r\n
"
,
data
);
//Print out the value neatly using printf
printf
(
"
ADC is reading %u from OV-POT KLAKK
!
\r\n
"
,
data
);
//Print out the value neatly using printf
/*
About printf: Handles formatting of your print to terminal. This includes special characters, values of variables and more.
It takes one string and any variables you want to print.
...
...
Session3-LF/Task2_LF - Copy/.gitignore
0 → 100644
View file @
8753b829
Task2_LF/Debug
.vs
Session3-LF/Task2_LF - Copy/Task2_LF.atsln
0 → 100644
View file @
8753b829
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("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "Task2_LF", "Task2_LF\Task2_LF.cproj", "{DCE6C7E3-EE26-4D79-826B-08594B9AD897}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AVR = Debug|AVR
Release|AVR = Release|AVR
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.ActiveCfg = Debug|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.Build.0 = Debug|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.ActiveCfg = Release|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.Build.0 = Release|AVR
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
Session3-LF/Task2_LF - Copy/Task2_LF/Task2_LF.componentinfo.xml
0 → 100644
View file @
8753b829
<?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\include
</AbsolutePath>
<Attribute></Attribute>
<Category>
include
</Category>
<Condition>
C
</Condition>
<FileContentHash
i:nil=
"true"
/>
<FileVersion></FileVersion>
<Name>
include
</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\include\avr\iom4809.h
</AbsolutePath>
<Attribute></Attribute>
<Category>
header
</Category>
<Condition>
C
</Condition>
<FileContentHash>
mWiFIOAGwUPlW0rYsXcjkg==
</FileContentHash>
<FileVersion></FileVersion>
<Name>
include/avr/iom4809.h
</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\templates\main.c
</AbsolutePath>
<Attribute>
template
</Attribute>
<Category>
source
</Category>
<Condition>
C Exe
</Condition>
<FileContentHash>
GD1k8YYhulqRs6FD1B2Hog==
</FileContentHash>
<FileVersion></FileVersion>
<Name>
templates/main.c
</Name>
<SelectString>
Main file (.c)
</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\templates\main.cpp
</AbsolutePath>
<Attribute>
template
</Attribute>
<Category>
source
</Category>
<Condition>
C Exe
</Condition>
<FileContentHash>
YXFphlh0CtZJU+ebktABgQ==
</FileContentHash>
<FileVersion></FileVersion>
<Name>
templates/main.cpp
</Name>
<SelectString>
Main file (.cpp)
</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\gcc\dev\atmega4809
</AbsolutePath>
<Attribute></Attribute>
<Category>
libraryPrefix
</Category>
<Condition>
GCC
</Condition>
<FileContentHash
i:nil=
"true"
/>
<FileVersion></FileVersion>
<Name>
gcc/dev/atmega4809
</Name>
<SelectString></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>
ATmega4809
</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>
\ No newline at end of file
Session3-LF/Task2_LF - Copy/Task2_LF/Task2_LF.cproj
0 → 100644
View file @
8753b829
<?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.AVRGCC8.C
</ToolchainName>
<ProjectGuid>
dce6c7e3-ee26-4d79-826b-08594b9ad897
</ProjectGuid>
<avrdevice>
ATmega4809
</avrdevice>
<avrdeviceseries>
none
</avrdeviceseries>
<OutputType>
Executable
</OutputType>
<Language>
C
</Language>
<OutputFileName>
$(MSBuildProjectName)
</OutputFileName>
<OutputFileExtension>
.elf
</OutputFileExtension>
<OutputDirectory>
$(MSBuildProjectDirectory)\$(Configuration)
</OutputDirectory>
<AssemblyName>
Task2_LF
</AssemblyName>
<Name>
Task2_LF
</Name>
<RootNamespace>
Task2_LF
</RootNamespace>
<ToolchainFlavour>
Native
</ToolchainFlavour>
<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>
<eraseonlaunchrule>
0
</eraseonlaunchrule>
<AsfFrameworkConfig>
<framework-data>
<options
/>
<configurations
/>
<files
/>
<documentation
help=
""
/>
<offline-documentation
help=
""
/>
<dependencies>
<content-extension
eid=
"atmel.asf"
uuidref=
"Atmel.ASF"
version=
"3.37"
/>
</dependencies>
</framework-data>
</AsfFrameworkConfig>
<ResetRule>
0
</ResetRule>
<EraseKey
/>
<avrtool>
com.atmel.avrdbg.tool.nedbg
</avrtool>
<avrtoolserialnumber>
ATML3094051800000374
</avrtoolserialnumber>
<avrdeviceexpectedsignature>
0x1E9651
</avrdeviceexpectedsignature>
<avrtoolinterface>
UPDI
</avrtoolinterface>
<com_atmel_avrdbg_tool_nedbg>
<ToolOptions>
<InterfaceProperties>
<UpdiClock>
750000
</UpdiClock>
</InterfaceProperties>
<InterfaceName>
UPDI
</InterfaceName>
</ToolOptions>
<ToolType>
com.atmel.avrdbg.tool.nedbg
</ToolType>
<ToolNumber>
ATML3094051800000374
</ToolNumber>
<ToolName>
nEDBG
</ToolName>
</com_atmel_avrdbg_tool_nedbg>
<avrtoolinterfaceclock>
750000
</avrtoolinterfaceclock>
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)' == 'Release' "
>
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>
-mmcu=atmega4809 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega4809"
</avrgcc.common.Device>
<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.directories.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>
libm
</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)' == 'Debug' "
>
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>
-mmcu=atmega4809 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega4809"
</avrgcc.common.Device>
<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.directories.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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.linker.libraries.Libraries>
<ListValues>
<Value>
libm
</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>
%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include
</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
<avrgcc.assembler.debugging.DebugLevel>
Default (-Wa,-g)
</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile
Include=
"adc.c"
>
<SubType>
compile
</SubType>
</Compile>
<Compile
Include=
"adc.h"
>
<SubType>
compile
</SubType>
</Compile>
<Compile
Include=
"display.c"
>
<SubType>
compile
</SubType>
</Compile>
<Compile
Include=
"display.h"
>
<SubType>
compile
</SubType>
</Compile>
<Compile
Include=
"driv_OLED.c"
>
<SubType>
compile
</SubType>
</Compile>
<Compile
Include=
"driv_OLED.h"
>
<SubType>
compile
</SubType>
</Compile>
<Compile
Include=
"font8x8.h"
>
<SubType>
compile
</SubType>
</Compile>
<Compile
Include=
"fonts.h"
>
<SubType>
compile
</SubType>
</Compile>
<Compile
Include=
"main.c"
>
<SubType>
compile
</SubType>
</Compile>
<Compile
Include=
"spi.c"
>
<SubType>
compile
</SubType>
</Compile>
<Compile
Include=
"spi.h"
>
<SubType>
compile
</SubType>
</Compile>
</ItemGroup>
<Import
Project=
"$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets"
/>
</Project>
\ No newline at end of file
Session3-LF/Task2_LF - Copy/Task2_LF/adc.c
0 → 100644
View file @
8753b829
/*
* adc.c
*
* Created: 13.02.2017 02:04:10
* Author: Petter
*/
#include <avr/io.h>
void
adc_init
(){
ADC0
.
CTRLA
|=
(
ADC_RESSEL_10BIT_gc
);
//Set resolution, we choose 8 bits
ADC0
.
CTRLB
|=
(
ADC_SAMPNUM_ACC4_gc
);
//OPTIONAL: We can use multiple samples if we like, example here with 4
//More samples gives a better result but takes longer.
ADC0
.
CTRLC
|=
(
ADC_REFSEL_VDDREF_gc
);
//We select to use the supply voltage (VDD) as voltage reference
ADC0
.
CTRLC
|=
(
ADC_PRESC_DIV2_gc
);
//ADC clock prescaler, best accuracy when run below 2MHz. (Here div2 ~1.46 MHz)
ADC0
.
CTRLA
|=
(
ADC_ENABLE_bm
);
//Enable the ADC
}
uint16_t
adc_read
(
uint8_t
channel
){
ADC0
.
MUXPOS
=
channel
;
//Select input on the ADC mux
//NOTE: We can use = here because this is the only thing the register holds. Neat!
ADC0
.
INTFLAGS
|=
(
ADC_RESRDY_bm
);
//Clear the results ready flag
ADC0
.
COMMAND
|=
(
ADC_STCONV_bm
);
//Start a conversion
while
(
!
(
ADC0
.
INTFLAGS
&
ADC_RESRDY_bm
)){
//Wait for the results ready flag to be set
}
return
ADC0
.
RES
;
//Return 10 bit result
}
Session3-LF/Task2_LF - Copy/Task2_LF/adc.h
0 → 100644
View file @
8753b829
/*
* adc.h
*
* Created: 27.02.2017 16:51:27
* Author: Petter
*/
#ifndef ADC_H_
#define ADC_H_
void
adc_init
(
void
);
uint16_t
adc_read
(
uint8_t
channel
);