Sistema l'errore da me commesso in fase di conversione...
[bertos.git] / drv / timer_dsp56k.h
old mode 100755 (executable)
new mode 100644 (file)
index 025b5a8..2e29701
@@ -1,9 +1,10 @@
-/*!
+#error This code must be revised for the new timer API
+/**
  * \file
  * <!--
- * Copyright 2004 Giovanni Bajo
  * Copyright 2004 Develer S.r.l. (http://www.develer.com/)
- * This file is part of DevLib - See devlib/README for information.
+ * Copyright 2004 Giovanni Bajo
+ * This file is part of DevLib - See README.devlib for information.
  * -->
  *
  * \version $Id$
  * \brief Driver module for DSP56K
  */
 
-/*
- * $Log$
- * Revision 1.3  2004/06/06 18:30:34  bernie
- * Import DSP56800 changes from SC.
- *
- * Revision 1.2  2004/06/03 11:27:09  bernie
- * Add dual-license information.
- *
- * Revision 1.1  2004/05/23 18:23:30  bernie
- * Import drv/timer module.
- *
- */
+/*#*
+ *#* $Log$
+ *#* Revision 1.10  2006/07/19 12:56:26  bernie
+ *#* Convert to new Doxygen style.
+ *#*
+ *#* Revision 1.9  2006/02/21 21:28:02  bernie
+ *#* New time handling based on TIMER_TICKS_PER_SEC to support slow timers with ticks longer than 1ms.
+ *#*
+ *#* Revision 1.8  2005/11/04 16:20:02  bernie
+ *#* Fix reference to README.devlib in header.
+ *#*
+ *#* Revision 1.7  2005/04/11 19:10:28  bernie
+ *#* Include top-level headers from cfg/ subdir.
+ *#*
+ *#* Revision 1.6  2004/11/16 22:37:14  bernie
+ *#* Replace IPTR with iptr_t.
+ *#*
+ *#* Revision 1.5  2004/08/25 14:12:08  rasky
+ *#* Aggiornato il comment block dei log RCS
+ *#*
+ *#* Revision 1.4  2004/07/30 14:27:49  rasky
+ *#* Aggiornati alcuni file DSP56k per la nuova libreria di IRQ management
+ *#*
+ *#* Revision 1.3  2004/06/06 18:30:34  bernie
+ *#* Import DSP56800 changes from SC.
+ *#*
+ *#* Revision 1.2  2004/06/03 11:27:09  bernie
+ *#* Add dual-license information.
+ *#*
+ *#* Revision 1.1  2004/05/23 18:23:30  bernie
+ *#* Import drv/timer module.
+ *#*
+ *#*/
 
 #ifndef DRV_TIMER_DSP56K_H
 #define DRV_TIMER_DSP56K_H
 
+#include "timer.h"
 #include <DSP56F807.h>
-#include <compiler.h>
+#include <cfg/compiler.h>
 #include <hw.h>
+#include <drv/irq.h>
 
 // Calculate register pointer and irq vector from hw.h setting
 #define REG_SYSTEM_TIMER          PP_CAT(REG_TIMER_, SYSTEM_TIMER)
 #define SYSTEM_TIMER_IRQ_VECTOR   PP_CAT(IRQ_TIMER_, SYSTEM_TIMER)
 
-//! Prescaler for the system timer
+/// Prescaler for the system timer
 #define TIMER_PRESCALER           16
 
-//! Frequency of the hardware high precision timer
+/// Frequency of the hardware high precision timer
 #define TIMER_HW_HPTICKS_PER_SEC           (IPBUS_FREQ / TIMER_PRESCALER)
 
-//! Type of time expressed in ticks of the hardware high precision timer
+/// Type of time expressed in ticks of the hardware high precision timer
 typedef uint16_t hptime_t;
 
+static void system_timer_isr(UNUSED(iptr_t, arg));
+
 static void timer_hw_init(void)
 {
        uint16_t compare;
@@ -65,7 +91,8 @@ static void timer_hw_init(void)
        // The value for reload (at initializationa and after compare is met) is zero
        REG_SYSTEM_TIMER->LOAD = 0;
 
-       // Set the interrupt priority
+       // Set the interrupt handler and priority
+       irq_install(SYSTEM_TIMER_IRQ_VECTOR, &system_timer_isr, NULL);
        irq_setpriority(SYSTEM_TIMER_IRQ_VECTOR, IRQ_PRIORITY_SYSTEM_TIMER);
 
        // Small preprocessor trick to generate the REG_TIMER_CTRL_PRIMARY_IPBYNN macro
@@ -90,9 +117,7 @@ INLINE hptime_t timer_hw_hpread(void)
        return REG_SYSTEM_TIMER->CNTR;
 }
 
-void system_timer_isr(void);
-
 #define DEFINE_TIMER_ISR \
-       void system_timer_isr(void)
+       static void system_timer_isr(UNUSED(iptr_t, arg))
 
 #endif /* DRV_TIMER_DSP56_H */