Rev 783 | Rev 826 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 783 | Rev 800 | ||
---|---|---|---|
Line 16... | Line 16... | ||
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 | ****************************************************************************/ |
Line -... | Line 20... | ||
- | 20 | ||
20 | 21 | #include "main.h" |
|
21 | #include <avr/io.h> |
22 | #include <avr/io.h> |
22 | #include <avr/eeprom.h> |
23 | #include <avr/eeprom.h> |
23 | #include <avr/pgmspace.h> |
24 | #include <avr/pgmspace.h> |
24 | #include <avr/interrupt.h> |
25 | #include <avr/interrupt.h> |
25 | #include <util/delay.h> |
26 | #include <util/delay.h> |
26 | #include "max7456_software_spi.h" |
27 | #include "max7456_software_spi.h" |
27 | #include "config.h" |
- | |
28 | #include "main.h" |
28 | #include "config.h" |
29 | #include "buttons.h" |
29 | #include "buttons.h" |
Line 30... | Line 30... | ||
30 | #include "usart1.h" |
30 | #include "usart1.h" |
Line 60... | Line 60... | ||
60 | } else { |
60 | } else { |
61 | if (verbose) write_ascii_string_pgm(2, 2, ee_msg[1]); // Loading data |
61 | if (verbose) write_ascii_string_pgm(2, 2, ee_msg[1]); // Loading data |
62 | } |
62 | } |
63 | } |
63 | } |
Line 64... | Line -... | ||
64 | - | ||
65 | 64 | ||
66 | /** |
65 | /** |
67 | * save data to eeprom |
66 | * save data to eeprom |
68 | */ |
67 | */ |
69 | void save_eeprom() { |
68 | void save_eeprom() { |
Line 85... | Line 84... | ||
85 | #if FCONLY |
84 | #if FCONLY |
86 | write_ascii_string_pgm(2, 3, PSTR("FC only Mode")); |
85 | write_ascii_string_pgm(2, 3, PSTR("FC only Mode")); |
87 | #else |
86 | #else |
88 | write_ascii_string_pgm(2, 3, PSTR("NaviCtrl Mode")); |
87 | write_ascii_string_pgm(2, 3, PSTR("NaviCtrl Mode")); |
Line 89... | Line 88... | ||
89 | 88 | ||
90 | usart1_EnableTXD(); |
89 | usart1_EnableTXD(); |
91 | usart1_puts_pgm(PSTR(REQUEST_UART_TO_FC)); |
90 | usart1_puts_pgm(PSTR(REQUEST_UART_TO_FC)); |
92 | usart1_DisableTXD(); |
91 | usart1_DisableTXD(); |
Line 93... | Line 92... | ||
93 | #endif |
92 | #endif |
Line 94... | Line 93... | ||
94 | 93 | ||
Line 95... | Line 94... | ||
95 | 94 | ||
96 | usart1_request_blocking('Q', PSTR(REQUEST_CURRENT_SETTING)); |
95 | usart1_request_blocking('Q', PSTR(REQUEST_CURRENT_SETTING)); |
Line 97... | Line 96... | ||
97 | 96 | ||
98 | //write_ascii_char(4 + 12 * 30, rxd_buffer[2]); |
97 | //write_ascii_char(4 + 12 * 30, rxd_buffer[2]); |
99 | 98 | ||
100 | paramset_serial setting; |
99 | paramset_serial setting; |
101 | setting = *((paramset_serial*)pRxData); |
100 | setting = *((paramset_serial*)pRxData); |
102 | 101 | ||
103 | write_ascii_string_pgm(2, 6, PSTR("Setting: ")); |
102 | write_ascii_string_pgm(2, 6, PSTR("Setting: ")); |
104 | write_ndigit_number_u(11, 6, setting.SettingsIndex, 1, 1); |
103 | write_ndigit_number_u(11, 6, setting.SettingsIndex, 1, 1); |
105 | write_ascii_string_len(13, 6, setting.param.Name, 12); |
104 | write_ascii_string_len(13, 6, setting.param.Name, 12); |
106 | 105 | ||
107 | uint8_t cells = 0; |
106 | uint8_t cells = 0; |
108 | write_ascii_string_pgm(2, 8, PSTR("Battery:")); // Guessing Number of Cells |
107 | write_ascii_string_pgm(2, 8, PSTR("Battery:")); // Guessing Number of Cells |
109 | if (CELL_NUM == -1) { |
108 | if (CELL_NUM == -1) { |
110 | #define MAX_CELL_VOLTAGE 43 // max cell volatage for LiPO |
109 | #define MAX_CELL_VOLTAGE 43 // max cell volatage for LiPO |
111 | 110 | ||
112 | if (setting.param.UnterspannungsWarnung < 50) { |
111 | if (setting.param.UnterspannungsWarnung < 50) { |
113 | // up to 6s LiPo, less than 2s is technical impossible |
112 | // up to 6s LiPo, less than 2s is technical impossible |
114 | for(cells = 2; cells < 7; cells++) { |
113 | for (cells = 2; cells < 7; cells++) { |
115 | if(UBat < cells * MAX_CELL_VOLTAGE) break; |
114 | if (UBat < cells * MAX_CELL_VOLTAGE) break; |
116 | } |
115 | } |
117 | 116 | ||
118 | min_voltage = cells * setting.param.UnterspannungsWarnung; |
117 | min_voltage = cells * setting.param.UnterspannungsWarnung; |
119 | } else { |
118 | } else { |
120 | min_voltage = setting.param.UnterspannungsWarnung; |
119 | min_voltage = setting.param.UnterspannungsWarnung; |
121 | cells = min_voltage / CELL_VOLT_MIN; |
120 | cells = min_voltage / CELL_VOLT_MIN; |
122 | } |
121 | } |
123 | //write_ndigit_number_u(10, 13, setting.param.UnterspannungsWarnung, 3, 1); |
122 | //write_ndigit_number_u(10, 13, setting.param.UnterspannungsWarnung, 3, 1); |
Line 124... | Line 123... | ||
124 | } else { |
123 | } else { |
125 | cells = CELL_NUM; |
124 | cells = CELL_NUM; |
126 | min_voltage = cells * CELL_VOLT_MIN; |
125 | min_voltage = cells * CELL_VOLT_MIN; |
127 | } |
126 | } |
128 | 127 | ||
129 | max_voltage = cells * CELL_VOLT_MAX; |
128 | max_voltage = cells * CELL_VOLT_MAX; |
Line 146... | Line 145... | ||
146 | 145 | ||
147 | // request version from board |
146 | // request version from board |
148 | #if FCONLY |
147 | #if FCONLY |
149 | //usart1_request_mk_data(0, 'v', 0); |
148 | //usart1_request_mk_data(0, 'v', 0); |
150 | write_ascii_string_pgm(2, 11, PSTR("FC VERSION: ........")); |
149 | write_ascii_string_pgm(2, 11, PSTR("FC VERSION: ........")); |
151 | usart1_request_blocking('V', PSTR(REQUEST_FC_VERSION)); |
150 | usart1_request_blocking('V', PSTR(REQUEST_FC_VERSION)); |
152 | #else |
151 | #else |
153 | usart1_request_nc_uart(); |
152 | usart1_request_nc_uart(); |
154 | //usart1_request_mk_data(1, 'v', 0); |
153 | //usart1_request_mk_data(1, 'v', 0); |
155 | write_ascii_string_pgm(2, 11, PSTR("NC VERSION: ........")); |
154 | write_ascii_string_pgm(2, 11, PSTR("NC VERSION: ........")); |
156 | usart1_request_blocking('V', PSTR(REQUEST_NC_VERSION)); |
155 | usart1_request_blocking('V', PSTR(REQUEST_NC_VERSION)); |
157 | #endif |
156 | #endif |
158 | str_VersionInfo VersionInfo; |
157 | str_VersionInfo VersionInfo; |
Line 159... | Line 158... | ||
159 | VersionInfo = *((str_VersionInfo*)pRxData); |
158 | VersionInfo = *((str_VersionInfo*)pRxData); |