====== Encoder Tables in C Applications ======
===== makefile =====
Add the "-DDONT_INCLUDE_MIOS_ENC_TABLE" define:
# pass parameters to MIOS wrapper
MIOS_WRAPPER_DEFINES = -DSTACK_HEAD=0x37f -DSTACK_IRQ_HEAD=0x33f \
-DDONT_INCLUDE_MIOS_ENC_TABLE
===== main.c =====
Add your table as such:
/////////////////////////////////////////////////////////////////////////////
// Application specific encoder table
// the default (dummy) table has been disabled via -DDONT_INCLUDE_MIOS_ENC_TABLE
/////////////////////////////////////////////////////////////////////////////
MIOS_ENC_TABLE {
// sr pin mode
MIOS_ENC_ENTRY(1, 0, MIOS_ENC_MODE_DETENTED2),
MIOS_ENC_EOT
};
===== Reference =====
Taken from mios wrapper
;; ---[ configuration table for rotary encoders ]---
#ifndef DONT_INCLUDE_MIOS_ENC_TABLE
;; dummy table located in $MIOS_PATH/include/asm
;; If the application should use ENC entries,
;; just add "-DDONT_INCLUDE_MIOS_ENC_TABLE" to MIOS_WRAPPER_DEFINES
;; and build the table within the C program with:
;;
;; MIOS_ENC_TABLE {
;; // sr pin mode
;; MIOS_ENC_ENTRY(1, 0, MIOS_ENC_MODE_DETENTED), // VPot #1
;; MIOS_ENC_ENTRY(1, 2, MIOS_ENC_MODE_DETENTED), // VPot #2
;; MIOS_ENC_ENTRY(1, 4, MIOS_ENC_MODE_DETENTED), // VPot #3
;; MIOS_ENC_EOT
;; };
;;
;; The MIOS_MT_* macros are defined in $MIOS_PATH/include/c/cmios.h
#include
#endif
Check out the clockbox app for a real world example.
Enjoy!