From 664545743c41afbe6ce2764ac0d4fecb122320b9 Mon Sep 17 00:00:00 2001 From: Marius K Date: Mon, 23 Nov 2015 02:38:04 +0100 Subject: [PATCH] Camino Version 1.3 b00005 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Schematic und Layout auf Eagle Version 7.2 migriert Einige Testprogramme für das Board geadded (Atmel Studio 7) --- Versionshistorie.odt | Bin 0 -> 9047 bytes cpp/tests/adc_test/adc_test.atsln | 20 + cpp/tests/adc_test/adc_test/adc_test.cpp | 55 + cpp/tests/adc_test/adc_test/adc_test.cppproj | 157 +++ cpp/tests/adc_test/adc_test/lcd-routines.c | 176 +++ cpp/tests/adc_test/adc_test/lcd-routines.h | 155 +++ cpp/tests/dac_test/dac_test.atsln | 20 + cpp/tests/dac_test/dac_test/dac_test.cpp | 56 + cpp/tests/dac_test/dac_test/dac_test.cppproj | 153 +++ cpp/tests/key_test/key_test.atsln | 20 + cpp/tests/key_test/key_test/key_test.cpp | 38 + cpp/tests/key_test/key_test/key_test.cppproj | 149 +++ cpp/tests/lcd_test_162c/lcd_test_162c.atsln | 20 + .../lcd_test_162c/lcd-routines.c | 176 +++ .../lcd_test_162c/lcd-routines.h | 155 +++ .../lcd_test_162c/lcd_test_162c.cpp | 36 + .../lcd_test_162c/lcd_test_162c.cppproj | 156 +++ cpp/tests/led_test/led_test.atsln | 20 + cpp/tests/led_test/led_test/led_test.cpp | 49 + cpp/tests/led_test/led_test/led_test.cppproj | 149 +++ cpp/tests/uart_test/uart_test.atsln | 20 + cpp/tests/uart_test/uart_test/lcd-routines.c | 176 +++ cpp/tests/uart_test/uart_test/lcd-routines.h | 155 +++ cpp/tests/uart_test/uart_test/uart_test.cpp | 95 ++ .../uart_test/uart_test/uart_test.cppproj | 149 +++ eagle/DESCRIPTION | 2 +- eagle/camino.brd | 1047 +++++++++++------ eagle/camino.lbr | 6 +- eagle/camino.sch | 599 ++++------ 29 files changed, 3310 insertions(+), 699 deletions(-) create mode 100644 Versionshistorie.odt create mode 100644 cpp/tests/adc_test/adc_test.atsln create mode 100644 cpp/tests/adc_test/adc_test/adc_test.cpp create mode 100644 cpp/tests/adc_test/adc_test/adc_test.cppproj create mode 100644 cpp/tests/adc_test/adc_test/lcd-routines.c create mode 100644 cpp/tests/adc_test/adc_test/lcd-routines.h create mode 100644 cpp/tests/dac_test/dac_test.atsln create mode 100644 cpp/tests/dac_test/dac_test/dac_test.cpp create mode 100644 cpp/tests/dac_test/dac_test/dac_test.cppproj create mode 100644 cpp/tests/key_test/key_test.atsln create mode 100644 cpp/tests/key_test/key_test/key_test.cpp create mode 100644 cpp/tests/key_test/key_test/key_test.cppproj create mode 100644 cpp/tests/lcd_test_162c/lcd_test_162c.atsln create mode 100644 cpp/tests/lcd_test_162c/lcd_test_162c/lcd-routines.c create mode 100644 cpp/tests/lcd_test_162c/lcd_test_162c/lcd-routines.h create mode 100644 cpp/tests/lcd_test_162c/lcd_test_162c/lcd_test_162c.cpp create mode 100644 cpp/tests/lcd_test_162c/lcd_test_162c/lcd_test_162c.cppproj create mode 100644 cpp/tests/led_test/led_test.atsln create mode 100644 cpp/tests/led_test/led_test/led_test.cpp create mode 100644 cpp/tests/led_test/led_test/led_test.cppproj create mode 100644 cpp/tests/uart_test/uart_test.atsln create mode 100644 cpp/tests/uart_test/uart_test/lcd-routines.c create mode 100644 cpp/tests/uart_test/uart_test/lcd-routines.h create mode 100644 cpp/tests/uart_test/uart_test/uart_test.cpp create mode 100644 cpp/tests/uart_test/uart_test/uart_test.cppproj diff --git a/Versionshistorie.odt b/Versionshistorie.odt new file mode 100644 index 0000000000000000000000000000000000000000..f87b9eecb6823ebf56e4654a2663a2443a8ff45d GIT binary patch literal 9047 zcmeHsc|6qJ`}f!-vZm}3A6_j&$${&>#3J~N+l&h@^obFOpFHRqhS@mUg5CIEmE066K7)wXRF zr{)I$0E7o$1aO17L9yN_C>Vu;!ysTR42b}GARI-JUmqc7h|pSSb2mQ0#v|q0mTY zG!%nz0RJ2EPxkPxbN_b~>!0i)QSK-L^k3TfCmaR~#=8Gsv=WO%!vD`(NkE~%2q^rw zR-U8k!zGXc0ECC&6EhcgHwOe52FC!g`>&!Xg!4^fLv0!=Rw}#*jjoP{DgL(t03ZTT z66S@EYRYW@fE28&p=##!V1880kPUV`U{dvkNdWQXKos%4Q%C1Lj7JO*krCv2eHj^P z7cj)KL})PPSP{*zz%bmlAU{&L7suqJh=bhrlH$DjII-VV>M?Eo=9p2yu9TngXVo4G zO)jRtzeE>odDSb9BvK!1uUlS-^Q(%B^L+Str@;L`*r@^(!$ux8vMhC zt89`8tui8^HhvL~;5v1$xpTh%D@v-vi2{dP{ZP2hWvI;MXXWj;WDvORWBs|L?u`DL z$0;Pxi9fL}Q8IM%O5?cA?lW2hqHxeUtZmFQ>>&>9N98?~zX@X9*_NeVA54VK^(V&Q zHm6_Cwlp~`Z$DnYH&=AWmUg`v{dLN}wd#3nrMDl8fo0xo-+-6Y&d!q8*5;eB>31^= zxP;{iw!TG+9n2SP-;F7oWYcdBi!K$sNZle4p^)#B>0PglJ- zFA8&B?^#%xb~+v&>pVA>Nb}*&Agpfg&e-zUnB~1YS#m8Kqq{gxB_m*F^B@VWE!$w$ z_hFlA`M_1>tibg(VW;0`d9%%>cEtC}_VexpyS*A2%Qo6$hTKK3!n)6B%`rZ!G>Vw$ zS{3{;>UbeYcV5=RtG>KD>$W?KLE}mFb~~>>bQIy<;!37E`Ze9QspY8q-3s@Vtr{eSK-UJ8OlV88#DHCS3B z`#?eWN!WF^G+=T`m<_TTjAl zCxtaUpAYSE4A0;RH0o>WcTcd7&`{k#C+t-3J{U`{DzjuXi6xz^r^|MVpQAoh*tz($ zxaP&z1<3-wZZb2CDR%LEbU4}sJYKp&m!x3luQ@9co~eL(HsJLT@|@ZCaR}}5KOC}- z#~7qb9K)p2LO+{6jgqTzt+?bC_f)6bvwM>Hqlhdj#o=e>BgrIK6?5vFX`zhiN&g8M=~Fia_uO4n4AtM8$DBVF3zeugVSwW#ZZ zgUD;UM_zVb@H%<3RXpHf8H!Z!Bh#@@(JtgN0P?$&6(W6wO9gbf*FmKIbtHLdgP)5w z$A}9+LB1ew)(7;3lJ9+?=>}?xx)Ve$98z8B~T|gbQ`LT&)`&W3G+Xyv*SG zgoUVYD|5M2s;P4>$lI%tv-R<{C$qk>pyM1zjdek8UvfznNgpRtoptCwk|UCITkvF= zAiv2J(WvEO1j}pNX6%5id1J@X8D>2U6w0R|D+Ee&m0muXWo@`!6%I)l@4vwWx}Z`> z4s#&a4}%0FvS!)NA6iugY=%h66~jt~888^0KH}UHdKqu(Cwws;F;|)mRxW~``CjCj zW2`cxGdHR3)F|j|CwG4J`jAuW{mXAE8vu5K1u?Ow08MVy$5`r+w0`%G;y$!! zDQ{}0x2rsIjmeUoD!Zr|AC?UD6We0e3v+kh19lsQ*wCh; zf+Yp~r((;6=BK`RWZ3xGYQ25W5BZ}oE_ zo#Cg~IoD%PZP3GCZu3z~`pP_?o^&LvkS$6xg{>87PmM0iU-t1hX&&o$fl4&Fu;FEV zwMl^}a~N${8Ey7-|JKwLRElFvf7PUGWBa`M@Tb9Cx@FC~7bD$HnR{5}C0Uj|k}0DR z?o1T==nNDZX!C(~oGYp+dEIK?nYS8SnoK1_cj3}M`DaF(ZG6*9mpj1A4$jDl+B1XO zDVri>@W7HP7O}i|t!hczG7s~y7*zc$<&N7VC3h4-lgc&D6}Y~3htfwx$=7{lF78(O zd)zhJkbT-hNqkFZCRo2q6)70cLuKE4i8V$=nL}yVqWUH3IuU!6GDM9_q>-Vd`Uw

PhWT=;r^z?;v?XcNEN=b~;quuky)LtTFH1*Im=4 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 literal 0 HcmV?d00001 diff --git a/cpp/tests/adc_test/adc_test.atsln b/cpp/tests/adc_test/adc_test.atsln new file mode 100644 index 0000000..4cfe6ce --- /dev/null +++ b/cpp/tests/adc_test/adc_test.atsln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Atmel Studio Solution File, Format Version 11.00 +Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "adc_test", "adc_test\adc_test.cppproj", "{B83DAF80-E747-47FD-8AD7-6DAD72B329EC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|AVR = Debug|AVR + Release|AVR = Release|AVR + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B83DAF80-E747-47FD-8AD7-6DAD72B329EC}.Debug|AVR.ActiveCfg = Debug|AVR + {B83DAF80-E747-47FD-8AD7-6DAD72B329EC}.Debug|AVR.Build.0 = Debug|AVR + {B83DAF80-E747-47FD-8AD7-6DAD72B329EC}.Release|AVR.ActiveCfg = Release|AVR + {B83DAF80-E747-47FD-8AD7-6DAD72B329EC}.Release|AVR.Build.0 = Release|AVR + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/cpp/tests/adc_test/adc_test/adc_test.cpp b/cpp/tests/adc_test/adc_test/adc_test.cpp new file mode 100644 index 0000000..02e617d --- /dev/null +++ b/cpp/tests/adc_test/adc_test/adc_test.cpp @@ -0,0 +1,55 @@ +/* + * adc_test.cpp + * + * Created: 03.06.2015 17:52:29 + * Author: Zephram + */ + +#define F_CPU 16000000 + +#include +#include +#include +#include "lcd-routines.h" +#include "lcd-routines.c" + +int main(void) +{ + ADMUX |= (1< + + + 2.0 + 7.0 + com.Atmel.AVRGCC8.CPP + {b83daf80-e747-47fd-8ad7-6dad72b329ec} + ATmega32 + none + Executable + CPP + $(MSBuildProjectName) + .elf + $(MSBuildProjectDirectory)\$(Configuration) + adc_test + adc_test + adc_test + Native + true + false + true + true + + + true + + 2 + 1 + + + + + + + + + + + + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + True + + + libm + printf_flt.a + + + Default (-Wa,-g) + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + True + + + libm + printf_flt.a + + + Default (-Wa,-g) + + + + + + compile + + + + \ No newline at end of file diff --git a/cpp/tests/adc_test/adc_test/lcd-routines.c b/cpp/tests/adc_test/adc_test/lcd-routines.c new file mode 100644 index 0000000..f8d0822 --- /dev/null +++ b/cpp/tests/adc_test/adc_test/lcd-routines.c @@ -0,0 +1,176 @@ +// Ansteuerung eines HD44780 kompatiblen LCD im 4-Bit-Interfacemodus +// http://www.mikrocontroller.net/articles/HD44780 +// http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung +// +// Die Pinbelegung ist über defines in lcd-routines.h einstellbar + +#include +#include "lcd-routines.h" +#include + +//////////////////////////////////////////////////////////////////////////////// +// Erzeugt einen Enable-Puls +static void lcd_enable( void ) +{ + LCD_PORT |= (1<>(4-LCD_DB)); // Maske löschen + LCD_PORT |= (data>>(4-LCD_DB)); // Bits setzen + lcd_enable(); +} + +//////////////////////////////////////////////////////////////////////////////// +// Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. +void lcd_init( void ) +{ + // verwendete Pins auf Ausgang schalten + uint8_t pins = (0x0F << LCD_DB) | // 4 Datenleitungen + (1< PORTC Bit PC2-PD5 +#define LCD_PORT PORTC +#define LCD_DDR DDRC +#define LCD_DB PC2 + +// LCD RS <--> PORTD Bit PD4 (RS: 1=Data, 0=Command) +#define LCD_RS PC6 + +// LCD EN <--> PORTD Bit PD5 (EN: 1-Impuls für Daten) +#define LCD_EN PC7 + +//////////////////////////////////////////////////////////////////////////////// +// LCD Ausführungszeiten (MS=Millisekunden, US=Mikrosekunden) + +#define LCD_BOOTUP_MS 15 +#define LCD_ENABLE_US 20 +#define LCD_WRITEDATA_US 46 +#define LCD_COMMAND_US 42 + +#define LCD_SOFT_RESET_MS1 5 +#define LCD_SOFT_RESET_MS2 1 +#define LCD_SOFT_RESET_MS3 1 +#define LCD_SET_4BITMODE_MS 5 + +#define LCD_CLEAR_DISPLAY_MS 2 +#define LCD_CURSOR_HOME_MS 2 + +//////////////////////////////////////////////////////////////////////////////// +// Zeilendefinitionen des verwendeten LCD +// Die Einträge hier sollten für ein LCD mit einer Zeilenlänge von 16 Zeichen passen +// Bei anderen Zeilenlängen müssen diese Einträge angepasst werden + +#define LCD_DDADR_LINE1 0x00 +#define LCD_DDADR_LINE2 0x40 +#define LCD_DDADR_LINE3 0x10 +#define LCD_DDADR_LINE4 0x50 + +//////////////////////////////////////////////////////////////////////////////// +// Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. +void lcd_init( void ); + +//////////////////////////////////////////////////////////////////////////////// +// LCD löschen +void lcd_clear( void ); + +//////////////////////////////////////////////////////////////////////////////// +// Cursor in die 1. Zeile, 0-te Spalte +void lcd_home( void ); + +//////////////////////////////////////////////////////////////////////////////// +// Cursor an eine beliebige Position +void lcd_setcursor( uint8_t spalte, uint8_t zeile ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines einzelnen Zeichens an der aktuellen Cursorposition +void lcd_data( uint8_t data ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines Strings an der aktuellen Cursorposition +void lcd_string( const char *data ); + +//////////////////////////////////////////////////////////////////////////////// +// Definition eines benutzerdefinierten Sonderzeichens. +// data muss auf ein Array[8] mit den Zeilencodes des zu definierenden Zeichens +// zeigen +void lcd_generatechar( uint8_t code, const uint8_t *data ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines Kommandos an das LCD. +void lcd_command( uint8_t data ); + + +//////////////////////////////////////////////////////////////////////////////// +// LCD Befehle und Argumente. +// Zur Verwendung in lcd_command + +// Clear Display -------------- 0b00000001 +#define LCD_CLEAR_DISPLAY 0x01 + +// Cursor Home ---------------- 0b0000001x +#define LCD_CURSOR_HOME 0x02 + +// Set Entry Mode ------------- 0b000001xx +#define LCD_SET_ENTRY 0x04 + +#define LCD_ENTRY_DECREASE 0x00 +#define LCD_ENTRY_INCREASE 0x02 +#define LCD_ENTRY_NOSHIFT 0x00 +#define LCD_ENTRY_SHIFT 0x01 + +// Set Display ---------------- 0b00001xxx +#define LCD_SET_DISPLAY 0x08 + +#define LCD_DISPLAY_OFF 0x00 +#define LCD_DISPLAY_ON 0x04 +#define LCD_CURSOR_OFF 0x00 +#define LCD_CURSOR_ON 0x02 +#define LCD_BLINKING_OFF 0x00 +#define LCD_BLINKING_ON 0x01 + +// Set Shift ------------------ 0b0001xxxx +#define LCD_SET_SHIFT 0x10 + +#define LCD_CURSOR_MOVE 0x00 +#define LCD_DISPLAY_SHIFT 0x08 +#define LCD_SHIFT_LEFT 0x00 +#define LCD_SHIFT_RIGHT 0x04 + +// Set Function --------------- 0b001xxxxx +#define LCD_SET_FUNCTION 0x20 + +#define LCD_FUNCTION_4BIT 0x00 +#define LCD_FUNCTION_8BIT 0x10 +#define LCD_FUNCTION_1LINE 0x00 +#define LCD_FUNCTION_2LINE 0x08 +#define LCD_FUNCTION_5X7 0x00 +#define LCD_FUNCTION_5X10 0x04 + +#define LCD_SOFT_RESET 0x30 + +// Set CG RAM Address --------- 0b01xxxxxx (Character Generator RAM) +#define LCD_SET_CGADR 0x40 + +#define LCD_GC_CHAR0 0 +#define LCD_GC_CHAR1 1 +#define LCD_GC_CHAR2 2 +#define LCD_GC_CHAR3 3 +#define LCD_GC_CHAR4 4 +#define LCD_GC_CHAR5 5 +#define LCD_GC_CHAR6 6 +#define LCD_GC_CHAR7 7 + +// Set DD RAM Address --------- 0b1xxxxxxx (Display Data RAM) +#define LCD_SET_DDADR 0x80 + +#endif \ No newline at end of file diff --git a/cpp/tests/dac_test/dac_test.atsln b/cpp/tests/dac_test/dac_test.atsln new file mode 100644 index 0000000..bf5aa34 --- /dev/null +++ b/cpp/tests/dac_test/dac_test.atsln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Atmel Studio Solution File, Format Version 11.00 +Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "dac_test", "dac_test\dac_test.cppproj", "{C5DD0515-9B1A-4DEB-BD66-6122614FF654}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|AVR = Debug|AVR + Release|AVR = Release|AVR + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C5DD0515-9B1A-4DEB-BD66-6122614FF654}.Debug|AVR.ActiveCfg = Debug|AVR + {C5DD0515-9B1A-4DEB-BD66-6122614FF654}.Debug|AVR.Build.0 = Debug|AVR + {C5DD0515-9B1A-4DEB-BD66-6122614FF654}.Release|AVR.ActiveCfg = Release|AVR + {C5DD0515-9B1A-4DEB-BD66-6122614FF654}.Release|AVR.Build.0 = Release|AVR + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/cpp/tests/dac_test/dac_test/dac_test.cpp b/cpp/tests/dac_test/dac_test/dac_test.cpp new file mode 100644 index 0000000..cac5c2f --- /dev/null +++ b/cpp/tests/dac_test/dac_test/dac_test.cpp @@ -0,0 +1,56 @@ +/* + * dac_test.cpp + * + * Created: 04.06.2015 15:36:50 + * Author: Zephram + */ + +#define F_CPU 16000000 + +#include +#include + +const char mode = 1; // 1 or 2 + + +int main(void) +{ + bool bState = false; + char cOut = 0; + + DDRB = 0x08; // Setup PB3 as output + + TCCR0 |= (1< + + + 2.0 + 7.0 + com.Atmel.AVRGCC8.CPP + {c5dd0515-9b1a-4deb-bd66-6122614ff654} + ATmega32 + none + Executable + CPP + $(MSBuildProjectName) + .elf + $(MSBuildProjectDirectory)\$(Configuration) + dac_test + dac_test + dac_test + Native + true + false + true + true + + + true + + 2 + 1 + + + + + + + + + + + + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + + + libm + + + Default (-Wa,-g) + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + + + libm + + + Default (-Wa,-g) + + + + + + compile + + + + \ No newline at end of file diff --git a/cpp/tests/key_test/key_test.atsln b/cpp/tests/key_test/key_test.atsln new file mode 100644 index 0000000..3e94cbf --- /dev/null +++ b/cpp/tests/key_test/key_test.atsln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Atmel Studio Solution File, Format Version 11.00 +Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "key_test", "key_test\key_test.cppproj", "{232A5721-5D45-4D4B-ACF1-BDAE39B9A23C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|AVR = Debug|AVR + Release|AVR = Release|AVR + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {232A5721-5D45-4D4B-ACF1-BDAE39B9A23C}.Debug|AVR.ActiveCfg = Debug|AVR + {232A5721-5D45-4D4B-ACF1-BDAE39B9A23C}.Debug|AVR.Build.0 = Debug|AVR + {232A5721-5D45-4D4B-ACF1-BDAE39B9A23C}.Release|AVR.ActiveCfg = Release|AVR + {232A5721-5D45-4D4B-ACF1-BDAE39B9A23C}.Release|AVR.Build.0 = Release|AVR + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/cpp/tests/key_test/key_test/key_test.cpp b/cpp/tests/key_test/key_test/key_test.cpp new file mode 100644 index 0000000..df5545b --- /dev/null +++ b/cpp/tests/key_test/key_test/key_test.cpp @@ -0,0 +1,38 @@ +/* + * pollin0.cpp + * + * Created: 19.03.2015 02:20:59 + * Author: Zephram + */ + +#define F_CPU 16000000 + +#include +#include + +const char direction = 1; // 1 or 2 + +int main(void) +{ + if(direction == 1) + { + DDRB = 0b11111111; + DDRD = 0b00000000; + } + else + { + DDRD = 0b11111111; + DDRB = 0b00000000; + } + + PORTB = 0b00000000; + PORTD = 0b00000000; + + while(1) + { + if(direction == 1) + PORTB = PIND; + else + PORTD = PINB; + } +} \ No newline at end of file diff --git a/cpp/tests/key_test/key_test/key_test.cppproj b/cpp/tests/key_test/key_test/key_test.cppproj new file mode 100644 index 0000000..ce9e30b --- /dev/null +++ b/cpp/tests/key_test/key_test/key_test.cppproj @@ -0,0 +1,149 @@ + + + + 2.0 + 7.0 + com.Atmel.AVRGCC8.CPP + {232a5721-5d45-4d4b-acf1-bdae39b9a23c} + ATmega32 + none + Executable + CPP + $(MSBuildProjectName) + .elf + $(MSBuildProjectDirectory)\$(Configuration) + key_test + key_test + key_test + Native + true + false + true + true + + + true + + 2 + 1 + + + + + + + + + + + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + NDEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize for size (-Os) + True + True + True + True + True + + + NDEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize for size (-Os) + True + True + True + + + libm + + + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + + + libm + + + Default (-Wa,-g) + + + + + + compile + + + + \ No newline at end of file diff --git a/cpp/tests/lcd_test_162c/lcd_test_162c.atsln b/cpp/tests/lcd_test_162c/lcd_test_162c.atsln new file mode 100644 index 0000000..dc8c58e --- /dev/null +++ b/cpp/tests/lcd_test_162c/lcd_test_162c.atsln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Atmel Studio Solution File, Format Version 11.00 +Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "lcd_test_162c", "lcd_test_162c\lcd_test_162c.cppproj", "{C33BE76F-8E0D-49AD-86B7-54D262397565}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|AVR = Debug|AVR + Release|AVR = Release|AVR + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C33BE76F-8E0D-49AD-86B7-54D262397565}.Debug|AVR.ActiveCfg = Debug|AVR + {C33BE76F-8E0D-49AD-86B7-54D262397565}.Debug|AVR.Build.0 = Debug|AVR + {C33BE76F-8E0D-49AD-86B7-54D262397565}.Release|AVR.ActiveCfg = Release|AVR + {C33BE76F-8E0D-49AD-86B7-54D262397565}.Release|AVR.Build.0 = Release|AVR + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/cpp/tests/lcd_test_162c/lcd_test_162c/lcd-routines.c b/cpp/tests/lcd_test_162c/lcd_test_162c/lcd-routines.c new file mode 100644 index 0000000..f8d0822 --- /dev/null +++ b/cpp/tests/lcd_test_162c/lcd_test_162c/lcd-routines.c @@ -0,0 +1,176 @@ +// Ansteuerung eines HD44780 kompatiblen LCD im 4-Bit-Interfacemodus +// http://www.mikrocontroller.net/articles/HD44780 +// http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung +// +// Die Pinbelegung ist über defines in lcd-routines.h einstellbar + +#include +#include "lcd-routines.h" +#include + +//////////////////////////////////////////////////////////////////////////////// +// Erzeugt einen Enable-Puls +static void lcd_enable( void ) +{ + LCD_PORT |= (1<>(4-LCD_DB)); // Maske löschen + LCD_PORT |= (data>>(4-LCD_DB)); // Bits setzen + lcd_enable(); +} + +//////////////////////////////////////////////////////////////////////////////// +// Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. +void lcd_init( void ) +{ + // verwendete Pins auf Ausgang schalten + uint8_t pins = (0x0F << LCD_DB) | // 4 Datenleitungen + (1< PORTC Bit PC2-PD5 +#define LCD_PORT PORTC +#define LCD_DDR DDRC +#define LCD_DB PC2 + +// LCD RS <--> PORTD Bit PD4 (RS: 1=Data, 0=Command) +#define LCD_RS PC6 + +// LCD EN <--> PORTD Bit PD5 (EN: 1-Impuls für Daten) +#define LCD_EN PC7 + +//////////////////////////////////////////////////////////////////////////////// +// LCD Ausführungszeiten (MS=Millisekunden, US=Mikrosekunden) + +#define LCD_BOOTUP_MS 15 +#define LCD_ENABLE_US 20 +#define LCD_WRITEDATA_US 46 +#define LCD_COMMAND_US 42 + +#define LCD_SOFT_RESET_MS1 5 +#define LCD_SOFT_RESET_MS2 1 +#define LCD_SOFT_RESET_MS3 1 +#define LCD_SET_4BITMODE_MS 5 + +#define LCD_CLEAR_DISPLAY_MS 2 +#define LCD_CURSOR_HOME_MS 2 + +//////////////////////////////////////////////////////////////////////////////// +// Zeilendefinitionen des verwendeten LCD +// Die Einträge hier sollten für ein LCD mit einer Zeilenlänge von 16 Zeichen passen +// Bei anderen Zeilenlängen müssen diese Einträge angepasst werden + +#define LCD_DDADR_LINE1 0x00 +#define LCD_DDADR_LINE2 0x40 +#define LCD_DDADR_LINE3 0x10 +#define LCD_DDADR_LINE4 0x50 + +//////////////////////////////////////////////////////////////////////////////// +// Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. +void lcd_init( void ); + +//////////////////////////////////////////////////////////////////////////////// +// LCD löschen +void lcd_clear( void ); + +//////////////////////////////////////////////////////////////////////////////// +// Cursor in die 1. Zeile, 0-te Spalte +void lcd_home( void ); + +//////////////////////////////////////////////////////////////////////////////// +// Cursor an eine beliebige Position +void lcd_setcursor( uint8_t spalte, uint8_t zeile ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines einzelnen Zeichens an der aktuellen Cursorposition +void lcd_data( uint8_t data ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines Strings an der aktuellen Cursorposition +void lcd_string( const char *data ); + +//////////////////////////////////////////////////////////////////////////////// +// Definition eines benutzerdefinierten Sonderzeichens. +// data muss auf ein Array[8] mit den Zeilencodes des zu definierenden Zeichens +// zeigen +void lcd_generatechar( uint8_t code, const uint8_t *data ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines Kommandos an das LCD. +void lcd_command( uint8_t data ); + + +//////////////////////////////////////////////////////////////////////////////// +// LCD Befehle und Argumente. +// Zur Verwendung in lcd_command + +// Clear Display -------------- 0b00000001 +#define LCD_CLEAR_DISPLAY 0x01 + +// Cursor Home ---------------- 0b0000001x +#define LCD_CURSOR_HOME 0x02 + +// Set Entry Mode ------------- 0b000001xx +#define LCD_SET_ENTRY 0x04 + +#define LCD_ENTRY_DECREASE 0x00 +#define LCD_ENTRY_INCREASE 0x02 +#define LCD_ENTRY_NOSHIFT 0x00 +#define LCD_ENTRY_SHIFT 0x01 + +// Set Display ---------------- 0b00001xxx +#define LCD_SET_DISPLAY 0x08 + +#define LCD_DISPLAY_OFF 0x00 +#define LCD_DISPLAY_ON 0x04 +#define LCD_CURSOR_OFF 0x00 +#define LCD_CURSOR_ON 0x02 +#define LCD_BLINKING_OFF 0x00 +#define LCD_BLINKING_ON 0x01 + +// Set Shift ------------------ 0b0001xxxx +#define LCD_SET_SHIFT 0x10 + +#define LCD_CURSOR_MOVE 0x00 +#define LCD_DISPLAY_SHIFT 0x08 +#define LCD_SHIFT_LEFT 0x00 +#define LCD_SHIFT_RIGHT 0x04 + +// Set Function --------------- 0b001xxxxx +#define LCD_SET_FUNCTION 0x20 + +#define LCD_FUNCTION_4BIT 0x00 +#define LCD_FUNCTION_8BIT 0x10 +#define LCD_FUNCTION_1LINE 0x00 +#define LCD_FUNCTION_2LINE 0x08 +#define LCD_FUNCTION_5X7 0x00 +#define LCD_FUNCTION_5X10 0x04 + +#define LCD_SOFT_RESET 0x30 + +// Set CG RAM Address --------- 0b01xxxxxx (Character Generator RAM) +#define LCD_SET_CGADR 0x40 + +#define LCD_GC_CHAR0 0 +#define LCD_GC_CHAR1 1 +#define LCD_GC_CHAR2 2 +#define LCD_GC_CHAR3 3 +#define LCD_GC_CHAR4 4 +#define LCD_GC_CHAR5 5 +#define LCD_GC_CHAR6 6 +#define LCD_GC_CHAR7 7 + +// Set DD RAM Address --------- 0b1xxxxxxx (Display Data RAM) +#define LCD_SET_DDADR 0x80 + +#endif \ No newline at end of file diff --git a/cpp/tests/lcd_test_162c/lcd_test_162c/lcd_test_162c.cpp b/cpp/tests/lcd_test_162c/lcd_test_162c/lcd_test_162c.cpp new file mode 100644 index 0000000..0f4f24e --- /dev/null +++ b/cpp/tests/lcd_test_162c/lcd_test_162c/lcd_test_162c.cpp @@ -0,0 +1,36 @@ +/* + * lcd_test_162c.cpp + * + * Created: 03.06.2015 17:52:29 + * Author: Zephram + */ + + +#include +#include "lcd-routines.h" +#include "lcd-routines.c" + +int main(void) +{ + + + lcd_init(); + + // Text in einzelnen Zeichen ausgeben + //lcd_data( 'T' ); + //lcd_data( 'e' ); + //lcd_data( 's' ); + //lcd_data( 't' ); + + // Die Ausgabemarke in die 2te Zeile setzen + lcd_setcursor( 0, 1 ); + + // erneut Text ausgeben, aber diesmal komfortabler als String + lcd_string("Hello World! :)"); + + + while(1) + { + //TODO:: Please write your application code + } +} \ No newline at end of file diff --git a/cpp/tests/lcd_test_162c/lcd_test_162c/lcd_test_162c.cppproj b/cpp/tests/lcd_test_162c/lcd_test_162c/lcd_test_162c.cppproj new file mode 100644 index 0000000..e36d377 --- /dev/null +++ b/cpp/tests/lcd_test_162c/lcd_test_162c/lcd_test_162c.cppproj @@ -0,0 +1,156 @@ + + + + 2.0 + 7.0 + com.Atmel.AVRGCC8.CPP + {c33be76f-8e0d-49ad-86b7-54d262397565} + ATmega32 + none + Executable + CPP + $(MSBuildProjectName) + .elf + $(MSBuildProjectDirectory)\$(Configuration) + lcd_test_162c + lcd_test_162c + lcd_test_162c + Native + true + false + true + true + + + true + + 2 + 1 + + + + + + + + + + + + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + + + libm + + + Default (-Wa,-g) + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + + + libm + + + Default (-Wa,-g) + + + + + + compile + + + compile + + + + \ No newline at end of file diff --git a/cpp/tests/led_test/led_test.atsln b/cpp/tests/led_test/led_test.atsln new file mode 100644 index 0000000..e6babce --- /dev/null +++ b/cpp/tests/led_test/led_test.atsln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Atmel Studio Solution File, Format Version 11.00 +Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "led_test", "led_test\led_test.cppproj", "{99947040-08C7-4CBE-ABA9-DCA04414BA87}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|AVR = Debug|AVR + Release|AVR = Release|AVR + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {99947040-08C7-4CBE-ABA9-DCA04414BA87}.Debug|AVR.ActiveCfg = Debug|AVR + {99947040-08C7-4CBE-ABA9-DCA04414BA87}.Debug|AVR.Build.0 = Debug|AVR + {99947040-08C7-4CBE-ABA9-DCA04414BA87}.Release|AVR.ActiveCfg = Release|AVR + {99947040-08C7-4CBE-ABA9-DCA04414BA87}.Release|AVR.Build.0 = Release|AVR + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/cpp/tests/led_test/led_test/led_test.cpp b/cpp/tests/led_test/led_test/led_test.cpp new file mode 100644 index 0000000..515f707 --- /dev/null +++ b/cpp/tests/led_test/led_test/led_test.cpp @@ -0,0 +1,49 @@ +/* + * pollin0.cpp + * + * Created: 19.03.2015 02:20:59 + * Author: Zephram + */ + +#define F_CPU 16000000 + +#include +#include + +int main(void) +{ + DDRC = 255; + PORTC = 255; + + + + + // PD1 ist äußere Leitung = gelb + // PD2 ist innere Leitung = grün + + DDRB = 0b11111111; + PORTB = 0b00000000; + DDRD = 0b11111111; // Board-LEDs auf Ausgabe, Drähte auf Eingabe + PORTD = 0b00000000; // Pull-Up + + volatile char counter = 0; + volatile bool forward = true; + + while(1) + { + PORTD = 0; + PORTB = 0; + + if(counter <= 7) PORTB = 1 << counter; + if(counter > 7) PORTD = 1 << (counter-8); + + if(forward)counter++; else counter--; + + if(counter == 15) forward = false; + + if(counter == 0) forward = true; + + _delay_ms(100); + + } +} \ No newline at end of file diff --git a/cpp/tests/led_test/led_test/led_test.cppproj b/cpp/tests/led_test/led_test/led_test.cppproj new file mode 100644 index 0000000..50b46d0 --- /dev/null +++ b/cpp/tests/led_test/led_test/led_test.cppproj @@ -0,0 +1,149 @@ + + + + 2.0 + 7.0 + com.Atmel.AVRGCC8.CPP + {99947040-08c7-4cbe-aba9-dca04414ba87} + ATmega32 + none + Executable + CPP + $(MSBuildProjectName) + .elf + $(MSBuildProjectDirectory)\$(Configuration) + led_test + led_test + led_test + Native + true + false + true + true + + + true + + 2 + 1 + + + + + + + + + + + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + NDEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize for size (-Os) + True + True + True + True + True + + + NDEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize for size (-Os) + True + True + True + + + libm + + + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + + + libm + + + Default (-Wa,-g) + + + + + + compile + + + + \ No newline at end of file diff --git a/cpp/tests/uart_test/uart_test.atsln b/cpp/tests/uart_test/uart_test.atsln new file mode 100644 index 0000000..fa1f063 --- /dev/null +++ b/cpp/tests/uart_test/uart_test.atsln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Atmel Studio Solution File, Format Version 11.00 +Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "uart_test", "uart_test\uart_test.cppproj", "{C3DF3B2E-061C-4878-840B-6EB0C46144AD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|AVR = Debug|AVR + Release|AVR = Release|AVR + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C3DF3B2E-061C-4878-840B-6EB0C46144AD}.Debug|AVR.ActiveCfg = Debug|AVR + {C3DF3B2E-061C-4878-840B-6EB0C46144AD}.Debug|AVR.Build.0 = Debug|AVR + {C3DF3B2E-061C-4878-840B-6EB0C46144AD}.Release|AVR.ActiveCfg = Release|AVR + {C3DF3B2E-061C-4878-840B-6EB0C46144AD}.Release|AVR.Build.0 = Release|AVR + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/cpp/tests/uart_test/uart_test/lcd-routines.c b/cpp/tests/uart_test/uart_test/lcd-routines.c new file mode 100644 index 0000000..f8d0822 --- /dev/null +++ b/cpp/tests/uart_test/uart_test/lcd-routines.c @@ -0,0 +1,176 @@ +// Ansteuerung eines HD44780 kompatiblen LCD im 4-Bit-Interfacemodus +// http://www.mikrocontroller.net/articles/HD44780 +// http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung +// +// Die Pinbelegung ist über defines in lcd-routines.h einstellbar + +#include +#include "lcd-routines.h" +#include + +//////////////////////////////////////////////////////////////////////////////// +// Erzeugt einen Enable-Puls +static void lcd_enable( void ) +{ + LCD_PORT |= (1<>(4-LCD_DB)); // Maske löschen + LCD_PORT |= (data>>(4-LCD_DB)); // Bits setzen + lcd_enable(); +} + +//////////////////////////////////////////////////////////////////////////////// +// Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. +void lcd_init( void ) +{ + // verwendete Pins auf Ausgang schalten + uint8_t pins = (0x0F << LCD_DB) | // 4 Datenleitungen + (1< PORTC Bit PC2-PD5 +#define LCD_PORT PORTC +#define LCD_DDR DDRC +#define LCD_DB PC2 + +// LCD RS <--> PORTD Bit PD4 (RS: 1=Data, 0=Command) +#define LCD_RS PC6 + +// LCD EN <--> PORTD Bit PD5 (EN: 1-Impuls für Daten) +#define LCD_EN PC7 + +//////////////////////////////////////////////////////////////////////////////// +// LCD Ausführungszeiten (MS=Millisekunden, US=Mikrosekunden) + +#define LCD_BOOTUP_MS 15 +#define LCD_ENABLE_US 20 +#define LCD_WRITEDATA_US 46 +#define LCD_COMMAND_US 42 + +#define LCD_SOFT_RESET_MS1 5 +#define LCD_SOFT_RESET_MS2 1 +#define LCD_SOFT_RESET_MS3 1 +#define LCD_SET_4BITMODE_MS 5 + +#define LCD_CLEAR_DISPLAY_MS 2 +#define LCD_CURSOR_HOME_MS 2 + +//////////////////////////////////////////////////////////////////////////////// +// Zeilendefinitionen des verwendeten LCD +// Die Einträge hier sollten für ein LCD mit einer Zeilenlänge von 16 Zeichen passen +// Bei anderen Zeilenlängen müssen diese Einträge angepasst werden + +#define LCD_DDADR_LINE1 0x00 +#define LCD_DDADR_LINE2 0x40 +#define LCD_DDADR_LINE3 0x10 +#define LCD_DDADR_LINE4 0x50 + +//////////////////////////////////////////////////////////////////////////////// +// Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. +void lcd_init( void ); + +//////////////////////////////////////////////////////////////////////////////// +// LCD löschen +void lcd_clear( void ); + +//////////////////////////////////////////////////////////////////////////////// +// Cursor in die 1. Zeile, 0-te Spalte +void lcd_home( void ); + +//////////////////////////////////////////////////////////////////////////////// +// Cursor an eine beliebige Position +void lcd_setcursor( uint8_t spalte, uint8_t zeile ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines einzelnen Zeichens an der aktuellen Cursorposition +void lcd_data( uint8_t data ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines Strings an der aktuellen Cursorposition +void lcd_string( const char *data ); + +//////////////////////////////////////////////////////////////////////////////// +// Definition eines benutzerdefinierten Sonderzeichens. +// data muss auf ein Array[8] mit den Zeilencodes des zu definierenden Zeichens +// zeigen +void lcd_generatechar( uint8_t code, const uint8_t *data ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines Kommandos an das LCD. +void lcd_command( uint8_t data ); + + +//////////////////////////////////////////////////////////////////////////////// +// LCD Befehle und Argumente. +// Zur Verwendung in lcd_command + +// Clear Display -------------- 0b00000001 +#define LCD_CLEAR_DISPLAY 0x01 + +// Cursor Home ---------------- 0b0000001x +#define LCD_CURSOR_HOME 0x02 + +// Set Entry Mode ------------- 0b000001xx +#define LCD_SET_ENTRY 0x04 + +#define LCD_ENTRY_DECREASE 0x00 +#define LCD_ENTRY_INCREASE 0x02 +#define LCD_ENTRY_NOSHIFT 0x00 +#define LCD_ENTRY_SHIFT 0x01 + +// Set Display ---------------- 0b00001xxx +#define LCD_SET_DISPLAY 0x08 + +#define LCD_DISPLAY_OFF 0x00 +#define LCD_DISPLAY_ON 0x04 +#define LCD_CURSOR_OFF 0x00 +#define LCD_CURSOR_ON 0x02 +#define LCD_BLINKING_OFF 0x00 +#define LCD_BLINKING_ON 0x01 + +// Set Shift ------------------ 0b0001xxxx +#define LCD_SET_SHIFT 0x10 + +#define LCD_CURSOR_MOVE 0x00 +#define LCD_DISPLAY_SHIFT 0x08 +#define LCD_SHIFT_LEFT 0x00 +#define LCD_SHIFT_RIGHT 0x04 + +// Set Function --------------- 0b001xxxxx +#define LCD_SET_FUNCTION 0x20 + +#define LCD_FUNCTION_4BIT 0x00 +#define LCD_FUNCTION_8BIT 0x10 +#define LCD_FUNCTION_1LINE 0x00 +#define LCD_FUNCTION_2LINE 0x08 +#define LCD_FUNCTION_5X7 0x00 +#define LCD_FUNCTION_5X10 0x04 + +#define LCD_SOFT_RESET 0x30 + +// Set CG RAM Address --------- 0b01xxxxxx (Character Generator RAM) +#define LCD_SET_CGADR 0x40 + +#define LCD_GC_CHAR0 0 +#define LCD_GC_CHAR1 1 +#define LCD_GC_CHAR2 2 +#define LCD_GC_CHAR3 3 +#define LCD_GC_CHAR4 4 +#define LCD_GC_CHAR5 5 +#define LCD_GC_CHAR6 6 +#define LCD_GC_CHAR7 7 + +// Set DD RAM Address --------- 0b1xxxxxxx (Display Data RAM) +#define LCD_SET_DDADR 0x80 + +#endif \ No newline at end of file diff --git a/cpp/tests/uart_test/uart_test/uart_test.cpp b/cpp/tests/uart_test/uart_test/uart_test.cpp new file mode 100644 index 0000000..20ebe88 --- /dev/null +++ b/cpp/tests/uart_test/uart_test/uart_test.cpp @@ -0,0 +1,95 @@ +/* + * uart_test.cpp + * + * Created: 04.06.2015 19:47:58 + * Author: Zephram + */ + +#define F_CPU 16000000UL +#define BAUD 9600 +#include + +#include +#include + +#include "lcd-routines.h" +#include "lcd-routines.c" + +//This function is used to read the available data +//from USART. This function will wait untill data is +//available. +char USARTReadChar() +{ + //Wait untill a data is available + + while(!(UCSRA & (1< + + + 2.0 + 7.0 + com.Atmel.AVRGCC8.CPP + {c3df3b2e-061c-4878-840b-6eb0c46144ad} + ATmega32 + none + Executable + CPP + $(MSBuildProjectName) + .elf + $(MSBuildProjectDirectory)\$(Configuration) + uart_test + uart_test + uart_test + Native + true + false + true + true + + + true + + 2 + 1 + + + + + + + + + + + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + NDEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize for size (-Os) + True + True + True + True + True + + + NDEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize for size (-Os) + True + True + True + + + libm + + + + + + + + + -mmcu=atmega32 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega32" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include + + + Optimize (-O1) + True + True + Default (-g2) + True + + + libm + + + Default (-Wa,-g) + + + + + + compile + + + + \ No newline at end of file diff --git a/eagle/DESCRIPTION b/eagle/DESCRIPTION index 6c84628..47af1f1 100644 --- a/eagle/DESCRIPTION +++ b/eagle/DESCRIPTION @@ -1 +1 @@ -Camino \ No newline at end of file +Camino (Eagle 7.2) diff --git a/eagle/camino.brd b/eagle/camino.brd index 9e33938..12dae82 100644 --- a/eagle/camino.brd +++ b/eagle/camino.brd @@ -1,6 +1,6 @@ - + @@ -38,28 +38,28 @@ - - - - - - - - + + + + + + + + - + - - - - - - - - + + + + + + + + - - + + @@ -80,25 +80,15 @@ - - - - - - - - - - - - - - + + + + - - + + - + @@ -134,6 +124,19 @@ 6|2 7|3 GND + + + + + + + + + + + + + @@ -378,29 +381,6 @@ chip - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - @@ -615,47 +595,6 @@ grid 5.08 mm, diameter 10.5 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME - - - - ->VALUE - - - - - - - <b>POTENTIOMETER</b><p> Spectrol @@ -1645,65 +1584,69 @@ Source: http://www.maxim-ic.com/cgi-bin/packages?pkg=16%2FSOIC%2E300&Type=Ma >NAME >VALUE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME + + + + +>VALUE + + + + + + @@ -1716,7 +1659,7 @@ Source: http://www.maxim-ic.com/cgi-bin/packages?pkg=16%2FSOIC%2E300&Type=Ma - + <b>EAGLE Design Rules für Camino v1.3</b> <p> Die Standard-Design-Rules sind so gewählt, dass sie für @@ -1802,6 +1745,9 @@ design rules under a new name. + + + @@ -1913,10 +1859,6 @@ design rules under a new name. - - - - @@ -2099,19 +2041,17 @@ design rules under a new name. - - + - @@ -2132,7 +2072,7 @@ design rules under a new name. - + @@ -2162,7 +2102,7 @@ design rules under a new name. - + @@ -2178,7 +2118,7 @@ design rules under a new name. - + @@ -2256,7 +2196,12 @@ design rules under a new name. - + + + + + + @@ -2265,9 +2210,6 @@ design rules under a new name. - - - @@ -2635,9 +2577,8 @@ design rules under a new name. - - + @@ -2652,7 +2593,6 @@ design rules under a new name. - @@ -2698,11 +2638,10 @@ design rules under a new name. - - + @@ -2723,7 +2662,7 @@ design rules under a new name. - + @@ -2774,6 +2713,15 @@ design rules under a new name. + + + + + + + + + @@ -2781,9 +2729,6 @@ design rules under a new name. - - - @@ -2852,8 +2797,6 @@ design rules under a new name. - - @@ -2867,7 +2810,6 @@ design rules under a new name. - @@ -2903,7 +2845,6 @@ design rules under a new name. - @@ -3367,14 +3308,13 @@ design rules under a new name. - - - + + @@ -3416,7 +3356,6 @@ design rules under a new name. - @@ -3439,7 +3378,6 @@ design rules under a new name. - @@ -3449,7 +3387,6 @@ design rules under a new name. - @@ -3492,7 +3429,6 @@ design rules under a new name. - @@ -3592,32 +3528,29 @@ design rules under a new name. - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - @@ -3661,7 +3594,6 @@ design rules under a new name. - @@ -3679,8 +3611,6 @@ design rules under a new name. - - @@ -3693,6 +3623,9 @@ design rules under a new name. + + + @@ -3816,7 +3749,6 @@ design rules under a new name. - @@ -3864,7 +3796,6 @@ design rules under a new name. - @@ -3876,10 +3807,11 @@ design rules under a new name. + + - @@ -3887,7 +3819,6 @@ design rules under a new name. - @@ -3919,10 +3850,12 @@ design rules under a new name. + + + - @@ -3950,16 +3883,16 @@ design rules under a new name. - + + - @@ -3972,8 +3905,7 @@ design rules under a new name. - - + @@ -3998,10 +3930,11 @@ design rules under a new name. + + - @@ -4017,7 +3950,6 @@ design rules under a new name. - @@ -4032,10 +3964,12 @@ design rules under a new name. + + + - @@ -4065,7 +3999,6 @@ design rules under a new name. - @@ -4093,10 +4026,11 @@ design rules under a new name. + + - @@ -4126,7 +4060,6 @@ design rules under a new name. - @@ -4150,10 +4083,11 @@ design rules under a new name. + + - @@ -4166,7 +4100,6 @@ design rules under a new name. - @@ -4195,7 +4128,7 @@ design rules under a new name. - + @@ -4208,10 +4141,12 @@ design rules under a new name. + + + - @@ -4237,11 +4172,11 @@ design rules under a new name. - + + - @@ -4267,11 +4202,11 @@ design rules under a new name. - + + - @@ -4284,14 +4219,14 @@ design rules under a new name. - + + - @@ -4303,13 +4238,13 @@ design rules under a new name. - + + - @@ -4364,11 +4299,12 @@ design rules under a new name. + + - + - @@ -4440,10 +4376,10 @@ design rules under a new name. + - @@ -4493,15 +4429,15 @@ design rules under a new name. - + + - @@ -4514,7 +4450,6 @@ design rules under a new name. - @@ -4595,9 +4530,10 @@ design rules under a new name. + + - @@ -4638,7 +4574,6 @@ design rules under a new name. - @@ -4646,9 +4581,10 @@ design rules under a new name. + + - @@ -4691,11 +4627,11 @@ design rules under a new name. - + + - @@ -4707,16 +4643,16 @@ design rules under a new name. - - - - - - - + + + + + + + + - @@ -4729,16 +4665,17 @@ design rules under a new name. - - - + + + + + - @@ -4756,16 +4693,16 @@ design rules under a new name. - - - - + + + + + - @@ -4784,12 +4721,12 @@ design rules under a new name. - - - + + + + - @@ -4818,16 +4755,15 @@ design rules under a new name. - - - - + + + + - @@ -4848,14 +4784,14 @@ design rules under a new name. - - + + + - @@ -4879,15 +4815,15 @@ design rules under a new name. - - - - + + + + + - @@ -4907,13 +4843,14 @@ design rules under a new name. - - + + + @@ -6333,24 +6270,23 @@ design rules under a new name. - - + + - - + + - @@ -6358,14 +6294,13 @@ design rules under a new name. - + + - - @@ -6373,11 +6308,11 @@ design rules under a new name. + + - - @@ -6387,6 +6322,8 @@ design rules under a new name. + + @@ -6546,7 +6483,6 @@ design rules under a new name. - @@ -6577,11 +6513,11 @@ design rules under a new name. - + + - @@ -6621,12 +6557,14 @@ design rules under a new name. - - + + + + + - @@ -6665,11 +6603,11 @@ design rules under a new name. - + + - @@ -6708,10 +6646,10 @@ design rules under a new name. - + + - @@ -6721,7 +6659,6 @@ design rules under a new name. - @@ -6731,12 +6668,12 @@ design rules under a new name. + + - - @@ -6755,6 +6692,8 @@ design rules under a new name. + + @@ -6803,7 +6742,6 @@ design rules under a new name. - @@ -6822,18 +6760,17 @@ design rules under a new name. - + + - - @@ -6842,9 +6779,10 @@ design rules under a new name. + + - @@ -6861,11 +6799,12 @@ design rules under a new name. + + - + - @@ -6876,16 +6815,16 @@ design rules under a new name. - + + - @@ -6899,8 +6838,6 @@ design rules under a new name. - - @@ -6908,9 +6845,11 @@ design rules under a new name. + + + - @@ -6921,7 +6860,6 @@ design rules under a new name. - @@ -6931,11 +6869,12 @@ design rules under a new name. + + - @@ -6949,9 +6888,10 @@ design rules under a new name. - + + @@ -7378,7 +7318,6 @@ design rules under a new name. - @@ -7387,7 +7326,6 @@ design rules under a new name. - @@ -7412,6 +7350,8 @@ design rules under a new name. + + @@ -7612,7 +7552,6 @@ design rules under a new name. - @@ -7674,7 +7613,6 @@ design rules under a new name. - @@ -7704,6 +7642,8 @@ design rules under a new name. + + @@ -7917,10 +7857,435 @@ design rules under a new name. - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eagle/camino.lbr b/eagle/camino.lbr index 6025314..0e86f5d 100644 --- a/eagle/camino.lbr +++ b/eagle/camino.lbr @@ -1,12 +1,12 @@ - + - + @@ -3192,7 +3192,7 @@ small >VALUE - + diff --git a/eagle/camino.sch b/eagle/camino.sch index 5f29f23..cf6b143 100644 --- a/eagle/camino.sch +++ b/eagle/camino.sch @@ -1,6 +1,6 @@ - + @@ -1072,47 +1072,6 @@ chip - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME - - - - ->VALUE - - - - - - - <b>POTENTIOMETER</b><p> Spectrol @@ -1941,47 +1900,6 @@ small - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME - - - - ->VALUE - - - - - @@ -2130,65 +2048,87 @@ Source: http://www.maxim-ic.com/cgi-bin/packages?pkg=16%2FSOIC%2E300&Type=Ma >NAME >VALUE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME + + + + +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME + + + + +>VALUE + + + + + + @@ -2569,22 +2509,6 @@ Source: http://www.maxim-ic.com/cgi-bin/packages?pkg=16%2FSOIC%2E300&Type=Ma - - - - - - - - - - - - - ->NAME ->VALUE - @@ -2623,23 +2547,6 @@ Source: http://www.maxim-ic.com/cgi-bin/packages?pkg=16%2FSOIC%2E300&Type=Ma TxD GND - - - - - - - - - - - - - - ->NAME - - @@ -2658,7 +2565,7 @@ Source: http://www.maxim-ic.com/cgi-bin/packages?pkg=16%2FSOIC%2E300&Type=Ma - + @@ -2879,26 +2786,38 @@ Source: http://www.maxim-ic.com/cgi-bin/packages?pkg=16%2FSOIC%2E300&Type=Ma >NAME >VALUE - - - - - - - - - - - - - - - - - - ->NAME ->VALUE + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + +>NAME + @@ -3557,28 +3476,6 @@ grid 3 x 5 mm - - - - - - - - - - - - - - - - - - - - - - <b>SUB-D</b> @@ -3609,48 +3506,6 @@ grid 3 x 5 mm - -LCD/OLED Dot-Matrix-Modul 2x16 Zeichen Reichelt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3924,26 +3779,63 @@ grid 3 x 5 mm - + + + + + + + + + + + + + + + + + + + + + + + +LCD/OLED Dot-Matrix-Modul 2x16 Zeichen Reichelt - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3987,10 +3879,6 @@ grid 3 x 5 mm - - - - @@ -4251,20 +4139,18 @@ grid 3 x 5 mm - - + - @@ -4292,7 +4178,7 @@ grid 3 x 5 mm - + @@ -4307,7 +4193,7 @@ grid 3 x 5 mm - + @@ -4323,7 +4209,7 @@ grid 3 x 5 mm - + @@ -4424,7 +4310,12 @@ grid 3 x 5 mm - + + + + + + @@ -4458,10 +4349,6 @@ grid 3 x 5 mm - - - - @@ -4722,7 +4609,6 @@ grid 3 x 5 mm - @@ -4735,7 +4621,6 @@ grid 3 x 5 mm - @@ -4895,7 +4780,12 @@ grid 3 x 5 mm - + + + + + + @@ -4926,19 +4816,19 @@ grid 3 x 5 mm - + - + - + @@ -5325,10 +5215,6 @@ grid 3 x 5 mm - - - - @@ -5402,13 +5288,13 @@ grid 3 x 5 mm - + @@ -5553,9 +5439,9 @@ grid 3 x 5 mm - + @@ -5625,6 +5511,10 @@ grid 3 x 5 mm + + + + @@ -5663,8 +5553,8 @@ grid 3 x 5 mm - + @@ -5692,19 +5582,19 @@ grid 3 x 5 mm - + - + - + @@ -6081,7 +5971,6 @@ grid 3 x 5 mm - @@ -6095,12 +5984,12 @@ grid 3 x 5 mm + - @@ -6110,12 +5999,12 @@ grid 3 x 5 mm + - @@ -6125,12 +6014,12 @@ grid 3 x 5 mm + - @@ -6140,12 +6029,12 @@ grid 3 x 5 mm + - @@ -6155,12 +6044,12 @@ grid 3 x 5 mm + - @@ -6174,12 +6063,12 @@ grid 3 x 5 mm + - @@ -6193,12 +6082,12 @@ grid 3 x 5 mm + - @@ -6212,32 +6101,33 @@ grid 3 x 5 mm + - + - + @@ -6245,8 +6135,8 @@ grid 3 x 5 mm - + @@ -6254,14 +6144,13 @@ grid 3 x 5 mm - + - @@ -6277,12 +6166,12 @@ grid 3 x 5 mm + - @@ -6298,12 +6187,12 @@ grid 3 x 5 mm + - @@ -6319,6 +6208,7 @@ grid 3 x 5 mm + @@ -6328,7 +6218,6 @@ grid 3 x 5 mm - @@ -6344,6 +6233,7 @@ grid 3 x 5 mm + @@ -6351,7 +6241,6 @@ grid 3 x 5 mm - @@ -6361,6 +6250,7 @@ grid 3 x 5 mm + @@ -6368,7 +6258,6 @@ grid 3 x 5 mm - @@ -6378,42 +6267,43 @@ grid 3 x 5 mm + - + - + - + - + @@ -6421,12 +6311,12 @@ grid 3 x 5 mm - + @@ -6434,12 +6324,12 @@ grid 3 x 5 mm - + @@ -6447,12 +6337,12 @@ grid 3 x 5 mm - + @@ -6460,12 +6350,12 @@ grid 3 x 5 mm - + @@ -7419,38 +7309,38 @@ grid 3 x 5 mm - + - + - + - + - + @@ -7531,7 +7421,6 @@ grid 3 x 5 mm - @@ -7539,6 +7428,7 @@ grid 3 x 5 mm + @@ -7548,7 +7438,6 @@ grid 3 x 5 mm - @@ -7556,6 +7445,7 @@ grid 3 x 5 mm + @@ -7565,7 +7455,6 @@ grid 3 x 5 mm - @@ -7573,12 +7462,12 @@ grid 3 x 5 mm + - @@ -7590,11 +7479,11 @@ grid 3 x 5 mm + - @@ -7603,11 +7492,11 @@ grid 3 x 5 mm + - @@ -7616,6 +7505,7 @@ grid 3 x 5 mm + @@ -7641,59 +7531,58 @@ grid 3 x 5 mm - + - + - + - + - + - @@ -7705,6 +7594,7 @@ grid 3 x 5 mm + @@ -7715,10 +7605,10 @@ grid 3 x 5 mm - + @@ -8026,7 +7916,6 @@ grid 3 x 5 mm - @@ -8036,6 +7925,7 @@ grid 3 x 5 mm + @@ -8127,7 +8017,6 @@ grid 3 x 5 mm - @@ -8149,6 +8038,7 @@ grid 3 x 5 mm + @@ -8332,11 +8222,12 @@ grid 3 x 5 mm + + -