moved rtimer from TimerB to TimerA so that TimerB subsystem is free for other uses
This commit is contained in:
parent
f0f9314e7e
commit
23b7db88d5
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* @(#)$Id: clock.c,v 1.16 2008/10/10 12:36:58 nifi Exp $
|
* @(#)$Id: clock.c,v 1.17 2008/12/02 12:44:48 joxe Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,10 +40,11 @@
|
||||||
#include "sys/energest.h"
|
#include "sys/energest.h"
|
||||||
#include "sys/clock.h"
|
#include "sys/clock.h"
|
||||||
#include "sys/etimer.h"
|
#include "sys/etimer.h"
|
||||||
|
#include "rtimer-arch.h"
|
||||||
|
|
||||||
/* 38400 cycles @ 2.4576MHz with divisor 8 ==> 1/8 s */
|
/* 38400 cycles @ 2.4576MHz with divisor 8 ==> 1/8 s */
|
||||||
/* #define INTERVAL (307200ULL / CLOCK_SECOND) */
|
/* #define INTERVAL (307200ULL / CLOCK_SECOND) */
|
||||||
#define INTERVAL (4096ULL / CLOCK_SECOND)
|
#define INTERVAL (RTIMER_ARCH_SECOND / CLOCK_SECOND)
|
||||||
|
|
||||||
#define MAX_TICKS (~((clock_time_t)0) / 2)
|
#define MAX_TICKS (~((clock_time_t)0) / 2)
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: rtimer-arch.c,v 1.7 2008/07/04 00:02:21 adamdunkels Exp $
|
* $Id: rtimer-arch.c,v 1.8 2008/12/02 12:44:48 joxe Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,11 +53,9 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
interrupt(TIMERB1_VECTOR) timerb1 (void) {
|
interrupt(TIMERA0_VECTOR) timera0 (void) {
|
||||||
ENERGEST_ON(ENERGEST_TYPE_IRQ);
|
ENERGEST_ON(ENERGEST_TYPE_IRQ);
|
||||||
if(TBIV == 2) {
|
rtimer_run_next();
|
||||||
rtimer_run_next();
|
|
||||||
}
|
|
||||||
ENERGEST_OFF(ENERGEST_TYPE_IRQ);
|
ENERGEST_OFF(ENERGEST_TYPE_IRQ);
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
@ -66,18 +64,8 @@ rtimer_arch_init(void)
|
||||||
{
|
{
|
||||||
dint();
|
dint();
|
||||||
|
|
||||||
/* Select SMCLK (2.4576MHz), clear TAR; This makes the rtimer count
|
/* CCR0 interrupt enabled, interrupt occurs when timer equals CCR0. */
|
||||||
the number of processor cycles executed by the CPU. */
|
TACCTL0 = CCIE;
|
||||||
//TBCTL = TBSSEL1 | TBCLR;
|
|
||||||
|
|
||||||
/* Select ACLK 32768Hz clock, divide by 8 */
|
|
||||||
TBCTL = TBSSEL0 | TBCLR | ID_3;
|
|
||||||
|
|
||||||
/* CCR1 interrupt enabled, interrupt occurs when timer equals CCR1. */
|
|
||||||
TBCCTL1 = CCIE;
|
|
||||||
|
|
||||||
/* Start Timer_B in continuous mode. */
|
|
||||||
TBCTL |= MC1;
|
|
||||||
|
|
||||||
/* Enable interrupts. */
|
/* Enable interrupts. */
|
||||||
eint();
|
eint();
|
||||||
|
@ -87,5 +75,5 @@ void
|
||||||
rtimer_arch_schedule(rtimer_clock_t t)
|
rtimer_arch_schedule(rtimer_clock_t t)
|
||||||
{
|
{
|
||||||
PRINTF("rtimer_arch_schedule time %u\n", t);
|
PRINTF("rtimer_arch_schedule time %u\n", t);
|
||||||
TBCCR1 = t;
|
TACCR0 = t;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: rtimer-arch.h,v 1.4 2007/11/19 22:38:57 joxe Exp $
|
* $Id: rtimer-arch.h,v 1.5 2008/12/02 12:44:48 joxe Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -46,6 +46,6 @@
|
||||||
|
|
||||||
#define RTIMER_ARCH_SECOND 4096
|
#define RTIMER_ARCH_SECOND 4096
|
||||||
|
|
||||||
#define rtimer_arch_now() (TBR)
|
#define rtimer_arch_now() (TAR)
|
||||||
|
|
||||||
#endif /* __RTIMER_ARCH_H__ */
|
#endif /* __RTIMER_ARCH_H__ */
|
||||||
|
|
Loading…
Reference in a new issue