aboutsummaryrefslogtreecommitdiffstats
path: root/demos
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2007-10-25 15:36:55 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2007-10-25 15:36:55 +0000
commitf021c6fe95603891a9da63b04791e2e934555ec7 (patch)
treeff83f0259d750c8f68573298d5bd0ba55119165f /demos
parent3530c1a5d1c5900f23c71b6a7e33eb9de8e4d368 (diff)
downloadChibiOS-f021c6fe95603891a9da63b04791e2e934555ec7.tar.gz
ChibiOS-f021c6fe95603891a9da63b04791e2e934555ec7.tar.bz2
ChibiOS-f021c6fe95603891a9da63b04791e2e934555ec7.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@65 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos')
-rw-r--r--demos/AVR-AT90CANx-GCC/chcore.c92
1 files changed, 77 insertions, 15 deletions
diff --git a/demos/AVR-AT90CANx-GCC/chcore.c b/demos/AVR-AT90CANx-GCC/chcore.c
index 9d2e0e1b2..ed9d90d01 100644
--- a/demos/AVR-AT90CANx-GCC/chcore.c
+++ b/demos/AVR-AT90CANx-GCC/chcore.c
@@ -21,26 +21,88 @@
#include <avr/io.h>
+/*
+ * All inputs with pullups.
+ */
+#define VAL_DDRA 0x00
+#define VAL_PORTA 0xFF
+
+/*
+ * All inputs with pullups.
+ */
+#define VAL_DDRB 0x00
+#define VAL_PORTB 0xFF
+
+/*
+ * All inputs with pullups.
+ */
+#define VAL_DDRC 0x00
+#define VAL_PORTC 0xFF
+
+/* PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0
+ * IN IN OUT IN OUT IN IN IN
+ * DDRD 0 0 1 0 1 0 0 0
+ * PU HiZ VAL PU VAL HiZ HiZ HiZ
+ * PORTD 1 0 ?1 1 1 0 0 0
+ */
+#define VAL_DDRD 0x28
+#define VAL_PORTD 0xB8
+
+/* PE7 PE6 BUT LED PE3 PE2 PE1 PE0
+ * IN IN IN OUT IN IN OUT IN
+ * DDRE 0 0 0 1 0 0 1 0
+ * PU PU HiZ VAL PU PU VAL HiZ
+ * PORTE 1 1 0 1 1 1 1 0
+ */
+#define VAL_DDRE 0x12
+#define VAL_PORTE 0xDE
+
+/* TDI TDO TMS TCK PF3 PF2 PF1 PF0
+ * x x x x IN IN IN IN
+ * DDRF 0 0 0 0 0 0 0 0
+ * x x x x PU PU PU PU
+ * PORTF 0 0 0 0 1 1 1 1
+ *
+ */
+#define VAL_DDRF 0x00
+#define VAL_PORTF 0x0F
+
+/* x x x x x PG2 PG1 PG0
+ * x x x x x IN IN IN
+ * DDRG 0 0 0 0 0 0 0 0
+ * x x x x x PU PU PU
+ * PORTG 0 0 0 0 0 1 1 1
+ *
+ */
+#define VAL_DDRG 0x00
+#define VAL_PORTG 0x07
+
void hwinit(void) {
/*
* I/O ports setup.
- * Everything configured as input with pull-up initially.
*/
- DDRA = 0;
- PORTA = 0xFF;
- DDRB = 0;
- PORTB = 0xFF;
- DDRC = 0;
- PORTC = 0xFF;
- DDRD = 0;
- PORTD = 0xFF;
- DDRE = 0;
- PORTE = 0xFF;
- DDRF = 0;
- PORTF = 0xFF;
- DDRG = 0;
- PORTG = 0xFF;
+ DDRA = VAL_DDRA;
+ PORTA = VAL_PORTA;
+ DDRB = VAL_DDRB;
+ PORTB = VAL_PORTB;
+ DDRC = VAL_DDRC;
+ PORTC = VAL_PORTC;
+ DDRD = VAL_DDRD;
+ PORTD = VAL_PORTD;
+ DDRE = VAL_DDRE;
+ PORTE = VAL_PORTE;
+ DDRF = VAL_DDRF;
+ PORTF = VAL_PORTF;
+ DDRG = VAL_DDRG;
+ PORTG = VAL_PORTG;
+
+ /*
+ * External interrupts setup, all disabled initially.
+ */
+ EICRA = 0x00;
+ EICRB = 0x00;
+ EIMSK = 0x00;
/*
* Enables Idle mode for SLEEP instruction.