add rtimers for cxmac

This commit is contained in:
dak664 2010-02-18 17:21:44 +00:00
parent fee5efb141
commit a83381de30
2 changed files with 11 additions and 4 deletions

View file

@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
* $Id: rtimer-arch.c,v 1.6 2010/02/16 21:48:38 dak664 Exp $
* $Id: rtimer-arch.c,v 1.7 2010/02/18 17:21:44 dak664 Exp $
*/
/**
@ -44,6 +44,7 @@
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include "sys/energest.h"
#include "sys/rtimer.h"
@ -68,7 +69,7 @@
#define ETIFR TIFR3
#define TICIE3 ICIE3
#endif
uint8_t rtimerworks;
/*---------------------------------------------------------------------------*/
#ifdef TCNT3
ISR (TIMER3_COMPA_vect) {
@ -76,7 +77,7 @@ ISR (TIMER3_COMPA_vect) {
ETIMSK &= ~((1 << OCIE3A) | (1 << OCIE3B) | (1 << TOIE3) |
(1 << TICIE3) | (1 << OCIE3C));
rtimerworks++;
/* Call rtimer callback */
rtimer_run_next();
@ -97,6 +98,7 @@ rtimer_arch_init(void)
cli ();
#ifdef TCNT3
rtimerworks=240;
ETIMSK &= ~((1 << OCIE3A) | (1 << OCIE3B) | (1 << TOIE3) |
(1 << TICIE3) | (1 << OCIE3C));
@ -132,6 +134,7 @@ rtimer_arch_schedule(rtimer_clock_t t)
cli ();
#ifdef TCNT3
rtimerworks=250;
/* Set compare register */
OCR3A = t;
ETIFR |= (1 << ICF3) | (1 << OCF3A) | (1 << OCF3B) | (1 << TOV3) |
@ -145,4 +148,5 @@ rtimer_arch_schedule(rtimer_clock_t t)
/* Restore interrupt state */
SREG = sreg;
printf("rs%d",t);
}