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=en&noCookies=true&action=viewKbEntry&id=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 & (1<<KBD_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 : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
WIKI : http://wiki.droids-corp.org/index.php/Aversive
DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
BUGZILLA : http://bugzilla.droids-corp.org
COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog

Répondre à