Ejemplo n.º 1
0
void cdc_task(void)
{
    if(Is_device_enumerated()) //Enumeration processs OK ?
    {
        if(cpt_sof>=NB_MS_BEFORE_FLUSH && tx_counter!=0 )  //Flush buffer in Timeout
        {
            cpt_sof=0;
            uart_usb_flush();
        }

        if ( waiting_to_start && uart_usb_test_hit())   // Something received from the USB ?
        {
            waiting_to_start = 0;
            timer_init();
            adc_init();
        }

        if( !waiting_to_start )
        {
            READING r;
            if( cb_pop( &r ) )
            {
                uart_usb_putchar( (r.voltage >> 8) & 0xFF );
                uart_usb_putchar( r.voltage & 0xFF );
                uart_usb_putchar( (r.current >> 8) & 0xFF  );
                uart_usb_putchar( r.current & 0xFF );

                uint16 checksum = r.voltage ^ r.current;
                uart_usb_putchar( (checksum >> 8) & 0xFF  );
                uart_usb_putchar( checksum & 0xFF );
            }
        }
Ejemplo n.º 2
0
s16 ir_pop(void)
{
	return cb_pop(&cBuffer);
}