Copy project
This commit is contained in:
parent
ce7a467af7
commit
26a0fd884f
173 changed files with 157458 additions and 1 deletions
34
ad_astra/AdAstra/src/driver/sleep/sleep.c
Normal file
34
ad_astra/AdAstra/src/driver/sleep/sleep.c
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
#include "sleep.h"
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <avr/sleep.h>
|
||||
|
||||
#include "bitwise.h"
|
||||
#include "../../hardware_access/hardware_access.h"
|
||||
|
||||
|
||||
#define TICKS_IN_MILISECOND 31
|
||||
|
||||
volatile int8_t milisecondsSinceFrameStart;
|
||||
|
||||
void startFrameLoop(FrameFunction function, uint8_t frameLengthInMilliseconds) {
|
||||
sleep_enable();
|
||||
|
||||
uint8_t previousFrameTime = 0;
|
||||
while (function(previousFrameTime)) {
|
||||
previousFrameTime = milisecondsSinceFrameStart;
|
||||
|
||||
while (milisecondsSinceFrameStart < frameLengthInMilliseconds) {
|
||||
sleep_cpu();
|
||||
}
|
||||
|
||||
milisecondsSinceFrameStart = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ISR(TIM0_COMPA_vect) {
|
||||
milisecondsSinceFrameStart++;
|
||||
enableTimerA(TICKS_IN_MILISECOND);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue