---------------------------------------------------------------------
#include <string.h>
#include <stdio.h>
#include <stdarg.h>

---------------------------------------------------------------------
extern volatile uint8_t measurement_done_touch;

#define SYS_CONSOLE_PRINT_BUFFER_SIZE   200
static char consolePrintBuffer[SYS_CONSOLE_PRINT_BUFFER_SIZE];

void myprintf(const char *format, ...)
{
    size_t len = 0;
    va_list args = {0};

    va_start(args, format);
    len = vsnprintf(consolePrintBuffer, SYS_CONSOLE_PRINT_BUFFER_SIZE, format, args);
    va_end(args);

    if ((len > 0) && (len < SYS_CONSOLE_PRINT_BUFFER_SIZE))
    {
        consolePrintBuffer[len] = '\0';
        SERCOM5_USART_Write((uint8_t*)consolePrintBuffer, len);
        while (SERCOM5_USART_WriteIsBusy());
    }
}

---------------------------------------------------------------------
    myprintf("\033[2J");
    myprintf("\033[1;1H");
    myprintf("\033[?25l");
    myprintf("------------------\r\n");
    myprintf("  Touch Slider\r\n");
    myprintf("------------------\r\n");
    myprintf("__________________");

---------------------------------------------------------------------
    uint16_t ScrollPos;

---------------------------------------------------------------------
        touch_process();

        if( measurement_done_touch==1 && get_scroller_state(0) )
        {
            measurement_done_touch = 0;
            ScrollPos = get_scroller_position(0);

            myprintf("\033[4;1H");
            myprintf("__________________");
            myprintf("\033[4;%dH", (ScrollPos*17/255)+1);
            myprintf("O");
            myprintf("\033[5;1H");
            myprintf("Slider Pos = %03d", ScrollPos);

            switch( ScrollPos*4/255 )
            {
            case 0: LED1_Set();   LED2_Clear(); LED3_Clear(); break;
            case 1: LED1_Set();   LED2_Set();   LED3_Clear(); break;
            case 2: LED1_Clear(); LED2_Set();   LED3_Clear(); break;
            case 3: LED1_Clear(); LED2_Set();   LED3_Set();   break;
            case 4: LED1_Clear(); LED2_Clear(); LED3_Set();   break;
            }
        }

---------------------------------------------------------------------
        if(BT1_Get()==0)
        {
            while(BT1_Get()==0);
            calibrate_node(0);
            calibrate_node(1);
            calibrate_node(2);
        }

---------------------------------------------------------------------
