From f021c6fe95603891a9da63b04791e2e934555ec7 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Thu, 25 Oct 2007 15:36:55 +0000 Subject: [PATCH] git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@65 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- demos/AVR-AT90CANx-GCC/chcore.c | 92 +++++++++++++++++++++++++++------ readme.txt | 1 + 2 files changed, 78 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 +/* + * 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. diff --git a/readme.txt b/readme.txt index 030794714..50182db84 100644 --- a/readme.txt +++ b/readme.txt @@ -51,6 +51,7 @@ AVR-AT90CANx-GCC - Port on AVR AT90CAN128, not complete yet. order to minimize the number of interrupts generated, it is possible to disable the feature and return to the old code which is a bit smaller, see the configuration parameters in ./ARM7-LPC214x/GCC/lpc214x_serial.h. +- Some more work done on the AVR port, not tested yet. *** 0.3.4 *** - Fixed a problem in chVTSetI().