Subversion Repositories Projects

Rev

Rev 2598 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2598 Rev 2601
1
/****************************************************************************
1
/****************************************************************************
2
 *   Copyright (C) 2009-2017 by Claas Anders "CaScAdE" Rathje               *
2
 *   Copyright (C) 2009-2018 by Claas Anders "CaScAdE" Rathje               *
3
 *   admiralcascade@gmail.com                                               *
3
 *   admiralcascade@gmail.com                                               *
4
 *   Project-URL: http://www.mylifesucks.de/oss/c-osd/                      *
4
 *   Project-URL: http://www.mylifesucks.de/oss/c-osd/                      *
5
 *                                                                          *
5
 *                                                                          *
6
 *   This program is free software; you can redistribute it and/or modify   *
6
 *   This program is free software; you can redistribute it and/or modify   *
7
 *   it under the terms of the GNU General Public License as published by   *
7
 *   it under the terms of the GNU General Public License as published by   *
8
 *   the Free Software Foundation; either version 2 of the License.         *
8
 *   the Free Software Foundation; either version 2 of the License.         *
9
 *                                                                          *
9
 *                                                                          *
10
 *   This program is distributed in the hope that it will be useful,        *
10
 *   This program is distributed in the hope that it will be useful,        *
11
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
11
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
12
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
12
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
13
 *   GNU General Public License for more details.                           *
13
 *   GNU General Public License for more details.                           *
14
 *                                                                          *
14
 *                                                                          *
15
 *   You should have received a copy of the GNU General Public License      *
15
 *   You should have received a copy of the GNU General Public License      *
16
 *   along with this program; if not, write to the                          *
16
 *   along with this program; if not, write to the                          *
17
 *   Free Software Foundation, Inc.,                                        *
17
 *   Free Software Foundation, Inc.,                                        *
18
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.              *
18
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.              *
19
 ****************************************************************************/
19
 ****************************************************************************/
20
 
20
 
21
#ifndef _USART1_H
21
#ifndef _USART1_H
22
#define _USART1_H
22
#define _USART1_H
23
 
23
 
24
#include <avr/io.h>
24
#include <avr/io.h>
25
#include <avr/interrupt.h>
25
#include <avr/interrupt.h>
26
#include <util/delay.h>
26
#include <util/delay.h>
27
 
27
 
28
#define baud 57600
28
#define baud 57600
29
 
29
 
30
#define RXD_BUFFER_LEN          250
30
#define RXD_BUFFER_LEN          250
31
#define TXD_BUFFER_LEN          20 // not so much needed
31
#define TXD_BUFFER_LEN          20 // not so much needed
32
 
32
 
33
#define REQUEST_OSD_DATA "#bo?]==EG\r"
33
#define REQUEST_OSD_DATA "#bo?]==EG\r"
34
//#define REQUEST_OSD_DATA "#co?]==EH\r"
34
//#define REQUEST_OSD_DATA "#co?]==EH\r"
35
#define REQUEST_DBG_DATA "#ad?]==D{\r"
35
#define REQUEST_DBG_DATA "#ad?]==D{\r"
36
#define REQUEST_DBG_DISABLE "#ad====DY\r"
36
#define REQUEST_DBG_DISABLE "#ad====DY\r"
37
 
37
 
38
#define REQUEST_FC_VERSION "#av====Dk\r"
38
#define REQUEST_FC_VERSION "#av====Dk\r"
39
#define REQUEST_NC_VERSION "#bv====Dl\r"
39
#define REQUEST_NC_VERSION "#bv====Dl\r"
40
 
40
 
41
#define REQUEST_CURRENT_SETTING "#bq|nZBFy\r"
41
#define REQUEST_CURRENT_SETTING "#bq|nZBFy\r"
42
#define REQUEST_UART_TO_FC "#cu=IfREv\r"
42
#define REQUEST_UART_TO_FC "#cu=IfREv\r"
43
 
43
 
44
#define REQUEST_3DDATA  "#cc?]==D|\r"
44
#define REQUEST_3DDATA  "#cc?]==D|\r"
45
 
45
 
46
 
46
 
47
extern volatile uint8_t rxd_buffer_locked;
47
extern volatile uint8_t rxd_buffer_locked;
48
extern volatile uint8_t rxd_buffer[RXD_BUFFER_LEN];
48
extern volatile uint8_t rxd_buffer[RXD_BUFFER_LEN];
49
//extern volatile uint8_t txd_buffer[TXD_BUFFER_LEN];
49
//extern volatile uint8_t txd_buffer[TXD_BUFFER_LEN];
50
extern volatile uint8_t ReceivedBytes;
50
extern volatile uint8_t ReceivedBytes;
51
extern volatile uint8_t *pRxData;
51
extern volatile uint8_t *pRxData;
52
extern volatile uint8_t RxDataLen;
52
extern volatile uint8_t RxDataLen;
53
 
53
 
54
/**
54
/**
55
 * init usart1
55
 * init usart1
56
 */
56
 */
57
void usart1_init();
57
void usart1_init();
58
 
58
 
59
/**
59
/**
60
 * disable the txd pin of usart1
60
 * disable the txd pin of usart1
61
 */
61
 */
62
void usart1_DisableTXD(void);
62
void usart1_DisableTXD(void);
63
 
63
 
64
/**
64
/**
65
 * enable the txd pin of usart1
65
 * enable the txd pin of usart1
66
 */
66
 */
67
void usart1_EnableTXD(void);
67
void usart1_EnableTXD(void);
68
 
68
 
69
/**
69
/**
70
 * send a PGM<string> throught usart1
70
 * send a PGM<string> throught usart1
71
 */
71
 */
72
void usart1_puts_pgm(const char*);
72
void usart1_puts_pgm(const char*);
73
 
73
 
74
/**
74
/**
75
 * transmit interrupt handler
75
 * transmit interrupt handler
76
 * unused
76
 * unused
77
 */
77
 */
78
ISR(USART1_TXC_vect);
78
ISR(USART1_TXC_vect);
79
 
79
 
80
/**
80
/**
81
 * receive data through usart1
81
 * receive data through usart1
82
 * portions taken and adapted from
82
 * portions taken and adapted from
83
 * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Fbranches%2FV0.72p+Code+Redesign+killagreg%2Fuart0.c
83
 * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Fbranches%2FV0.72p+Code+Redesign+killagreg%2Fuart0.c
84
 */
84
 */
85
ISR(USART1_RXC_vect);
85
ISR(USART1_RXC_vect);
86
 
86
 
87
/**
87
/**
88
 * Decode the recevied Buffer
88
 * Decode the recevied Buffer
89
 * portions taken and adapted from
89
 * portions taken and adapted from
90
 * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.72p%2Fuart.c
90
 * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.72p%2Fuart.c
91
 */
91
 */
92
void Decode64(void);
92
void Decode64(void);
93
 
93
 
94
/**
94
/**
95
 * Request Data through usart1 until a answer is received
95
 * Request Data through usart1 until a answer is received
96
 */
96
 */
97
void usart1_request_blocking(unsigned char answer, const char* message);
97
void usart1_request_blocking(unsigned char answer, const char* message);
98
 
98
 
99
/**
99
/**
100
 * Request UART Redirect from NC to itself
100
 * Request UART Redirect from NC to itself
101
 */
101
 */
102
void usart1_request_nc_uart(void);
102
void usart1_request_nc_uart(void);
103
 
103
 
104
/**
104
/**
105
 * request Data through USART in special MK format by adding checksum and
105
 * request Data through USART in special MK format by adding checksum and
106
 * encode data in modified Base64
106
 * encode data in modified Base64
107
 * portions taken and adapted from
107
 * portions taken and adapted from
108
 * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.72p%2Fuart.c
108
 * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.72p%2Fuart.c
109
 */
109
 */
110
//void sendMKData(unsigned char, unsigned char, unsigned char*, unsigned char);
110
//void sendMKData(unsigned char, unsigned char, unsigned char*, unsigned char);
111
 
111
 
112
/**
112
/**
113
 * short script to directly send a request thorugh usart including en- and disabling it
113
 * short script to directly send a request thorugh usart including en- and disabling it
114
 * where <address> is the address of the receipient, <label> is which data set to request
114
 * where <address> is the address of the receipient, <label> is which data set to request
115
 * and <ms> represents the milliseconds delay between data
115
 * and <ms> represents the milliseconds delay between data
116
 */
116
 */
117
//void usart1_request_mk_data(uint8_t, char, uint8_t);
117
//void usart1_request_mk_data(uint8_t, char, uint8_t);
118
 
118
 
119
#endif
119
#endif
120
 
120