Blame view

atmega16u2/custom/lufa-LUFA-170418/Projects/Webserver/Lib/uip/clock.c 576 Bytes
8a7dc1f5   adorian   Seance 4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  #include <stdint.h>
  #include <stdlib.h>
  #include <stdio.h>
  
  #include <LUFA/Common/Common.h>
  
  #include "clock.h"
  
  //Counted time
  volatile clock_time_t clock_datetime = 0;
  
  //Overflow interrupt
  ISR(TIMER1_COMPA_vect, ISR_BLOCK)
  {
  	clock_datetime += 1;
  }
  
  //Initialise the clock
  void clock_init()
  {
  	OCR1A  = (((F_CPU / 1024) / 100) - 1);
  	TCCR1B = ((1 << WGM12) | (1 << CS12) | (1 << CS10));
  	TIMSK1 = (1 << OCIE1A);
  }
  
  //Return time
  clock_time_t clock_time()
  {
  	clock_time_t time;
  
  	GlobalInterruptDisable();
  	time = clock_datetime;
  	GlobalInterruptEnable();
  
  	return time;
  }