Lots of changes / commits! This allows ravenusbstick example to build at least.
This commit is contained in:
parent
6e3ee0d917
commit
a520fe4646
18 changed files with 1474 additions and 249 deletions
79
cpu/avr/dev/clock-avr.h
Normal file
79
cpu/avr/dev/clock-avr.h
Normal file
|
@ -0,0 +1,79 @@
|
|||
#ifndef CONTIKI_CLOCK_AVR_H
|
||||
#define CONTIKI_CLOCK_AVR_H
|
||||
|
||||
#if defined (__AVR_ATmega128__)
|
||||
|
||||
#define AVR_OUTPUT_COMPARE_INT TIMER0_COMP_vect
|
||||
|
||||
#define OCRSetup() \
|
||||
/* Select internal clock */ \
|
||||
ASSR = 0x00; \
|
||||
\
|
||||
/* Set counter to zero */ \
|
||||
TCNT0 = 0; \
|
||||
\
|
||||
/* \
|
||||
* Set comparison register: \
|
||||
* Crystal freq. is 16000000,\
|
||||
* pre-scale factor is 1024, i.e. we have 125 "ticks" / sec: \
|
||||
* 16000000 = 1024 * 125 * 125 \
|
||||
*/ \
|
||||
OCR0 = 125; \
|
||||
\
|
||||
/* \
|
||||
* Set timer control register: \
|
||||
* - prescale: 1024 (CS00 - CS02) \
|
||||
* - counter reset via comparison register (WGM01) \
|
||||
*/ \
|
||||
TCCR0 = _BV(CS00) | _BV(CS01) | _BV(CS02) | _BV(WGM01); \
|
||||
\
|
||||
/* Clear interrupt flag register */ \
|
||||
TIFR = 0x00; \
|
||||
\
|
||||
/* \
|
||||
* Raise interrupt when value in OCR0 is reached. Note that the \
|
||||
* counter value in TCNT0 is cleared automatically. \
|
||||
*/ \
|
||||
TIMSK = _BV (OCIE0);
|
||||
|
||||
#elif defined (__AVR_ATmega1284P__) || (__AVR_AT90USB1287__)
|
||||
|
||||
#define OCRSetup() \
|
||||
/* Select internal clock */ \
|
||||
ASSR = 0x00; \
|
||||
\
|
||||
/* Set counter to zero */ \
|
||||
TCNT0 = 0; \
|
||||
\
|
||||
/* \
|
||||
* Set comparison register: \
|
||||
* Crystal freq. is 8000000,\
|
||||
* pre-scale factor is 1024, i.e. we have 125 "ticks" / sec: \
|
||||
* 8000000 = 1024 * 125 * 62.5 \
|
||||
*/ \
|
||||
OCR0A = 62; \
|
||||
\
|
||||
/* \
|
||||
* Set timer control register: \
|
||||
* - prescale: 1024 (CS00 - CS02) \
|
||||
* - counter reset via comparison register (WGM01) \
|
||||
*/ \
|
||||
TCCR0A = _BV(WGM01); \
|
||||
TCCR0B = _BV(CS00) | _BV(CS02); \
|
||||
\
|
||||
/* Clear interrupt flag register */ \
|
||||
TIFR0 = TIFR0; \
|
||||
\
|
||||
/* \
|
||||
* Raise interrupt when value in OCR0 is reached. Note that the \
|
||||
* counter value in TCNT0 is cleared automatically. \
|
||||
*/ \
|
||||
TIMSK0 = _BV (OCIE0A);
|
||||
|
||||
#define AVR_OUTPUT_COMPARE_INT TIMER0_COMPA_vect
|
||||
|
||||
#else
|
||||
#error "Setup CPU in clock-avr.h"
|
||||
#endif
|
||||
|
||||
#endif //CONTIKI_CLOCK_AVR_H
|
Loading…
Add table
Add a link
Reference in a new issue