summaryrefslogtreecommitdiff
path: root/mcc_generated_files/usb/src/usb0.c
diff options
context:
space:
mode:
authorJoshua Drake <joshua.ellis.drake@gmail.com>2025-12-06 14:22:21 -0600
committerJoshua Drake <joshua.ellis.drake@gmail.com>2025-12-06 14:22:21 -0600
commitc9335332df86fbc895a8868a34abcc98817d53f0 (patch)
treeefd0443368c077cbe6215908ae91bf076625e107 /mcc_generated_files/usb/src/usb0.c
Inital CommitHEADmaster
Diffstat (limited to 'mcc_generated_files/usb/src/usb0.c')
-rw-r--r--mcc_generated_files/usb/src/usb0.c89
1 files changed, 89 insertions, 0 deletions
diff --git a/mcc_generated_files/usb/src/usb0.c b/mcc_generated_files/usb/src/usb0.c
new file mode 100644
index 0000000..e232dc2
--- /dev/null
+++ b/mcc_generated_files/usb/src/usb0.c
@@ -0,0 +1,89 @@
+/**
+ * USB0 Generated Driver File
+ *
+ * @file usb0.c
+ *
+ * @ingroup usb0
+ *
+ * @brief This file contains the API implementations for the USB0 driver.
+ *
+ * @version USB0 Driver Version 1.0.0
+*/
+/*
+© [2025] Microchip Technology Inc. and its subsidiaries.
+
+ Subject to your compliance with these terms, you may use Microchip
+ software and any derivatives exclusively with Microchip products.
+ You are responsible for complying with 3rd party license terms
+ applicable to your use of 3rd party software (including open source
+ software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
+ NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
+ SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
+ MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
+ WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
+ INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY
+ KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF
+ MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE
+ FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S
+ TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT
+ EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
+ THIS SOFTWARE.
+*/
+
+#include <stddef.h>
+#include "../usb0.h"
+#include "../../system/syscfg.h"
+#include "../../system/utils/compiler.h"
+
+static void USB0_DefaultTrnComplCallback(void);
+static void USB0_DefaultBusEventCallback(void);
+static void (*USB0_TrnCompl_isr_cb)(void) = &USB0_DefaultTrnComplCallback;
+static void (*USB0_BusEvent_isr_cb)(void) = &USB0_DefaultBusEventCallback;
+
+void USB0_Initialize(void)
+{
+ // OVF enabled; RESET enabled; RESUME enabled; SOF enabled; STALLED enabled; SUSPEND enabled; UNF enabled;
+ USB0.INTCTRLA = 0xFE;
+ // GNDONE disabled; SETUP enabled; TRNCOMPL enabled;
+ USB0.INTCTRLB = 0x21;
+ SYSCFG_UsbVregDisable();
+}
+
+void USB0_TrnComplCallbackRegister(USB_cb_t cb)
+{
+ USB0_TrnCompl_isr_cb = cb;
+}
+
+void USB0_BusEventCallbackRegister(USB_cb_t cb)
+{
+ USB0_BusEvent_isr_cb = cb;
+}
+
+static void USB0_DefaultTrnComplCallback(void)
+{
+ // Clear the interrupt Flags
+ USB0.INTFLAGSB = USB_TRNCOMPL_bm | USB_GNDONE_bm | USB_SETUP_bm;
+}
+
+static void USB0_DefaultBusEventCallback(void)
+{
+ // Clear the interrupt Flags
+ USB0.INTFLAGSA = USB_SOF_bm | USB_SUSPEND_bm | USB_RESUME_bm | USB_RESET_bm | USB_STALLED_bm | USB_UNF_bm | USB_OVF_bm;
+}
+
+ISR(USB0_TRNCOMPL_vect) {
+ if (USB0_TrnCompl_isr_cb != NULL)
+ {
+ (*USB0_TrnCompl_isr_cb)();
+ }
+}
+
+ISR(USB0_BUSEVENT_vect) {
+ if (USB0_BusEvent_isr_cb != NULL) {
+ (*USB0_BusEvent_isr_cb)();
+ }
+}
+
+/**
+ End of File
+*/