xmpl_hif.c - Using the Host Interface Functions

Host Interface Library Example

/* $Id: pgXmplHif.html,v 1.1.1.1 2010/01/21 21:36:58 awachtler Exp $ */
/* Example for use of the HIF functions */

#include "board.h"
#include "hif.h"
#include "xmpl.h"

#define PROMPT() PRINTF("\n\ruracoli[%02d]> ",lc++)

int main(void)
{
 uint16_t inchar;
 uint16_t br = 9600;
 uint8_t lc = 0;
 uint8_t msg[] = { 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x20,
                   0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77,
                   0x6f, 0x72, 0x6c, 0x64, 0x20, 0x6f, 0x66, 0x20,
                   0xb5, 0x72, 0x61, 0x63, 0x6f, 0x6c, 0x69, 0x21,
                   '\n','\r',0x00};

    /* setting up UART and adjusting the baudrate */
    hif_init(br);
    LED_INIT();
    sei();
#if HIF_TYPE == HIF_AT90USB
    /*
     * Wait for terminal user pressing a key so there is time to
     * attach a terminal emulator after the virtual serial port has
     * been established within the host OS.
     */
    do
    {
        inchar = hif_getc();
    }
    while (inchar >= 0x100);
#endif

    /* using the basic hif_xxx functions */
    hif_printf(FLASH_STRING("\n\rHIF Example : %s : %d bit/s\n\r"),BOARD_NAME,br);
    hif_echo(FLASH_STRING("$Revision: 1.1.1.1 $\n\r"));

    /* this macro is equivalent to hif_printf(FLASH_STRING(...),...) */
    PRINTF("File: %s:%d\n\r",__FILE__,__LINE__);

    /* this function outputs an array transparently  */
    hif_put_blk (msg, sizeof(msg));

    /* there is also an optimized hexdump function for byte arrays */
    DUMP(sizeof(msg),msg);

    /* starting the main loop, prompting and counting the line numbers */
    PROMPT();
    while(1)
    {
        inchar = hif_getc();
        if (inchar < 0x100)
        {
            if (inchar == '\r' || inchar == '\n')
            {
                PROMPT();
            }
            else
            {
                hif_putc(inchar);
            }
        }
    }
}
/* EOF */

Application Description
The programm dumps at first a view text lines to the host interface, then waiting for input data. All characters received are echoed, except for '\n' and '\r' which where treated as line break, printing out a prompt with the current line number in square brackets.

This is an example screenshot of the terminal window, with the output of tree command, redirected to the HIF.

scrn_xmpl_hif.png

Screenshot of terminal window.


This documentation for µracoli was generated on 21 Jan 2010 by  doxygen 1.5.5