This commit is contained in:
hathach 2019-03-29 17:42:10 +07:00
parent 7d9b68a7b9
commit 28610198df
3 changed files with 18 additions and 18 deletions

View File

@ -47,15 +47,15 @@ Currently the following OS are supported with tinyusb out of the box with a simp
The stack supports the following MCUs The stack supports the following MCUs
- **Nordic:** nRF52840 - **Nordic:** nRF52840
- **NXP:** LPC11Uxx, LPC13xx, LPC175x_6x, LPC177x_8x, LPC40xx, LPC43xx - **NXP:** LPC11Uxx, LPC13xx, LPC175x_6x, LPC177x_8x, LPC18xx, LPC40xx, LPC43xx
- **MicroChip:** SAMD21, SAMD51 (device only) - **MicroChip:** SAMD21, SAMD51
- **ST:** STM32F4 - **ST:** STM32F4
[Here is the list of supported Boards](docs/boards.md) [Here is the list of supported Boards](docs/boards.md)
## Compiler & IDE ## Compiler & IDE
The stack is developed with GCC compiler, and should be compilable with others. However, it requires C99 to build with. Folder `examples` provide Makefile and Segger Embedded Studio build support. The stack is developed with GCC compiler, and should be compilable with others. Folder `examples` provide Makefile and Segger Embedded Studio build support.
## Getting Started ## Getting Started

View File

@ -34,6 +34,14 @@
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF PROTYPES // MACRO CONSTANT TYPEDEF PROTYPES
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
/* Blink pattern
* - 250 ms : device not mounted
* - 1000 ms : device mounted
* - 2000 ms : device is suspended
*/
static uint32_t blink_interval_ms = 250;
void led_blinking_task(void); void led_blinking_task(void);
extern void virtual_com_task(void); extern void virtual_com_task(void);
@ -187,18 +195,19 @@ void tud_hid_generic_set_report_cb(uint8_t report_id, hid_report_type_t report_t
#endif #endif
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// tinyusb callbacks // Device callbacks
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Invoked when device is mounted // Invoked when device is mounted
void tud_mount_cb(void) void tud_mount_cb(void)
{ {
blink_interval_ms = 1000;
} }
// Invoked when device is unmounted // Invoked when device is unmounted
void tud_umount_cb(void) void tud_umount_cb(void)
{ {
blink_interval_ms = 250;
} }
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
@ -206,14 +215,12 @@ void tud_umount_cb(void)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
void led_blinking_task(void) void led_blinking_task(void)
{ {
const uint32_t interval_ms = 1000;
static uint32_t start_ms = 0; static uint32_t start_ms = 0;
static bool led_state = false; static bool led_state = false;
// Blink every 1000 ms // Blink every 1000 ms
if ( board_millis() < start_ms + interval_ms) return; // not enough time if ( board_millis() < start_ms + blink_interval_ms) return; // not enough time
start_ms += interval_ms; start_ms += blink_interval_ms;
board_led_control(led_state); board_led_control(led_state);
led_state = 1 - led_state; // toggle led_state = 1 - led_state; // toggle

View File

@ -34,16 +34,9 @@
extern "C" { extern "C" {
#endif #endif
//--------------------------------------------------------------------+
// INCLUDE
//--------------------------------------------------------------------+
#include "common/tusb_common.h" #include "common/tusb_common.h"
#include "device/dcd.h" #include "device/dcd.h"
//--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF
//--------------------------------------------------------------------+
/// \brief Descriptor pointer collector to all the needed. /// \brief Descriptor pointer collector to all the needed.
typedef struct { typedef struct {
void const * device; ///< pointer to device descriptor \ref tusb_desc_device_t void const * device; ///< pointer to device descriptor \ref tusb_desc_device_t
@ -64,7 +57,7 @@ typedef struct {
extern tud_desc_set_t tud_desc_set; extern tud_desc_set_t tud_desc_set;
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// APPLICATION API // Application API
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
bool tud_mounted(void); bool tud_mounted(void);
void tud_task (void); void tud_task (void);
@ -72,7 +65,7 @@ void tud_task (void);
bool tud_remote_wakeup(void); bool tud_remote_wakeup(void);
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// APPLICATION CALLBACK (WEAK is optional) // Application Callbacks (WEAK is optional)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Callback invoked when device is mounted (configured) // Callback invoked when device is mounted (configured)