30
30
#include " Arduino.h"
31
31
#include " Adafruit_TinyUSB_Core.h"
32
32
33
+ // --------------------------------------------------------------------+
34
+ // MACRO TYPEDEF CONSTANT ENUM DECLARATION
35
+ // --------------------------------------------------------------------+
36
+
37
+ #define USBD_STACK_SZ (200 )
38
+
39
+ // tinyusb function that handles power event (detected, ready, removed)
40
+ // We must call it within SD's SOC event handler, or set it as power event handler if SD is not enabled.
41
+ extern " C" void tusb_hal_nrf_power_event (uint32_t event);
42
+
33
43
// --------------------------------------------------------------------+
34
44
// Forward USB interrupt events to TinyUSB IRQ Handler
35
45
// --------------------------------------------------------------------+
@@ -46,30 +56,6 @@ extern "C" void USBD_IRQHandler(void)
46
56
#endif
47
57
}
48
58
49
- // --------------------------------------------------------------------+
50
- // MACRO TYPEDEF CONSTANT ENUM DECLARATION
51
- // --------------------------------------------------------------------+
52
-
53
- #define USBD_STACK_SZ (200 )
54
-
55
- // tinyusb function that handles power event (detected, ready, removed)
56
- // We must call it within SD's SOC event handler, or set it as power event handler if SD is not enabled.
57
- extern " C" void tusb_hal_nrf_power_event (uint32_t event);
58
-
59
- // USB Device Driver task
60
- // This top level thread process all usb events and invoke callbacks
61
- static void usb_device_task (void * param)
62
- {
63
- (void ) param;
64
-
65
- // RTOS forever loop
66
- while (1 )
67
- {
68
- // tinyusb device task
69
- tud_task ();
70
- }
71
- }
72
-
73
59
// --------------------------------------------------------------------+
74
60
// Core Init & Touch1200
75
61
// --------------------------------------------------------------------+
@@ -99,8 +85,12 @@ static void usb_hardware_init(void)
99
85
if ( usb_reg & POWER_USBREGSTATUS_OUTPUTRDY_Msk ) tusb_hal_nrf_power_event (NRFX_POWER_USB_EVT_READY);
100
86
}
101
87
102
- void Adafruit_TinyUSB_Core_init (void )
88
+ // USB Device Driver task
89
+ // This top level thread process all usb events and invoke callbacks
90
+ static void usb_device_task (void * param)
103
91
{
92
+ (void ) param;
93
+
104
94
USBDevice.addInterface ( (Adafruit_USBD_Interface&) Serial);
105
95
USBDevice.setID (USB_VID, USB_PID);
106
96
USBDevice.begin ();
@@ -110,6 +100,16 @@ void Adafruit_TinyUSB_Core_init(void)
110
100
// Init tinyusb stack
111
101
tusb_init ();
112
102
103
+ // RTOS forever loop
104
+ while (1 )
105
+ {
106
+ // tinyusb device task
107
+ tud_task ();
108
+ }
109
+ }
110
+
111
+ void Adafruit_TinyUSB_Core_init (void )
112
+ {
113
113
// Create a task for tinyusb device stack
114
114
xTaskCreate ( usb_device_task, " usbd" , USBD_STACK_SZ, NULL , TASK_PRIO_HIGH, NULL );
115
115
}
0 commit comments