Re: [Avr-list] aversive CVS_LOG 2008-06-15

2008-06-15 Par sujet Olivier MATZ


yop tof,

Pour les macros extr_xxx, elles ne ressemblent plus à ça dans la  
head : ça fait raler gcc-4.2 sinon, du coup je les avais refait d'une  
manière plus correcte.


http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive/include/ 
aversive.h?revision=1.4view=markup


Sinon bien vu pour le reset().


Le 15 juin 08 à 06:52, root a écrit :


Commit from tof on branch b_tof (2008-06-14 10:02 CEST)
===

reset SW macro changed
kbd updated

  aversive  include/ 
aversive.h   1.3.2.3
  aversive  modules/devices/ihm/kbd/kbd_matrix_4x4/doc/ 
SCHEMA.DDB1.1.2.2
  aversive  modules/devices/ihm/kbd/kbd_matrix_4x4_4port/ 
kbd_matrix_4x4_4port.c  1.1.2.5



===
aversive/include/aversive.h  (1.3.2.2 - 1.3.2.3)
===

@@ -15,7 +15,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   
02111-1307  USA

  *
- *  Revision : $Id: aversive.h,v 1.3.2.2 2008-02-11 10:40:52 tof  
Exp $
+ *  Revision : $Id: aversive.h,v 1.3.2.3 2008-06-14 08:02:46 tof  
Exp $

  *
  */

@@ -114,17 +114,41 @@
  *  use only if you need speed optimization !
  *  use  instead for current operations
  */
-#define extr16_08_0(i) (*(char *)(i)) // LSB of a 16bit
-#define extr16_08_1(i) (*((char *)(i)+1)) // MSB of a 16bit
+#define extr16_08_0(i) (*(uint8_t *)(i)) // LSB of a 16bit
+#define extr16_08_1(i) (*((uint8_t *)(i)+1)) // MSB of a 16bit
+
+#define extr32_16_0(i) (*(uint16_t *)(i))  // LSB of a 32  
bit
+#define extr32_16_1(i) (* (((uint16_t *)(i)) +1))  // MSB of a 32  
bit
+//#define extr32_16_23(i) (*((uint16_t *)((uint8_t *)(i)+1))) //  
middle of a 32 bit // deprecated

+
+#define extr32_08_0(i) (*(uint8_t *)(i)) // same stuff
+#define extr32_08_1(i) (*((uint8_t *)(i)+1))
+#define extr32_08_2(i) (*((uint8_t *)(i)+2))
+#define extr32_08_3(i) (*((uint8_t *)(i)+3))
+
+
+
+#define extr64_33_0(i) (*(uint32_t *)(i))
+#define extr64_32_1(i) (*((uint32_t *)(i)+1))
+
+#define extr64_16_0(i) (*(uint16_t *)(i))
+#define extr64_16_1(i) (*((uint16_t *)(i)+1))
+#define extr64_16_2(i) (*((uint16_t *)(i)+2))
+#define extr64_16_3(i) (*((uint16_t *)(i)+3))
+
+#define extr64_08_0(i) (*(uint8_t *)(i)) // same stuff
+#define extr64_08_1(i) (*((uint8_t *)(i)+1))
+#define extr64_08_2(i) (*((uint8_t *)(i)+2))
+#define extr64_08_3(i) (*((uint8_t *)(i)+3))
+#define extr64_08_4(i) (*((uint8_t *)(i)+4))
+#define extr64_08_5(i) (*((uint8_t *)(i)+5))
+#define extr64_08_6(i) (*((uint8_t *)(i)+6))
+#define extr64_08_7(i) (*((uint8_t *)(i)+7))
+
+
+
+

-#define extr32_16_0(i) (*(int *)(i))  // LSB of a 32 bit
-#define extr32_16_1(i) (* (((int *)(i)) +1))  // MSB of a 32 bit
-#define extr32_16_23(i) (*((int *)((char *)(i)+1))) // middle of  
a 32 bit

-
-#define extr32_08_0(i) (*(char *)(i)) // same stuff
-#define extr32_08_1(i) (*((char *)(i)+1))
-#define extr32_08_2(i) (*((char *)(i)+2))
-#define extr32_08_3(i) (*((char *)(i)+3))


 /* a few asm utilities */
@@ -141,13 +165,18 @@
 #ifndef sei
 #define sei() __asm__ __volatile__ (SEI\n) /** enable interrupts */
 #endif
-/** simple software reset, but doesn't initialize the registers */
+/** software reset through WDT
+   this procedure is recommended by atmel
+	http://support.atmel.no/bin/customer? 
custSessionKey=customerLang=ennoCookies=trueaction=viewKbEntryid=2 
1

+ */
 #ifndef reset
+#include avr/io.h
+#include avr/wdt.h
 #define reset()  \
 do {\
-  __asm__ __volatile__ (ldi r30,0\n);  \
-  __asm__ __volatile__ (ldi r31,0\n);  \
-  __asm__ __volatile__ (ijmp\n);  \
+   cli();   \
+   wdt_enable(WDTO_30MS);   \
+   while(1) {}; \
 } while(0)
 #endif



==
aversive/modules/devices/ihm/kbd/kbd_matrix_4x4/doc/SCHEMA.DDB   
(1.1.2.1 - 1.1.2.2)

==



== 
==
aversive/modules/devices/ihm/kbd/kbd_matrix_4x4_4port/ 
kbd_matrix_4x4_4port.c  (1.1.2.4 - 1.1.2.5)
== 
==


@@ -15,7 +15,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   
02111-1307  USA

  *
- *  Revision : $Id: kbd_matrix_4x4_4port.c,v 1.1.2.4 2008-03-16  
15:12:49 tof Exp $
+ *  Revision : $Id: kbd_matrix_4x4_4port.c,v 1.1.2.5 2008-06-14  
08:03:09 tof Exp $

  *
  */

@@ -224,10 +224,10 @@
 // ! a l ordre, car si on mettait d abord le port a 1, on  
aurait une impulsion sur le port

 // meme chose + haut

-if ((value  KBD_BIT2)!=0)
+if ((value  (1KBD_BIT2))!=0)
   return 0;  // no key pressed

-		value |= 

[Avr-list] aversive CVS_LOG 2008-06-15

2008-06-14 Par sujet root
Commit from tof on branch b_tof (2008-06-14 10:02 CEST)
===

reset SW macro changed
kbd updated

  aversive  include/aversive.h  
 1.3.2.3
  aversive  modules/devices/ihm/kbd/kbd_matrix_4x4/doc/SCHEMA.DDB   
 1.1.2.2
  aversive  modules/devices/ihm/kbd/kbd_matrix_4x4_4port/kbd_matrix_4x4_4port.c 
 1.1.2.5


===
aversive/include/aversive.h  (1.3.2.2 - 1.3.2.3)
===

@@ -15,7 +15,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- *  Revision : $Id: aversive.h,v 1.3.2.2 2008-02-11 10:40:52 tof Exp $
+ *  Revision : $Id: aversive.h,v 1.3.2.3 2008-06-14 08:02:46 tof Exp $
  *
  */
 
@@ -114,17 +114,41 @@
  *  use only if you need speed optimization !
  *  use  instead for current operations 
  */
-#define extr16_08_0(i) (*(char *)(i)) // LSB of a 16bit
-#define extr16_08_1(i) (*((char *)(i)+1)) // MSB of a 16bit
+#define extr16_08_0(i) (*(uint8_t *)(i)) // LSB of a 16bit
+#define extr16_08_1(i) (*((uint8_t *)(i)+1)) // MSB of a 16bit
+
+#define extr32_16_0(i) (*(uint16_t *)(i))  // LSB of a 32 bit
+#define extr32_16_1(i) (* (((uint16_t *)(i)) +1))  // MSB of a 32 bit
+//#define extr32_16_23(i) (*((uint16_t *)((uint8_t *)(i)+1))) // middle of a 
32 bit // deprecated
+
+#define extr32_08_0(i) (*(uint8_t *)(i)) // same stuff
+#define extr32_08_1(i) (*((uint8_t *)(i)+1))
+#define extr32_08_2(i) (*((uint8_t *)(i)+2))
+#define extr32_08_3(i) (*((uint8_t *)(i)+3))
+
+
+
+#define extr64_33_0(i) (*(uint32_t *)(i))
+#define extr64_32_1(i) (*((uint32_t *)(i)+1))
+
+#define extr64_16_0(i) (*(uint16_t *)(i))
+#define extr64_16_1(i) (*((uint16_t *)(i)+1))
+#define extr64_16_2(i) (*((uint16_t *)(i)+2))
+#define extr64_16_3(i) (*((uint16_t *)(i)+3))
+
+#define extr64_08_0(i) (*(uint8_t *)(i)) // same stuff
+#define extr64_08_1(i) (*((uint8_t *)(i)+1))
+#define extr64_08_2(i) (*((uint8_t *)(i)+2))
+#define extr64_08_3(i) (*((uint8_t *)(i)+3))
+#define extr64_08_4(i) (*((uint8_t *)(i)+4))
+#define extr64_08_5(i) (*((uint8_t *)(i)+5))
+#define extr64_08_6(i) (*((uint8_t *)(i)+6))
+#define extr64_08_7(i) (*((uint8_t *)(i)+7))
+
+
+
+
 
-#define extr32_16_0(i) (*(int *)(i))  // LSB of a 32 bit
-#define extr32_16_1(i) (* (((int *)(i)) +1))  // MSB of a 32 bit
-#define extr32_16_23(i) (*((int *)((char *)(i)+1))) // middle of a 32 bit
-
-#define extr32_08_0(i) (*(char *)(i)) // same stuff
-#define extr32_08_1(i) (*((char *)(i)+1))
-#define extr32_08_2(i) (*((char *)(i)+2))
-#define extr32_08_3(i) (*((char *)(i)+3))
 
 
 /* a few asm utilities */
@@ -141,13 +165,18 @@
 #ifndef sei
 #define sei() __asm__ __volatile__ (SEI\n) /** enable interrupts */
 #endif
-/** simple software reset, but doesn't initialize the registers */
+/** software reset through WDT
+   this procedure is recommended by atmel
+   
http://support.atmel.no/bin/customer?custSessionKey=customerLang=ennoCookies=trueaction=viewKbEntryid=21
+ */
 #ifndef reset
+#include avr/io.h
+#include avr/wdt.h
 #define reset()  \
 do {\
-  __asm__ __volatile__ (ldi r30,0\n);  \
-  __asm__ __volatile__ (ldi r31,0\n);  \
-  __asm__ __volatile__ (ijmp\n);  \
+   cli();   \
+   wdt_enable(WDTO_30MS);   \
+   while(1) {}; \
 } while(0)
 #endif
 


==
aversive/modules/devices/ihm/kbd/kbd_matrix_4x4/doc/SCHEMA.DDB  (1.1.2.1 - 
1.1.2.2)
==




aversive/modules/devices/ihm/kbd/kbd_matrix_4x4_4port/kbd_matrix_4x4_4port.c  
(1.1.2.4 - 1.1.2.5)


@@ -15,7 +15,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- *  Revision : $Id: kbd_matrix_4x4_4port.c,v 1.1.2.4 2008-03-16 15:12:49 tof 
Exp $
+ *  Revision : $Id: kbd_matrix_4x4_4port.c,v 1.1.2.5 2008-06-14 08:03:09 tof 
Exp $
  *
  */
 
@@ -224,10 +224,10 @@
 // ! a l ordre, car si on mettait d abord le port a 1, on aurait une 
impulsion sur le port
 // meme chose + haut
 
-if ((value  KBD_BIT2)!=0)
+if ((value  (1KBD_BIT2))!=0)
   return 0;  // no key pressed
 
-   value |= KBD_ROWS; // mise a 1 des bits de ligne, (inverse 
ensuite a 0, pour signifier ligne4)
+   value |= KBD_ROWS; // mise a 1 des bits de ligne, (inverse 
ensuite a 0, pour signifier ligne1)
   }
   
   

___
Avr-list mailing list
Avr-list@droids-corp.org
CVSWEB :