Add preliminary FreeRTOS support; Enforce CONFIG_* definitions.
[bertos.git] / drv / twi.c
index ff52b68af5c5fc6e956bf2e827856e78b5f9c71a..76d4a82f463c28c305c23913d6e45ef9c6922ac4 100755 (executable)
--- a/drv/twi.c
+++ b/drv/twi.c
@@ -2,7 +2,7 @@
  * \file
  * <!--
  * Copyright 2003, 2004, 2005 Develer S.r.l. (http://www.develer.com/)
- * This file is part of DevLib - See devlib/README for information.
+ * This file is part of DevLib - See README.devlib for information.
  * -->
  *
  * \brief Driver for the AVR ATMega TWI (implementation)
 
 /*#*
  *#* $Log$
+ *#* Revision 1.5  2005/11/27 23:33:40  bernie
+ *#* Use appconfig.h instead of cfg/config.h.
+ *#*
+ *#* Revision 1.4  2005/04/11 19:10:28  bernie
+ *#* Include top-level headers from cfg/ subdir.
+ *#*
+ *#* Revision 1.3  2005/03/01 23:26:00  bernie
+ *#* Header fix.
+ *#*
+ *#* Revision 1.2  2005/01/25 08:36:56  bernie
+ *#* CONFIG_TWI_FREQ: New config param.
+ *#*
  *#* Revision 1.1  2005/01/06 16:09:40  aleph
  *#* Split twi/eeprom functions from eeprom module in separate twi module
  *#*
  *#*/
 
 #include "twi.h"
-#include "config.h"
-#include <debug.h>
+
+#include <cfg/debug.h>
+#include <cfg/cpu.h>
+#include <cfg/macros.h> // BV()
 #include <hw.h>
-#include <cpu.h>
+#include <appconfig.h>
 
-#include <avr/twi.h>
+#include <compat/twi.h>
 
 
 /* Wait for TWINT flag set: bus is ready */
@@ -223,10 +237,13 @@ void twi_init(void)
                 * Set speed:
                 * F = CLOCK_FREQ / (16 + 2*TWBR * 4^TWPS)
                 */
-               #define TWI_FREQ  300000L /* ~300 kHz */
+               #ifndef CONFIG_TWI_FREQ
+                       #warning Using default value of 300000L for CONFIG_TWI_FREQ
+                       #define CONFIG_TWI_FREQ  300000L /* ~300 kHz */
+               #endif
                #define TWI_PRESC 1       /* 4 ^ TWPS */
 
-               TWBR = (CLOCK_FREQ / (2 * TWI_FREQ * TWI_PRESC)) - (8 / TWI_PRESC);
+               TWBR = (CLOCK_FREQ / (2 * CONFIG_TWI_FREQ * TWI_PRESC)) - (8 / TWI_PRESC);
                TWSR = 0;
                TWCR = BV(TWEN);
        );