summaryrefslogtreecommitdiffstats
path: root/mig_test/software/libhal/timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'mig_test/software/libhal/timer.c')
-rw-r--r--mig_test/software/libhal/timer.c132
1 files changed, 0 insertions, 132 deletions
diff --git a/mig_test/software/libhal/timer.c b/mig_test/software/libhal/timer.c
deleted file mode 100644
index 789c565..0000000
--- a/mig_test/software/libhal/timer.c
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "peripherie.h"
-
-#include "timer.h"
-
-////////////////////////////////////////
-// timer functions
-// timer 0.0 is used for usleep
-// timer 0.0 is used for msleep
-// timer 0.0 is used for sleep (via msleep)
-//
-// timer 0.0 ticks with milliseconds
-// timer 0.1 ticks with seconds
-
-
-// wait for a given time in micro seconds
-void usleep(uint32_t usec)
-{
- uint32_t tcr;
-
- // 1 usec = 6
- timer0->e[0].reload = (F_CPU/TIMER_PRESCALER/1000000)*usec;
- timer0->e[0].ctrl = TIMER_ENABLE | TIMER_LOAD;
-
- do
- {
- tcr = timer0->e[0].ctrl;
- } while ( (tcr & TIMER_ENABLE));
-}
-
-
-// wait for given time in milli seconds
-void msleep(uint32_t msec)
-{
- uint32_t tcr;
-
- // some values for 50MHz @ Spartan 3e
- // 1 msec = 6250
- // 167 msec = 2**20 (20 bit counter) 391 slices
- // 2684 msec = 2**24 (24 bit counter) 450 slices
- // = 2**32 (32 bit counter) 572 slices
- // some values for 52MHz @ Spartan 6
- // 1 msec = 6500
- // 161 msec = 2**20 (20 bit counter)
- // 2581 msec = 2**24 (24 bit counter) 450 slices
- // 660 sec = 2**32 (32 bit counter) 572 slices
- timer0->e[0].reload = (F_CPU/TIMER_PRESCALER/1000)*msec;
- timer0->e[0].ctrl = TIMER_ENABLE | TIMER_LOAD;
-
- do
- {
- tcr = timer0->e[0].ctrl;
- } while ( (tcr & TIMER_ENABLE));
-}
-
-
-// wait for given time in seconds
-void sleep(uint32_t sec)
-{
- uint32_t timer;
-
- for (timer=0; timer<sec; timer++)
- {
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- }
-}
-
-
-
-// deliver the milliseconds from timer 0.0
-uint32_t msecs( void)
-{
- return( timer0->e[0].value);
-}
-
-
-// deliver the seconds from timer 0.1
-uint32_t seconds( void)
-{
- return( timer0->e[1].value);
-}
-
-
-// deliver the time (in seconds and fraction) from timer
-uint32_t get_time( void)
-{
- uint32_t value;
-
- TIMER_STOP;
-
- // combine values (seconds.milliseconds)
- value = timer0->e[1].value * 1000 + timer0->e[0].value;
-
- TIMER_RUN;
-
- return( value);
-}
-
-
-// just a loop
-void wait( uint32_t value)
-{
- uint32_t i;
-
- for (i=0; i<value; i++) {}
-}
-
-
-// initialisation for the timer
-void timer_init( void)
-{
- timer0->scaler_reload = TIMER_PRESCALER-1; // set prescaler
-
- // set timer 0.1 in chain mode to timer 0.0
- // so it counts in seconds
- timer0->e[1].reload = 0xffffffff;
- timer0->e[1].ctrl = TIMER_ENABLE | TIMER_RESTART | TIMER_LOAD | TIMER_CHAIN;
-
- // set timer 0.0 to free running in msec
- timer0->e[0].reload = (F_CPU/TIMER_PRESCALER/CLOCKS_PER_SECOND);
- timer0->e[0].ctrl = TIMER_ENABLE | TIMER_RESTART | TIMER_LOAD;
-}
-
-
OpenPOWER on IntegriCloud