##// END OF EJS Templates
Se añade primera versión del módulo del módulo de adquisición. Revisar las notas de versión. Posiblemente tenga bugs de sincronización en casos de PPS cercal LOCK.
Se añade primera versión del módulo del módulo de adquisición. Revisar las notas de versión. Posiblemente tenga bugs de sincronización en casos de PPS cercal LOCK.

File last commit:

r209:210
r218:219
Show More
gnss.h
89 lines | 1.6 KiB | text/x-c | CLexer
aaguilar
codigo inicial de saigd (software de embebido) y timeEngined (firmware de tarjeta timeEngine)
r132 /*
* gnss.h
*
aaguilar
r175 * Created on: Dec 29, 2014
* Author: aras
aaguilar
codigo inicial de saigd (software de embebido) y timeEngined (firmware de tarjeta timeEngine)
r132 */
aaguilar
r209 #pragma once
aaguilar
r175 #ifndef LIBTE_GNSS_H_
#define LIBTE_GNSS_H_
aaguilar
codigo inicial de saigd (software de embebido) y timeEngined (firmware de tarjeta timeEngine)
r132
aaguilar
r209
aaguilar
r175 #include "te_structs.h"
aaguilar
r209 #include "../libnmea++/libnmea++.h"
aaguilar
codigo inicial de saigd (software de embebido) y timeEngined (firmware de tarjeta timeEngine)
r132
aaguilar
update de firmware timegine. RTC terminado
r196
aaguilar
r209 namespace te_gnss{
aaguilar
codigo inicial de saigd (software de embebido) y timeEngined (firmware de tarjeta timeEngine)
r132
aaguilar
r209 //pin ports to GNSS
#define PPS 2 /*!< PE4 AVR <> 2 Arduino */
#define ENB 5 /*!< PE3 AVR <> 5 Arduino */
#define RX0_GNSS RX0
#define TX0_GNSS TX0 PE1
aaguilar
codigo inicial de saigd (software de embebido) y timeEngined (firmware de tarjeta timeEngine)
r132
aaguilar
r209 uint16_t bauds[]{4800,9600};
aaguilar
update de firmware timegine. RTC terminado
r196
aaguilar
r209 #define BAUDRATE(x) bauds[x]
#define BAUD_IDX_MAX 5
#define LOCK_IDX_MAX 100
aaguilar
update de firmware timegine. RTC terminado
r196
aaguilar
r209 #define GNSS_PORT 0x01
#define RBP_PORT 0x02
void scan_baud_func();
void scan_lock_func();
void get_pps_data_func();
aaguilar
CONTROL
r203 bool configure(gnss_config_struct &gcs);
bool activate();
bool deactivate();
bool set_baudrate(uint16_t baud);
bool wait_to_be_locked();
bool get_pps_data(bool raw);
bool set_position(fix32 lat,fix32 lon);
bool activate_nmea_frames(uint16_t mask);
aaguilar
update de firmware timegine. RTC terminado
r196
aaguilar
CONTROL
r203 inline void ISR_pps();
aaguilar
update de firmware timegine. RTC terminado
r196
aaguilar
CONTROL
r203 void process_frame(const char* fr);
aaguilar
update de firmware timegine. RTC terminado
r196
aaguilar
CONTROL
r203 void scan_baudrate();
aaguilar
r209 void push(void (*pfunc)());
aaguilar
CONTROL
r203
aaguilar
r209 void pop(void (*pfunc)());
aaguilar
CONTROL
r203
aaguilar
r209
aaguilar
CONTROL
r203 void write_baud(uint8_t port, uint16_t baud);
void open(uint8_t port);
void writeline(uint8_t port, char* frame);// abre y cierra puerto
char* readline(uint8_t port);
void close(uint8_t port);
bool is_gnss_frame_valid();
bool is_locked();
volatile bool scan_baud_success;
volatile bool scan_baud_finish;
volatile bool scan_lock_success;
volatile bool scan_lock_finish;
volatile uint8_t baud_idx;
volatile uint8_t lock_idx;
void (*pfunc_pps)();
uint8_t stk_ptr;
aaguilar
r209 void (*stack[5])();
aaguilar
CONTROL
r203
bool is_raw;
aaguilar
r209 }
aaguilar
CONTROL
r203
aaguilar
r175 #endif /* LIBTE_GNSS_H_ */