Commit 906d80f8 authored by medlem's avatar medlem
Browse files

All fixed and nice for OV KLAKK and OLED magics. Now with oled abstraction layer for graphics!

parent 725477f0
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
Task2_LF/Debug
.vs
+0 −22
Original line number Diff line number Diff line

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
+0 −86
Original line number Diff line number Diff line
<?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
+0 −177
Original line number Diff line number Diff line
<?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>ATML3094051800000371</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>ATML3094051800000371</ToolNumber>
      <ToolName>nEDBG</ToolName>
    </com_atmel_avrdbg_tool_nedbg>
    <avrtoolinterfaceclock>750000</avrtoolinterfaceclock>
    <com_atmel_avrdbg_tool_simulator>
      <ToolOptions xmlns="">
        <InterfaceProperties>
        </InterfaceProperties>
        <InterfaceName>
        </InterfaceName>
      </ToolOptions>
      <ToolType xmlns="">com.atmel.avrdbg.tool.simulator</ToolType>
      <ToolNumber xmlns="">
      </ToolNumber>
      <ToolName xmlns="">Simulator</ToolName>
    </com_atmel_avrdbg_tool_simulator>
  </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 most (-O3)</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="oled.c">
      <SubType>compile</SubType>
    </Compile>
    <Compile Include="oled.h">
      <SubType>compile</SubType>
    </Compile>
    <Compile Include="fonts.h">
      <SubType>compile</SubType>
    </Compile>
    <Compile Include="main.c">
      <SubType>compile</SubType>
    </Compile>
    <Compile Include="graphics.c">
      <SubType>compile</SubType>
    </Compile>
    <Compile Include="graphics.h">
      <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
+0 −34
Original line number Diff line number Diff line
#define F_CPU 3333333UL


#include <avr/io.h>

#include "oled.h"
#include "spi.h"

/*
	In this exercise you will write a driver for the SPI module. You will connect the OLED1 Xplained Pro screen to the Xplained Pro Extension header.
	and use your SPI driver to write bitmaps and text to the screen.
	A finished driver for the screen is provided (graphics.c), as as a font for it. These build on the SPI driver.
	You can read graphics.h to see what functions you can use with the screen.
	No help beyond the function headers is provided. To start, it's recommend you: 

	a) glance over the chapter on SPI in the ATmega4809 datasheet
	b) find out what pins of the ATmega4809 the screen is connected to 
*/


int main(void)
{
	//Here fprintf is used in stead of printf. If you want to know the difference, ask an assistant or use the internet.
	//Look into the oled.h to see how we connect it to fprintf.
	fprintf(FONT5,"Hello Screen \n");
		
	//Code here

	
    while (1) 
     {
	//Code also here?	 
     }
}
Loading