##// END OF EJS Templates
update de firmware timegine. RTC terminado
aaguilar -
r196:197
parent child
Show More
@@ -0,0 +1,101
1 /*
No newline at end of file
2 * fixpoint<T>.h
No newline at end of file
3 *
No newline at end of file
4 * Created on: Feb 24, 2015
No newline at end of file
5 * Author: aras
No newline at end of file
6 */
No newline at end of file
7
No newline at end of file
8 #ifndef FIXPOINT_H_
No newline at end of file
9 #define FIXPOINT_H_
No newline at end of file
10
No newline at end of file
11 #include <inttypes.h>
No newline at end of file
12 #include <math.h>
No newline at end of file
13 #include <typeinfo>
No newline at end of file
14 #include <cstdio>
No newline at end of file
15
No newline at end of file
16 typedef fixpoint<int32_t> fix19_12;
No newline at end of file
17 #define N43_20 fixpoint<int64_t>
No newline at end of file
18 #define N9_23 fixpoint<int32_t>
No newline at end of file
19
No newline at end of file
20 #define FAC64 20
No newline at end of file
21 #define FAC32 12
No newline at end of file
22
No newline at end of file
23 template<class T>
No newline at end of file
24 class fixpoint {
No newline at end of file
25
No newline at end of file
26 private:
No newline at end of file
27 uint8_t factor;
No newline at end of file
28 T value;
No newline at end of file
29
No newline at end of file
30 public:
No newline at end of file
31 fixpoint<T>();
No newline at end of file
32 fixpoint<T>(T num);
No newline at end of file
33
No newline at end of file
34 void set_from_float(float num){value=T(num*(1<<factor));}
No newline at end of file
35 void set(T val){value = val;}
No newline at end of file
36 float tofloat();
No newline at end of file
37
No newline at end of file
38
No newline at end of file
39 friend inline fixpoint<T> operator-(const fixpoint<T> &num1, const fixpoint<T> &num2){
No newline at end of file
40 return fixpoint<T>(num1.value-num2.value);
No newline at end of file
41 }
No newline at end of file
42 friend inline fixpoint<T> operator+(const fixpoint<T> &num1, const fixpoint<T> &num2){
No newline at end of file
43 return fixpoint<T>(num1.value+num2.value);
No newline at end of file
44 }
No newline at end of file
45 friend inline fixpoint<T> operator*(const fixpoint<T> &num1, const fixpoint<T> &num2){
No newline at end of file
46 int64_t aux = (int64_t(num1.value)*int64_t(num2.value))>>num1.factor;
No newline at end of file
47 return fixpoint<T>(aux);
No newline at end of file
48 }
No newline at end of file
49 friend inline fixpoint<T> operator/(const fixpoint<T> &num1, const fixpoint<T> &num2){
No newline at end of file
50 int64_t aux = (int64_t(num1.value)<<num1.factor);
No newline at end of file
51 return fixpoint<T>(aux/num2.value);
No newline at end of file
52 }
No newline at end of file
53
No newline at end of file
54
No newline at end of file
55 inline fixpoint<T> power();
No newline at end of file
56 inline fixpoint<T> sqroot();
No newline at end of file
57 };
No newline at end of file
58
No newline at end of file
59 template<class T>
No newline at end of file
60 fixpoint<T>::fixpoint(){
No newline at end of file
61 if(typeid(T)==typeid(int32_t)){
No newline at end of file
62 factor=FAC32;
No newline at end of file
63 }
No newline at end of file
64 else{
No newline at end of file
65 factor=FAC64;
No newline at end of file
66 }
No newline at end of file
67 value=0;
No newline at end of file
68 }
No newline at end of file
69
No newline at end of file
70 template<class T>
No newline at end of file
71 fixpoint<T>::fixpoint(T num){
No newline at end of file
72 if(typeid(T)==typeid(int32_t)){
No newline at end of file
73 factor=FAC32;
No newline at end of file
74 }
No newline at end of file
75 else{
No newline at end of file
76 factor=FAC64;
No newline at end of file
77 }
No newline at end of file
78 value=num;
No newline at end of file
79 }
No newline at end of file
80
No newline at end of file
81
No newline at end of file
82 template<class T>
No newline at end of file
83 float fixpoint<T>::tofloat(){
No newline at end of file
84 return float(value)/(1<<factor);
No newline at end of file
85 }
No newline at end of file
86
No newline at end of file
87 template<class T>
No newline at end of file
88 fixpoint<T> fixpoint<T>::power(){
No newline at end of file
89 int64_t aux = (int64_t(value)*int64_t(value))>>factor;
No newline at end of file
90 return fixpoint<T>(aux);
No newline at end of file
91 }
No newline at end of file
92
No newline at end of file
93 template<class T>
No newline at end of file
94 fixpoint<T> fixpoint<T>::sqroot(){
No newline at end of file
95 T aux = sqrt(value);
No newline at end of file
96 return fixpoint<T>(aux<<(factor/2));
No newline at end of file
97 }
No newline at end of file
98
No newline at end of file
99
No newline at end of file
100
No newline at end of file
101 #endif /* FIXPOINT_H_ */ No newline at end of file
@@ -9,27 +9,25
9 9 No newline at end of file
10 10 namespace te_gnss { No newline at end of file
11 11
12 No newline at end of file
12 bool configure(gnss_config_struct* cs){ No newline at end of file
13 13 return true; No newline at end of file
14 14 } No newline at end of file
15 15
16 No newline at end of file
16 bool activate(){ No newline at end of file
17 17 return true; No newline at end of file
18 18 } No newline at end of file
19 19
20 No newline at end of file
20 bool deactivate(){ No newline at end of file
21 21 return true; No newline at end of file
22 22 } No newline at end of file
23 23
24 No newline at end of file
24 bool sync_pps(){ No newline at end of file
25 25 return true; No newline at end of file
26 26 } No newline at end of file
27 27
No newline at end of file
28 bool get_time_info(gnss_precise_time* pt){
No newline at end of file
29 return true;
No newline at end of file
30 } No newline at end of file
31 28
29 No newline at end of file
32 bool is_locked(){ No newline at end of file
No newline at end of file
30 bool te_gnss_is_locked(){ No newline at end of file
33 31 return true; No newline at end of file
34 32 } No newline at end of file
35 33 } No newline at end of file
@@ -10,19 +10,30
10 10 No newline at end of file
11 11 #include "te_structs.h" No newline at end of file
12 12
13 No newline at end of file
13 namespace te_gnss { No newline at end of file
14 14 //pin ports to GNSS No newline at end of file
15 15 #define PPS 2 /*!< PE4 AVR <> 2 Arduino */ No newline at end of file
16 16 #define ENB 5 /*!< PE3 AVR <> 5 Arduino */ No newline at end of file
17 17 #define RX0_GNSS RX0 No newline at end of file
18 18 #define TX0_GNSS TX0 PE1 No newline at end of file
19 19
20 No newline at end of file
20 bool configure(gnss_config_struct*);
No newline at end of file
21 No newline at end of file
21 bool activate();
No newline at end of file
22 No newline at end of file
22 bool deactivate();
No newline at end of file
23 No newline at end of file
23 bool sync_pps();
No newline at end of file
24 bool get_time_info(gnss_precise_time*);
No newline at end of file
25 bool is_locked(); No newline at end of file
26 24
25 No newline at end of file
27 } No newline at end of file
No newline at end of file
26 void te_gnss_scan_baudrate();
No newline at end of file
27 void te_gnss_scan_baud_func();
No newline at end of file
28
No newline at end of file
29
No newline at end of file
30 void te_gnss_wait_to_be_locked();
No newline at end of file
31 void te_gnss_scan_lock_func();
No newline at end of file
32 bool te_gnss_is_locked();
No newline at end of file
33
No newline at end of file
34 void te_gnss_get_pps_data();
No newline at end of file
35 void te_gnss_get_pps_data_funct();
No newline at end of file
36
No newline at end of file
37 void te_gnss_set_position(N9_22);
No newline at end of file
38 No newline at end of file
28 39 #endif /* LIBTE_GNSS_H_ */ No newline at end of file
@@ -8,13 +8,12
8 8 #include <rtc1308.h> No newline at end of file
9 9 #include <Wire.h> No newline at end of file
10 10
No newline at end of file
11 namespace te_rtc{ No newline at end of file
12 11 No newline at end of file
13 12 /*! No newline at end of file
14 13 * \fn initialization No newline at end of file
15 14 * \brief Inicializacion del modulo que controlara al RTC DS1308. No newline at end of file
16 15 */
16 No newline at end of file
17 void initialization(void) { No newline at end of file
18 17 No newline at end of file
19 18 pinMode(CLKIN,OUTPUT); No newline at end of file
20 19 attachInterrupt(PPS,ISR_gnss_pps, RISING); No newline at end of file
@@ -15,8 +15,6
15 15 #include <te_structs.h> No newline at end of file
16 16 No newline at end of file
17 17 extern void ISR_gnss_pps(void);
No newline at end of file
18
No newline at end of file
19 namespace te_rtc{ No newline at end of file
20 18 No newline at end of file
21 19 #define DS1308_CTRL_ID 0x68 No newline at end of file
22 20 #define DS1308_RAM_BASE 0x08 /*!< Direccion base de la memoria RAM */ No newline at end of file
@@ -15,6 +15,6
15 15 //pin ports to system No newline at end of file
16 16 #define LOCK 42 /*!< GNSS receptor LOCK signal PL7 AVR <> 42 ARDUINO MEGA */ No newline at end of file
17 17
18 No newline at end of file
18 No newline at end of file
19 19 No newline at end of file
20 20 #endif /* TE2SAIG_H_ */ No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now