From 25e3924ddaf7dffb1c9f52010ebeff3e0d17afdf Mon Sep 17 00:00:00 2001 From: aethaniel Date: Thu, 14 Jul 2011 01:18:08 +0200 Subject: [PATCH] [sam] Implementing timings and delay functions --- hardware/sam/cores/sam/Arduino.h | 4 +- .../sam/build_gcc/debug_sam3s_ek/wiring.o | Bin 17856 -> 17936 bytes .../sam/lib/libarduino_sam3s_ek_gcc_dbg.a | Bin 257902 -> 257938 bytes .../sam/lib/libarduino_sam3s_ek_gcc_dbg.a.txt | 3 - .../cores/sam/libarduino_sam3s_ek_gcc_dbg.a | Bin 257902 -> 257938 bytes .../sam/cores/sam/validation/test_gcc_dbg.elf | Bin 175579 -> 175635 bytes .../sam/cores/sam/validation/test_gcc_dbg.map | 346 +++++++++--------- hardware/sam/cores/sam/wiring.c | 83 +---- 8 files changed, 190 insertions(+), 246 deletions(-) diff --git a/hardware/sam/cores/sam/Arduino.h b/hardware/sam/cores/sam/Arduino.h index d83b4c1aa..413d246fa 100644 --- a/hardware/sam/cores/sam/Arduino.h +++ b/hardware/sam/cores/sam/Arduino.h @@ -56,8 +56,8 @@ extern "C"{ #define degrees(rad) ((rad)*RAD_TO_DEG) #define sq(x) ((x)*(x)) -#define interrupts() sei() -#define noInterrupts() cli() +#define interrupts() __enable_irq() +#define noInterrupts() __disable_irq() #define clockCyclesPerMicrosecond() ( VARIANT_MCK / 1000000L ) #define clockCyclesToMicroseconds(a) ( ((a) * 1000L) / (VARIANT_MCK / 1000L) ) diff --git a/hardware/sam/cores/sam/build_gcc/debug_sam3s_ek/wiring.o b/hardware/sam/cores/sam/build_gcc/debug_sam3s_ek/wiring.o index 8623e0deca859aa2262ecf0aac4a1d5143483dd0..1e770c51a8cf10fb9a8d682940af26254a6c1710 100644 GIT binary patch literal 17936 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 CCcM4? literal 17856 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 Xk=WI3+CSJWUE{QV-!0wlbMSuv_)&;d diff --git a/hardware/sam/cores/sam/lib/libarduino_sam3s_ek_gcc_dbg.a.txt b/hardware/sam/cores/sam/lib/libarduino_sam3s_ek_gcc_dbg.a.txt index 67554d2c6..391506605 100644 --- a/hardware/sam/cores/sam/lib/libarduino_sam3s_ek_gcc_dbg.a.txt +++ b/hardware/sam/cores/sam/lib/libarduino_sam3s_ek_gcc_dbg.a.txt @@ -111,9 +111,6 @@ wiring.o: 00000000 T init 00000000 T micros 00000000 T millis -00000008 b timer0_fract -00000004 B timer0_millis -00000000 B timer0_overflow_count wiring_digital.o: 00000004 r APinDescription diff --git a/hardware/sam/cores/sam/libarduino_sam3s_ek_gcc_dbg.a b/hardware/sam/cores/sam/libarduino_sam3s_ek_gcc_dbg.a index a88c36dd5b8da32bb73ef4954aecf033e2660c53..e16877502e2be1e44459214ec18bcdbb34fd6c1b 100644 GIT binary patch delta 9961 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 diff --git a/hardware/sam/cores/sam/validation/test_gcc_dbg.elf b/hardware/sam/cores/sam/validation/test_gcc_dbg.elf index 6edc9851a9421be0a7cf985e3828f050e6423592..6d54542f6a683f88d07b0c10f59467a1ad55a0b1 100644 GIT binary patch delta 21205 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 F{|_CMS|k7f delta 20516 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 3) -#define FRACT_MAX (1000 >> 3) - -volatile unsigned long timer0_overflow_count = 0; -volatile unsigned long timer0_millis = 0; -static unsigned char timer0_fract = 0; - -/* -SIGNAL(TIMER0_OVF_vect) -{ - // copy these to local variables so they can be stored in registers - // (volatile variables must be read from memory on every access) - unsigned long m = timer0_millis; - unsigned char f = timer0_fract; - - m += MILLIS_INC; - f += FRACT_INC; - if (f >= FRACT_MAX) { - f -= FRACT_MAX; - m += 1; - } - - timer0_fract = f; - timer0_millis = m; - timer0_overflow_count++; -} -*/ - uint32_t millis( void ) { // todo: ensure no interrupts @@ -70,49 +32,36 @@ uint32_t millis( void ) uint32_t micros( void ) { -/* - unsigned long m; - uint8_t oldSREG = SREG, t; + uint32_t dwTicks ; - cli(); - m = timer0_overflow_count; -#if defined(TCNT0) - t = TCNT0; -#elif defined(TCNT0L) - t = TCNT0L; -#else - #error TIMER 0 not defined -#endif - - -#ifdef TIFR0 - if ((TIFR0 & _BV(TOV0)) && (t < 255)) - m++; -#else - if ((TIFR & _BV(TOV0)) && (t < 255)) - m++; -#endif - - SREG = oldSREG; - - return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond()); -*/ - return 0 ; + __disable_irq() ; + dwTicks=SysTick->VAL ; + __enable_irq() ; + + return (GetTickCount()*1000) + ((SysTick->LOAD + 1 - dwTicks)/(VARIANT_MCK/1000000)) ; } +/// \brief Pauses the program for the amount of time (in miliseconds) specified as parameter. +/// (There are 1000 milliseconds in a second.) +/// +/// \param dwMs the number of milliseconds to pause (uint32_t) +/// void delay( uint32_t dwMs ) { Wait( dwMs ) ; } -/* Delay for the given number of microseconds. Assumes a 64 MHz clock. */ +/// \brief Pauses the program for the amount of time (in microseconds) specified as parameter. +/// +/// \param dwUs the number of microseconds to pause (uint32_t) +/// void delayMicroseconds( uint32_t dwUs ) { uint32_t dwStartMicros=micros() ; while ( (micros() - dwStartMicros) < dwUs ) { - //* do nothing + // do nothing } }