| /trunk/libraries/deuligne/demo/deuligne__demo.c |
|---|
| 37,6 → 37,19 |
| #include <stdio.h> |
| /****************************************************************************** |
| * Private constant definitions. |
| ******************************************************************************/ |
| static const char* strings[] = |
| { |
| [DEULIGNE__KEY__RIGHT] = "Right Key OK ", |
| [DEULIGNE__KEY__UP] = "Up Key OK ", |
| [DEULIGNE__KEY__DOWN] = "Down Key OK ", |
| [DEULIGNE__KEY__LEFT] = "Left Key OK ", |
| [DEULIGNE__KEY__SELECT] = "Select Key OK" |
| }; |
| /****************************************************************************** |
| * Public function definitions. |
| ******************************************************************************/ |
| 60,44 → 73,27 |
| // Switch on backlight. |
| deuligne__switch_on_backlight(); |
| // Say "Hello world!" |
| deuligne__write_string("Hello world!"); |
| deuligne__set_cursor_position(DEULIGNE__DISPLAY_LINE_1, 5); |
| deuligne__write_string("Setup"); |
| deuligne__set_cursor_position(DEULIGNE__DISPLAY_LINE_2, 7); |
| deuligne__write_string("ok"); |
| _delay_ms(2000); |
| deuligne__clear_display(); |
| deuligne__write_string("Move Joystick"); |
| // Infinite loop. |
| for(;;) |
| { |
| // Set cursor position. |
| deuligne__set_cursor_position(DEULIGNE__DISPLAY_LINE_2, 0); |
| // Get key. |
| deuligne__key_t key = deuligne__get_key(); |
| // Display key. |
| switch (key) |
| if (key != DEULIGNE__KEY__NONE) |
| { |
| case DEULIGNE__KEY__UP: |
| deuligne__write_string("Up "); |
| break; |
| // Set cursor position. |
| deuligne__set_cursor_position(DEULIGNE__DISPLAY_LINE_2, 0); |
| case DEULIGNE__KEY__DOWN: |
| deuligne__write_string("Down "); |
| break; |
| case DEULIGNE__KEY__LEFT: |
| deuligne__write_string("Left "); |
| break; |
| case DEULIGNE__KEY__RIGHT: |
| deuligne__write_string("Right "); |
| break; |
| case DEULIGNE__KEY__SELECT: |
| deuligne__write_string("Select"); |
| break; |
| case DEULIGNE__KEY__NONE: |
| deuligne__write_string("None "); |
| break; |
| // Write string. |
| deuligne__write_string(strings[key]); |
| } |
| _delay_ms(250); |
| /trunk/libraries/deuligne/demo/SConscript |
|---|
| 0,0 → 1,26 |
| # Import environment set for target. |
| Import('env_target') |
| # Set target name. |
| TARGET = 'deuligne__demo' |
| # Set libraries to use. |
| libraries = [ |
| 'deuligne', |
| 'mcp23008', |
| 'adc', |
| 'twi' |
| ] |
| # Set source file. |
| sources = [ |
| 'deuligne__demo.c' |
| ] |
| # Build project and libraries. |
| env_target.BuildProject(sources, TARGET) |
| # Compute memory usage. |
| env_target.ComputeMemoryUsage(TARGET) |
| /trunk/libraries/deuligne/min_env/env_target.py |
|---|
| 0,0 → 1,27 |
| # Create and initialize the environment. |
| env_target = Environment() |
| # Set environment for AVR-GCC. |
| env_target['CC'] = 'avr-gcc' |
| env_target['CPPPATH'] = '/usr/lib/avr/include' |
| env_target['OBJCOPY'] = 'avr-objcopy' |
| env_target['SIZE'] = 'avr-size' |
| env_target['AR'] = 'avr-ar' |
| env_target['RANLIB'] = 'avr-ranlib' |
| env_target.Append(CCFLAGS = '-Os') |
| # Define environment name. |
| env_target.Append(NAME = 'env_target') |
| # Microcontroller type. |
| env_target.Append(MCU = 'atmega328p') |
| # Microcontroller frequency in Hertz. |
| env_target.Append(F_CPU = '16000000UL') |
| # Set environment for an Atmel AVR ATmega328p microcontroller. |
| env_target.Append(CCFLAGS = '-mmcu=' + env_target['MCU']) |
| env_target.Append(LINKFLAGS = '-mmcu=' + env_target['MCU']) |
| env_target.Append(CPPDEFINES = 'F_CPU=' + env_target['F_CPU']) |
| # Export environment set for target. |
| Export('env_target') |
| /trunk/libraries/deuligne/min_env/build_tools.py |
|---|
| 0,0 → 1,41 |
| """ |
| Build project. |
| """ |
| def BuildProject(env, sources, target_name): |
| # Build program. |
| env.Program(target = target_name + '.elf', source = sources) |
| # Create hex binary file. |
| env.Command( |
| target_name + '.hex', |
| target_name + '.elf', |
| env['OBJCOPY'] + ' -O ihex $SOURCE $TARGET' |
| ) |
| AddMethod(Environment, BuildProject) |
| """ |
| Build library. |
| """ |
| def BuildLibrary(env, sources, target_name): |
| # Build static library. |
| env.StaticLibrary(target = target_name, source = sources) |
| # Append LIBPATH and LIBS. |
| env.Append(LIBPATH = [ '#build/libraries/' + target_name + '/' + env['NAME'] ]) |
| env.Append(LIBS = [ target_name ]) |
| AddMethod(Environment, BuildLibrary) |
| """ |
| Compute memory usage. |
| """ |
| def ComputeMemoryUsage(env, target_name): |
| # Compute memory usage. |
| env.Command( |
| None, |
| target_name + '.elf', |
| env['SIZE'] + ' -C --mcu=' + env['MCU'] + ' $SOURCE' |
| ) |
| AddMethod(Environment, ComputeMemoryUsage) |