summaryrefslogtreecommitdiff
path: root/vusb-led
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2017-07-09 04:17:26 +0200
committerChristian Pointner <equinox@spreadspace.org>2017-07-09 04:17:26 +0200
commitab3ce4c0e967c7a590a2db6306cce2cf72b82d5b (patch)
tree1f6e36874e33d951d000598edd91fa9b9614af57 /vusb-led
parentadded digispark boards (diff)
added v-usb lib (not working yet)
Diffstat (limited to 'vusb-led')
-rw-r--r--vusb-led/Makefile33
-rw-r--r--vusb-led/usbconfig.h106
-rw-r--r--vusb-led/vusb-led.c70
3 files changed, 209 insertions, 0 deletions
diff --git a/vusb-led/Makefile b/vusb-led/Makefile
new file mode 100644
index 0000000..7f8af33
--- /dev/null
+++ b/vusb-led/Makefile
@@ -0,0 +1,33 @@
+##
+## spreadspace avr utils
+##
+##
+## Copyright (C) 2013-2016 Christian Pointner <equinox@spreadspace.org>
+##
+## This file is part of spreadspace avr utils.
+##
+## spreadspace avr utils is free software: you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## any later version.
+##
+## spreadspace avr utils is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with spreadspace avr utils. If not, see <http://www.gnu.org/licenses/>.
+##
+
+NAME := usb-led
+BOARD_TYPE := digispark
+OBJ := $(NAME).o
+LIBS := util led
+EXTERNAL_LIBS := vusb
+SPREADAVR_PATH := ..
+
+VUSB_PATH := $(SPREADAVR_PATH)/contrib/vusb-20121206
+VUSB_OPTS = -DDEBUG_LEVEL=0
+
+include $(SPREADAVR_PATH)/include.mk
diff --git a/vusb-led/usbconfig.h b/vusb-led/usbconfig.h
new file mode 100644
index 0000000..00f89d2
--- /dev/null
+++ b/vusb-led/usbconfig.h
@@ -0,0 +1,106 @@
+/* Name: usbconfig.h
+ * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
+ * Author: Christian Starkjohann
+ * Creation Date: 2005-04-01
+ * Tabsize: 4
+ * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
+ * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
+ */
+
+#ifndef __usbconfig_h_included__
+#define __usbconfig_h_included__
+
+
+/* ---------------------------- Hardware Config ---------------------------- */
+#define USB_CFG_IOPORTNAME B
+#define USB_CFG_DMINUS_BIT 3
+#define USB_CFG_DPLUS_BIT 4
+
+#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
+#define USB_CFG_CHECK_CRC 0
+
+/* ----------------------- Optional Hardware Config ------------------------ */
+
+/* #define USB_CFG_PULLUP_IOPORTNAME B */
+/* #define USB_CFG_PULLUP_BIT 3 */
+
+/* --------------------------- Functional Range ---------------------------- */
+
+#define USB_CFG_HAVE_INTRIN_ENDPOINT 0
+#define USB_CFG_HAVE_INTRIN_ENDPOINT3 0
+#define USB_CFG_EP3_NUMBER 3
+/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
+#define USB_CFG_IMPLEMENT_HALT 0
+#define USB_CFG_SUPPRESS_INTR_CODE 0
+#define USB_CFG_INTR_POLL_INTERVAL 10
+#define USB_CFG_IS_SELF_POWERED 0
+#define USB_CFG_MAX_BUS_POWER 100
+#define USB_CFG_IMPLEMENT_FN_WRITE 0
+#define USB_CFG_IMPLEMENT_FN_READ 0
+#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
+#define USB_CFG_HAVE_FLOWCONTROL 0
+#define USB_CFG_DRIVER_FLASH_PAGE 0
+#define USB_CFG_LONG_TRANSFERS 0
+/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
+/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
+/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
+#define USB_COUNT_SOF 0
+/* #ifdef __ASSEMBLER__
+ * macro myAssemblerMacro
+ * in YL, TCNT0
+ * sts timer0Snapshot, YL
+ * endm
+ * #endif
+ * #define USB_SOF_HOOK myAssemblerMacro
+ */
+#define USB_CFG_CHECK_DATA_TOGGLING 0
+#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
+#define USB_USE_FAST_CRC 0
+
+/* -------------------------- Device Description --------------------------- */
+
+#define USB_CFG_VENDOR_ID 0xc0, 0x16 /* = 0x16c0 = 5824 = voti.nl */
+#define USB_CFG_DEVICE_ID 0xdc, 0x05 /* = 0x05dc = 1500 */
+#define USB_CFG_DEVICE_VERSION 0x00, 0x01
+#define USB_CFG_VENDOR_NAME 'o', 'b', 'd', 'e', 'v', '.', 'a', 't'
+#define USB_CFG_VENDOR_NAME_LEN 8
+#define USB_CFG_DEVICE_NAME 'T', 'e', 'm', 'p', 'l', 'a', 't', 'e'
+#define USB_CFG_DEVICE_NAME_LEN 8
+/*#define USB_CFG_SERIAL_NUMBER 'N', 'o', 'n', 'e' */
+/*#define USB_CFG_SERIAL_NUMBER_LEN 0 */
+#define USB_CFG_DEVICE_CLASS 0xff /* set to 0 if deferred to interface */
+#define USB_CFG_DEVICE_SUBCLASS 0
+#define USB_CFG_INTERFACE_CLASS 0 /* define class here if not at device level */
+#define USB_CFG_INTERFACE_SUBCLASS 0
+#define USB_CFG_INTERFACE_PROTOCOL 0
+/* #define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 42 */
+/* #define USB_PUBLIC static */
+
+/* ------------------- Fine Control over USB Descriptors ------------------- */
+
+#define USB_CFG_DESCR_PROPS_DEVICE 0
+#define USB_CFG_DESCR_PROPS_CONFIGURATION 0
+#define USB_CFG_DESCR_PROPS_STRINGS 0
+#define USB_CFG_DESCR_PROPS_STRING_0 0
+#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0
+#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0
+#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0
+#define USB_CFG_DESCR_PROPS_HID 0
+#define USB_CFG_DESCR_PROPS_HID_REPORT 0
+#define USB_CFG_DESCR_PROPS_UNKNOWN 0
+
+
+#define usbMsgPtr_t unsigned short
+
+/* ----------------------- Optional MCU Description ------------------------ */
+
+/* #define USB_INTR_CFG MCUCR */
+/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
+/* #define USB_INTR_CFG_CLR 0 */
+/* #define USB_INTR_ENABLE GIMSK */
+/* #define USB_INTR_ENABLE_BIT INT0 */
+/* #define USB_INTR_PENDING GIFR */
+/* #define USB_INTR_PENDING_BIT INTF0 */
+/* #define USB_INTR_VECTOR INT0_vect */
+
+#endif /* __usbconfig_h_included__ */
diff --git a/vusb-led/vusb-led.c b/vusb-led/vusb-led.c
new file mode 100644
index 0000000..6818c8a
--- /dev/null
+++ b/vusb-led/vusb-led.c
@@ -0,0 +1,70 @@
+/*
+ * spreadspace avr utils
+ *
+ *
+ * Copyright (C) 2013-2016 Christian Pointner <equinox@spreadspace.org>
+ *
+ * This file is part of spreadspace avr utils.
+ *
+ * spreadspace avr utils is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * spreadspace avr utils is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with spreadspace avr utils. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#include <avr/io.h>
+#include <avr/wdt.h>
+#include <avr/interrupt.h>
+#include <avr/power.h>
+#include <stdio.h>
+
+#include "util.h"
+#include "led.h"
+
+void handle_cmd(uint8_t cmd)
+{
+ switch(cmd) {
+ case '0': led_off(); break;
+ case '1': led_on(); break;
+ case 't': led_toggle(); break;
+ case 'o': led2_off(); break;
+ case 'i': led2_on(); break;
+ case 'T': led2_toggle(); break;
+ case 'r': reset2bootloader(); break;
+ default: printf("error\r\n"); return;
+ }
+ printf("ok\r\n");
+}
+
+int main(void)
+{
+ MCUSR &= ~(1 << WDRF);
+ wdt_disable();
+
+ cpu_init();
+ led_init();
+// usbio_init();
+ sei();
+
+ for(;;) {
+ /* int16_t BytesReceived = usbio_bytes_received(); */
+ /* while(BytesReceived > 0) { */
+ /* int ReceivedByte = fgetc(stdin); */
+ /* if(ReceivedByte != EOF) { */
+ /* handle_cmd(ReceivedByte); */
+ /* } */
+ /* BytesReceived--; */
+ /* } */
+
+// usbio_task();
+ }
+}