Skip to content

Commit

Permalink
Control line code for MUX switching
Browse files Browse the repository at this point in the history
Fixed PROGMEM references for Atmel Studio
Added Atmel Studio project files
Added new and updated schematic and fritzing files
  • Loading branch information
sweetlilmre committed Oct 12, 2014
1 parent f500906 commit 5eeed23
Show file tree
Hide file tree
Showing 13 changed files with 297 additions and 73 deletions.
195 changes: 195 additions & 0 deletions Tapuino.cproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>6.2</ProjectVersion>
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
<ProjectGuid>{4ec26722-9e4b-4e84-94fb-ac9f2dab1ef2}</ProjectGuid>
<avrdevice>ATmega328P</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>C</Language>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<AssemblyName>Tapuino</AssemblyName>
<Name>Tapuino</Name>
<RootNamespace>Tapuino</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<CacheFlash>true</CacheFlash>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress />
<UncachedRange />
<OverrideVtorValue />
<BootSegment>2</BootSegment>
<eraseonlaunchrule>1</eraseonlaunchrule>
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.19.0" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrGcc>
<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>
<Value>F_CPU=16000000</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGcc>
<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>
<Value>F_CPU=16000000</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="buffer.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="buffer.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="ccsbcs_avr.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="comms.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="comms.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="config.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="diskio.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="ff.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="ff.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="ffconf.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="fileutils.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="fileutils.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="i2cmaster.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="integer.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="lcd.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="lcd.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="lcdutils.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="lcdutils.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="LightweightRingBuff.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="memstrings.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="memstrings.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="menu.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="menu.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="mmc.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="mmc.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="spi.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="spi.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="tapuino.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="tapuino.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="main.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="twimaster.c">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>
6 changes: 4 additions & 2 deletions config.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,10 @@

#define CONTROL_PORT PORTD
#define CONTROL_DDR DDRD
#define CONTROL_PIN1 6
#define CONTROL_PIN2 7
#define CONTROL_PIN0 6
#define CONTROL_PIN1 7
#define CONTROL_SET_BUS0() CONTROL_PORT &= ~(_BV(CONTROL_PIN0) | _BV(CONTROL_PIN1))
#define CONTROL_SET_BUS1() { CONTROL_PORT &= ~_BV(CONTROL_PIN1); CONTROL_PORT |= _BV(CONTROL_PIN0); }

#define KEYS_READ_PORT PORTC
#define KEYS_READ_DDR DDRC
Expand Down
Binary file added layout/tapuino-main-bottom-r2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added layout/tapuino-main-r2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added layout/tapuino-mux-board-r2-bottom.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added layout/tapuino-mux-board-r2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified layout/tapuino.fzz
Binary file not shown.
Binary file modified layout/tapuino_bb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 22 additions & 0 deletions main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
* Tapuino.c
*
* Created: 2014/10/04 04:31:40 PM
* Author: sweetlilmre
*/

#ifndef ARDUINO

#include <avr/io.h>
#include "tapuino.h"

int main(void)
{
while(1)
{
tapuino_run();
//TODO:: Please write your application code
}
}

#endif
66 changes: 33 additions & 33 deletions memstrings.c
Original file line number Diff line number Diff line change
@@ -1,42 +1,42 @@
#include <avr/pgmspace.h>
#include "memstrings.h"

prog_char S_DEFAULT_RECORD_DIR[] PROGMEM = "/recorded";
prog_char S_NAME_PATTERN[] PROGMEM = "rec-%.4d.tap";
prog_char S_RECORDING[] PROGMEM = "Recording";
prog_char S_SELECT_RECORD_MODE[] PROGMEM = "Name mode:";
prog_char S_REC_MODE_MANUAL[] PROGMEM = "Manual";
prog_char S_REC_MODE_AUTO[] PROGMEM = "Auto";
prog_char S_ENTER_FILENAME[] PROGMEM = "Enter name";
prog_char S_FILENAME_CHARS[] PROGMEM = " abcdefghijklmnopqrstuvwxyz0123456789_-";
const char S_DEFAULT_RECORD_DIR[] PROGMEM = "/recorded";
const char S_NAME_PATTERN[] PROGMEM = "rec-%.4d.tap";
const char S_RECORDING[] PROGMEM = "Recording";
const char S_SELECT_RECORD_MODE[] PROGMEM = "Name mode:";
const char S_REC_MODE_MANUAL[] PROGMEM = "Manual";
const char S_REC_MODE_AUTO[] PROGMEM = "Auto";
const char S_ENTER_FILENAME[] PROGMEM = "Enter name";
const char S_FILENAME_CHARS[] PROGMEM = " abcdefghijklmnopqrstuvwxyz0123456789_-";

prog_char S_INIT[] PROGMEM = "Init...";
prog_char S_INIT_FAILED[] PROGMEM = "Init failed!";
prog_char S_INIT_OK[] PROGMEM = "Init OK.";
const char S_INIT[] PROGMEM = "Init...";
const char S_INIT_FAILED[] PROGMEM = "Init failed!";
const char S_INIT_OK[] PROGMEM = "Init OK.";

prog_char S_NO_FILES_FOUND[] PROGMEM = "No files found!";
prog_char S_SELECT_FILE[] PROGMEM = "Select file:";
prog_char S_SELECT_MODE[] PROGMEM = "Select mode:";
prog_char S_MODE_PLAY[] PROGMEM = "Play";
prog_char S_MODE_RECORD[] PROGMEM = "Record";
prog_char S_READY_RECORD[] PROGMEM = "Ready...";
prog_char S_PRESS_START[] PROGMEM = "Press START";
const char S_NO_FILES_FOUND[] PROGMEM = "No files found!";
const char S_SELECT_FILE[] PROGMEM = "Select file:";
const char S_SELECT_MODE[] PROGMEM = "Select mode:";
const char S_MODE_PLAY[] PROGMEM = "Play";
const char S_MODE_RECORD[] PROGMEM = "Record";
const char S_READY_RECORD[] PROGMEM = "Ready...";
const char S_PRESS_START[] PROGMEM = "Press START";

prog_char S_MODE_OPTIONS[] PROGMEM = "Options";
prog_char S_OPTION_SIGNAL[] PROGMEM = "Invert";
prog_char S_OPTION_KEY_REPEAT[] PROGMEM = "Key speed";
prog_char S_OPTION_TICKER_SPEED[] PROGMEM = "Ticker speed";
prog_char S_OPTION_TICKER_HOLD[] PROGMEM = "Ticker hold";
prog_char S_OPTION_REC_FINALIZE[] PROGMEM = "Record finalize";
const char S_MODE_OPTIONS[] PROGMEM = "Options";
const char S_OPTION_SIGNAL[] PROGMEM = "Invert";
const char S_OPTION_KEY_REPEAT[] PROGMEM = "Key speed";
const char S_OPTION_TICKER_SPEED[] PROGMEM = "Ticker speed";
const char S_OPTION_TICKER_HOLD[] PROGMEM = "Ticker hold";
const char S_OPTION_REC_FINALIZE[] PROGMEM = "Record finalize";

prog_char S_MKDIR_FAILED[] PROGMEM = "MKDIR fail!";
prog_char S_CHDIR_FAILED[] PROGMEM = "CHDIR fail!";
prog_char S_READ_FAILED[] PROGMEM = "READ fail!";
prog_char S_OPEN_FAILED[] PROGMEM = "OPEN fail!";
prog_char S_INVALID_TAP[] PROGMEM = "Invalid TAP!";
const char S_MKDIR_FAILED[] PROGMEM = "MKDIR fail!";
const char S_CHDIR_FAILED[] PROGMEM = "CHDIR fail!";
const char S_READ_FAILED[] PROGMEM = "READ fail!";
const char S_OPEN_FAILED[] PROGMEM = "OPEN fail!";
const char S_INVALID_TAP[] PROGMEM = "Invalid TAP!";

prog_char S_LOADING[] PROGMEM = "Loading:";
prog_char S_OPERATION_COMPLETE[] PROGMEM = "Complete!";
prog_char S_OPERATION_ABORTED[] PROGMEM = "Aborted!";
const char S_LOADING[] PROGMEM = "Loading:";
const char S_OPERATION_COMPLETE[] PROGMEM = "Complete!";
const char S_OPERATION_ABORTED[] PROGMEM = "Aborted!";

prog_char S_TAP_MAGIC_C64[] PROGMEM = "C64-TAPE-RAW";
const char S_TAP_MAGIC_C64[] PROGMEM = "C64-TAPE-RAW";
70 changes: 35 additions & 35 deletions memstrings.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,43 +3,43 @@

#include <avr/pgmspace.h>

extern prog_char S_DEFAULT_RECORD_DIR[];
extern prog_char S_NAME_PATTERN[];
extern prog_char S_RECORDING[];
extern prog_char S_SELECT_RECORD_MODE[];
extern prog_char S_REC_MODE_MANUAL[];
extern prog_char S_REC_MODE_AUTO[];
extern prog_char S_ENTER_FILENAME[];
extern prog_char S_FILENAME_CHARS[];
extern const char S_DEFAULT_RECORD_DIR[];
extern const char S_NAME_PATTERN[];
extern const char S_RECORDING[];
extern const char S_SELECT_RECORD_MODE[];
extern const char S_REC_MODE_MANUAL[];
extern const char S_REC_MODE_AUTO[];
extern const char S_ENTER_FILENAME[];
extern const char S_FILENAME_CHARS[];

extern prog_char S_STARTINGINIT[];
extern prog_char S_INITI2COK[];
extern prog_char S_INIT[];
extern prog_char S_INIT_FAILED[];
extern prog_char S_INIT_OK[];
extern prog_char S_NO_FILES_FOUND[];
extern prog_char S_SELECT_FILE[];
extern prog_char S_SELECT_MODE[];
extern prog_char S_MODE_PLAY[];
extern prog_char S_MODE_RECORD[];
extern prog_char S_READY_RECORD[];
extern prog_char S_PRESS_START[];
extern const char S_STARTINGINIT[];
extern const char S_INITI2COK[];
extern const char S_INIT[];
extern const char S_INIT_FAILED[];
extern const char S_INIT_OK[];
extern const char S_NO_FILES_FOUND[];
extern const char S_SELECT_FILE[];
extern const char S_SELECT_MODE[];
extern const char S_MODE_PLAY[];
extern const char S_MODE_RECORD[];
extern const char S_READY_RECORD[];
extern const char S_PRESS_START[];

extern prog_char S_MODE_OPTIONS[];
extern prog_char S_OPTION_SIGNAL[];
extern prog_char S_OPTION_KEY_REPEAT[];
extern prog_char S_OPTION_TICKER_SPEED[];
extern prog_char S_OPTION_TICKER_HOLD[];
extern prog_char S_OPTION_REC_FINALIZE[];
extern const char S_MODE_OPTIONS[];
extern const char S_OPTION_SIGNAL[];
extern const char S_OPTION_KEY_REPEAT[];
extern const char S_OPTION_TICKER_SPEED[];
extern const char S_OPTION_TICKER_HOLD[];
extern const char S_OPTION_REC_FINALIZE[];

extern prog_char S_MKDIR_FAILED[];
extern prog_char S_CHDIR_FAILED[];
extern prog_char S_READ_FAILED[];
extern prog_char S_OPEN_FAILED[];
extern prog_char S_INVALID_TAP[];
extern prog_char S_LOADING[];
extern prog_char S_OPERATION_COMPLETE[];
extern prog_char S_OPERATION_ABORTED[];
extern prog_char S_TAP_MAGIC_C64[];
extern const char S_MKDIR_FAILED[];
extern const char S_CHDIR_FAILED[];
extern const char S_READ_FAILED[];
extern const char S_OPEN_FAILED[];
extern const char S_INVALID_TAP[];
extern const char S_LOADING[];
extern const char S_OPERATION_COMPLETE[];
extern const char S_OPERATION_ABORTED[];
extern const char S_TAP_MAGIC_C64[];

#endif
5 changes: 5 additions & 0 deletions menu.c
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,11 @@ void handle_mode_options() {
value = g_invert_signal;
if (handle_option_value(S_MODE_OPTIONS, S_OPTION_SIGNAL, &value, 0, 1, 1)) {
g_invert_signal = value;
if (value) {
CONTROL_SET_BUS1();
} else {
CONTROL_SET_BUS0();
}
save = 1;
}
break;
Expand Down
Loading

0 comments on commit 5eeed23

Please sign in to comment.