Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
attinykurs
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
simenpf
attinykurs
Commits
8753b829
Commit
8753b829
authored
Mar 06, 2019
by
medlem
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
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
Showing
22 changed files
with
1971 additions
and
161 deletions
+1971
-161
Session3-LF/Task1_LF/Task1_LF/Task1_LF.cproj
Session3-LF/Task1_LF/Task1_LF/Task1_LF.cproj
+84
-74
Session3-LF/Task1_LF/Task1_LF/adc.c
Session3-LF/Task1_LF/Task1_LF/adc.c
+4
-4
Session3-LF/Task1_LF/Task1_LF/adc.h
Session3-LF/Task1_LF/Task1_LF/adc.h
+1
-1
Session3-LF/Task1_LF/Task1_LF/main.c
Session3-LF/Task1_LF/Task1_LF/main.c
+8
-10
Session3-LF/Task2_LF - Copy/.gitignore
Session3-LF/Task2_LF - Copy/.gitignore
+2
-0
Session3-LF/Task2_LF - Copy/Task2_LF.atsln
Session3-LF/Task2_LF - Copy/Task2_LF.atsln
+22
-0
Session3-LF/Task2_LF - Copy/Task2_LF/Task2_LF.componentinfo.xml
...n3-LF/Task2_LF - Copy/Task2_LF/Task2_LF.componentinfo.xml
+86
-0
Session3-LF/Task2_LF - Copy/Task2_LF/Task2_LF.cproj
Session3-LF/Task2_LF - Copy/Task2_LF/Task2_LF.cproj
+174
-0
Session3-LF/Task2_LF - Copy/Task2_LF/adc.c
Session3-LF/Task2_LF - Copy/Task2_LF/adc.c
+35
-0
Session3-LF/Task2_LF - Copy/Task2_LF/adc.h
Session3-LF/Task2_LF - Copy/Task2_LF/adc.h
+16
-0
Session3-LF/Task2_LF - Copy/Task2_LF/display.c
Session3-LF/Task2_LF - Copy/Task2_LF/display.c
+317
-0
Session3-LF/Task2_LF - Copy/Task2_LF/display.h
Session3-LF/Task2_LF - Copy/Task2_LF/display.h
+28
-0
Session3-LF/Task2_LF - Copy/Task2_LF/driv_OLED.c
Session3-LF/Task2_LF - Copy/Task2_LF/driv_OLED.c
+206
-0
Session3-LF/Task2_LF - Copy/Task2_LF/driv_OLED.h
Session3-LF/Task2_LF - Copy/Task2_LF/driv_OLED.h
+81
-0
Session3-LF/Task2_LF - Copy/Task2_LF/font8x8.h
Session3-LF/Task2_LF - Copy/Task2_LF/font8x8.h
+181
-0
Session3-LF/Task2_LF - Copy/Task2_LF/fonts.h
Session3-LF/Task2_LF - Copy/Task2_LF/fonts.h
+458
-0
Session3-LF/Task2_LF - Copy/Task2_LF/main.c
Session3-LF/Task2_LF - Copy/Task2_LF/main.c
+105
-0
Session3-LF/Task2_LF - Copy/Task2_LF/spi.c
Session3-LF/Task2_LF - Copy/Task2_LF/spi.c
+67
-0
Session3-LF/Task2_LF - Copy/Task2_LF/spi.h
Session3-LF/Task2_LF - Copy/Task2_LF/spi.h
+24
-0
Session3-LF/Task2_LF/Task2_LF/Task2_LF.cproj
Session3-LF/Task2_LF/Task2_LF/Task2_LF.cproj
+69
-69
Session3-LF/Task2_LF/Task2_LF/display.c
Session3-LF/Task2_LF/Task2_LF/display.c
+2
-2
Session3/Task1/adc.c
Session3/Task1/adc.c
+1
-1
No files found.
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 u
art (provided in u
art.c) with a baudrate of 9600
uart_init
(
BAUD_9600
);
//Initiate the u
sart (provided in us
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
);
<