summaryrefslogtreecommitdiff
path: root/firmware/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/common.h')
-rw-r--r--firmware/common.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/firmware/common.h b/firmware/common.h
new file mode 100644
index 0000000..3229718
--- /dev/null
+++ b/firmware/common.h
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2006, Benedikt Sauter <sauter@embedded-projects.net>
+ * All rights reserved.
+ *
+ * Short descripton of file:
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of the FH Augsburg nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+enum signals {PIN_NONE,PIN_IN,PIN_OUT,PIN_TRI,
+ PIN_AD,PIN_RX,PIN_TX,
+ PIN_SS,PIN_SCK,PIN_MISO,PIN_MOSI,
+ PIN_SCL,PIN_SDA,PIN_PWM,
+ PIN_UART};
+
+
+#define OCTOPUS_CAN
+
+//#define DEBUG
+
+#define F_CPU 16000000UL
+#define STATUS_LED_PIN PB7
+#define STATUS_LED_PORT PORTB
+
+/* red status led */
+#define STATUS_LED_on (STATUS_LED_PORT |= (1 << STATUS_LED_PIN))
+#define STATUS_LED_off (STATUS_LED_PORT &= ~(1 << STATUS_LED_PIN))
+
+
+volatile struct octopus_t
+{
+ volatile unsigned char latency_timer;
+ int ports[45];
+ volatile char * msg[20];
+ volatile int datatogl;
+ volatile unsigned int long_rx_cmd;
+ volatile unsigned int long_rx_index;
+ volatile unsigned int long_rx_bytes;
+
+ volatile unsigned int long_index;
+ volatile unsigned int long_bytes;
+ volatile unsigned int long_running;
+} octopus;
+
+
+
+void CommandAnswer(unsigned int length);
+void CommandAnswerRest(void);
+void USBCommandRX(char *buf);
+void USBMessageIn(char *buf);
+
+
+volatile unsigned char answer[320];
+volatile unsigned char request[320];
+
+void common_latency_timer_init(void);
+
+void common_scheduler(void);
+
+void common_scheduler_add(int id,void(*userFunc)(void));
+
+void common_parser(char *buf);
+
+void common_init(void);
+
+void common_hwdesc(void);
+