Remove contitional on clock updating, it should always be done after a sleep!
This commit is contained in:
parent
44a2e34005
commit
013c3ac2f8
3 changed files with 13 additions and 10 deletions
|
@ -41,6 +41,8 @@
|
||||||
The Raven has a 32768Hz watch crystal that can be used to clock the timer
|
The Raven has a 32768Hz watch crystal that can be used to clock the timer
|
||||||
while the 1284p is sleeping. The Jackdaw has pads for a crystal. The crystal
|
while the 1284p is sleeping. The Jackdaw has pads for a crystal. The crystal
|
||||||
can be used to clock the 8 bit timer2.
|
can be used to clock the 8 bit timer2.
|
||||||
|
The 1284p routine also uses TIMER2 to sleep a variable number of seconds.
|
||||||
|
It restores the values here after a wake.
|
||||||
*/
|
*/
|
||||||
#if AVR_CONF_USE32KCRYSTAL
|
#if AVR_CONF_USE32KCRYSTAL
|
||||||
#define AVR_OUTPUT_COMPARE_INT TIMER2_COMPA_vect
|
#define AVR_OUTPUT_COMPARE_INT TIMER2_COMPA_vect
|
||||||
|
|
|
@ -31,19 +31,19 @@ extern uint8_t RF230_receive_on;
|
||||||
For longer intervals a 32 bit global is incremented every second.
|
For longer intervals a 32 bit global is incremented every second.
|
||||||
|
|
||||||
clock-avr.h contains the specific setup code for each mcu.
|
clock-avr.h contains the specific setup code for each mcu.
|
||||||
|
|
||||||
The 1284p can use TIMER2 with external 32768 Hz clock at 125 ticks/sec.
|
|
||||||
The 1284p routine also uses TIMER2 to sleep a variable number of seconds.
|
|
||||||
It calls this routine to adjust the clock after a sleep.
|
|
||||||
*/
|
*/
|
||||||
#if AVR_CONF_USE32KCRYSTAL
|
/*---------------------------------------------------------------------------*/
|
||||||
|
/* This routine can be called to add seconds to the clock after a sleep
|
||||||
|
* of an integral number of seconds.
|
||||||
|
* TODO:keep separate track of elapsed time, cpu ontime, and radioontime
|
||||||
|
*/
|
||||||
void clock_adjust_seconds(uint8_t howmany) {
|
void clock_adjust_seconds(uint8_t howmany) {
|
||||||
seconds += howmany;
|
seconds += howmany;
|
||||||
#if RADIOSTATS
|
#if RADIOSTATS
|
||||||
if (RF230_receive_on) radioontime += howmany;
|
if (RF230_receive_on) radioontime += howmany;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
//SIGNAL(SIG_OUTPUT_COMPARE0)
|
//SIGNAL(SIG_OUTPUT_COMPARE0)
|
||||||
ISR(AVR_OUTPUT_COMPARE_INT)
|
ISR(AVR_OUTPUT_COMPARE_INT)
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: raven-lcd.c,v 1.10 2010/12/22 16:50:31 dak664 Exp $
|
* $Id: raven-lcd.c,v 1.11 2010/12/22 17:09:03 dak664 Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -163,10 +163,12 @@ char serial_char_received;
|
||||||
/* Sleep for howlong seconds, or until UART interrupt if howlong==0.
|
/* Sleep for howlong seconds, or until UART interrupt if howlong==0.
|
||||||
* Uses TIMER2 with external 32768 Hz crystal to sleep in 1 second multiples.
|
* Uses TIMER2 with external 32768 Hz crystal to sleep in 1 second multiples.
|
||||||
* TIMER2 may have already been set up for 125 ticks/second in clock.c
|
* TIMER2 may have already been set up for 125 ticks/second in clock.c
|
||||||
* If so the clock is adjusted to reflect the sleep time
|
|
||||||
*
|
*
|
||||||
* Until someone figures out how to get UART to wake from powerdown,
|
* Until someone figures out how to get UART to wake from powerdown,
|
||||||
* a three second powersave cycle is used with exit based on any character received.
|
* a three second powersave cycle is used with exit based on any character received.
|
||||||
|
|
||||||
|
* The system clock is adjusted to reflect the sleep time.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void micro_sleep(uint8_t howlong)
|
void micro_sleep(uint8_t howlong)
|
||||||
|
@ -209,8 +211,7 @@ void micro_sleep(uint8_t howlong)
|
||||||
serial_char_received=0; // Set when chars received by UART
|
serial_char_received=0; // Set when chars received by UART
|
||||||
sleep_mode(); // Sleep
|
sleep_mode(); // Sleep
|
||||||
|
|
||||||
/* Adjust clock.c for the time sleeping */
|
/* Adjust clock.c for the time spent sleeping */
|
||||||
/* TODO:keep track of realtime, ontime, and radioontime */
|
|
||||||
extern void clock_adjust_seconds(uint8_t howmany);
|
extern void clock_adjust_seconds(uint8_t howmany);
|
||||||
clock_adjust_seconds(howlong);
|
clock_adjust_seconds(howlong);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue