1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-24 00:35:39 +03:00
Commit graph

27 commits

Author SHA1 Message Date
Dominic Clifton
d19a5e7046 Cleanup project structure. Update unit test Makefile to place object
files in obj/test
2014-05-31 22:43:06 +01:00
Dominic Clifton
e5c5339306 Merge branch 'master-cleanflight-msptelemetry' of github.com:treymarc/baseflight into treymarc-master-cleanflight-msptelemetry
Conflicts:
	src/serial_msp.h
	src/telemetry_common.h
2014-05-25 00:32:41 +01:00
Dominic Clifton
b37bace5c1 HoTT update.
There's a number of changes in this commit, all related.

Improved efficiency of preparing HoTT messages.

All HoTT message data is no-longer reset each time, going forward old
data is re-used unless it is updated.  This should help with GPS
co-ordinates too since they were erased from subsequent responses when
ideally the last-known co-ordinates should be transmitted each time.

The previous update was sending one too many bytes due to the
aligned/padded uint16_t values in the HoTT data structures.  There were
two solutions, use #pragma to pack the structure or avoid larger types
in the structures, the latter made sense and results in more portable
code since it's a wire format.

Updated HoTT structures to use latest message structure from Ardupilot.
Currently the variables are in underscore_format, that will likely
change in future.

Cleaned up and deleted old ported code that was #ifdef'd out.  Some test
code still remains for now.  This will be deleted in due course.

Introduced bitmask for EAM alarm flags.

Corrected documentation.
2014-05-22 17:25:51 +01:00
Dominic Clifton
5d460766e9 RXMSP is no longer a serial rx provider since it uses MSP and not it's
own dedicated serial port.
Added a feature to enable/disable RX_MSP.
Renamed feature SERIALRX to RX_SERIAL.
Renamed feature PARALLEL_PWM to RX_PARALLEL_PWM
Renamed PPM to RX_PPM.

Update serial configuration checking to better support Serial RX and
telemetry by verifiying serial port features and supported baud rates.

It's now possible to use a low-speed serial rx provider via softserial -
only problem is all the current serial rx providers are 100000/115200
baud.  The code changes however open the door for using serial rx and
any capable serial port such as uart3-5 on the STM32F30x

It's also now possible to use GPS at low speeds on software serial
ports.
2014-05-12 13:23:20 +01:00
Dominic Clifton
bf90246c95 Add callback support to software serial.
Also fixed problem with shared serial port detection.
2014-05-10 16:12:26 +01:00
Dominic Clifton
1777d8feda First cut of configurable serial port functionality.
Currently port usage is hard-coded to the default port layout, cli
commands are coming in a future commit.

This decouples all code from the global 'serialPorts' structure which
has been removed.  Any code that needs to use a serial port can use
findOpenSerialPort() and openSerialPort() and maintain it's own
reference to the port.

Ports can switch between functions.  e.g. by default
cli/msp/telemetry/gps
passthrough all use USART1.  Each port maintains it's current function.
see begin/endSerialPortFunction.

There are only certain combinations of serial port functions that are
supported, these are listed in serialPortFunctionScenario_e.

This commit also adds a few 'static' keywords to variables that should
have been.

There a a few other minor fixes and tweaks to various bits of code that
this uncovered too.
2014-05-09 23:39:10 +01:00
Dominic Clifton
8322bba5f1 Fixing use of softserial for telemetry that was also broken in
92bed4a33d
2014-05-06 14:11:52 +01:00
Dominic Clifton
92bed4a33d STM32F30x - Working parallel PWM. Timer IRQ handle was not defined for
TIM8 correctly. Software serial conficted with parallel PWM input. Fixed
crash due to incorrect timerConfig index calculation code.

The crash occurred when capture compare interrupt handlers attempted to
call an invalid callback.

Note: the crash does not affect existing baseflight code since the
formula is OK when using a 2 dimensional array with equal dimensions.

Formula details here:
https://docs.google.com/spreadsheets/d/1UuxnC0VKiprvt1wt3KXffefEWJUb_-ILFLQuP377Anw
2014-05-02 17:09:41 +01:00
Dominic Clifton
fbe2f82c05 STM32F30x - Enable serial PWM (PPM) input on PWM1.
This might also fix parallel PWM input too, but untested.
2014-05-01 20:20:24 +01:00
Dominic Clifton
cb63f6e2b5 Remove telemetry_*.c's dependency on mw.h/board.h.
Finally, the only dependency on mw.h/board.h is now mw.c itself.
2014-04-24 01:44:58 +01:00
treymarc
b14b058fa0 add msp telemtry 2014-04-22 13:48:57 +02:00
Dominic Clifton
f8d0dd98f7 Split config_storage.h into config_master.h and config_profile.h to
separate concerns and help reduce and clarify dependencies.

cfg and mcfg are too similarly named and are not obvious.  Renamed cfg
to currentProfile and mcfg to masterConfig.  This will increase source
code line length somewhat but that's ok; lines of code doing too much
are now easier to spot.
2014-04-21 23:08:25 +01:00
Dominic Clifton
8bda006d97 fix FY90Q build. 2014-04-19 01:07:23 +01:00
Dominic Clifton
a7e4c859bd decouple cli/msp from each other. relocated non-msp code into
serial_common.c/h. decouple runtime_config from serial ports.  decouple
buzzer from serial ports.  decouple opening of the main serial port from
the msp code.  decouple serial rx providers from runtime_config.  rename
core_t to serialPorts_t since it only contained serial ports.  It's now
clear which files use serial ports based on the header files they
include.
2014-04-19 01:01:31 +01:00
Dominic Clifton
64d16e1987 Relocated used code from board.h into appropriate headers, deleted
unused code.
2014-04-17 15:02:41 +01:00
Dominic Clifton
001de4cdf3 Move FY90q acc/gyro code to accgyro_fy90q.c. Update ADC drivers so they
do not include "board.h". It is now clear what all ADC drivers need to
compile and what was unnecessarily included before.

Note: FY90Q make target now compiles successfully, it was broken for
various reasons before.
2014-04-16 18:58:20 +01:00
Dominic Clifton
3bd4cd2ed2 Use slightly flatter directory structure since some developers did not
like too many folders.
Extracted code from some files into separate files to fit with the new
layout.
2014-04-08 22:07:37 +01:00
Dominic Clifton
9fa99cf9f5 Re-organize files by topic
Keil project not updated, I have no way to verify it.

Note, mw.c, drv_pwm.c and drv_system.c contain code for too many topics.
Later commits will relocate the code as appropriate.

Not even looked at utils yet.  'Utils' is a bad naming practice and is a
synonym for 'too lazy to find the right file/name'.
2014-04-08 16:11:17 +01:00
Dominic Clifton
1838703853 Code style cleanups. 2014-04-08 00:00:21 +01:00
Dominic Clifton
00cdbe3438 Fixing typo in telemetry port configuration logic. 2014-04-07 22:44:14 +01:00
Dominic Clifton
c26d6362b1 Rename some telemetry variables and methods to better indicate the
intent of the code and thus the readability and maintainability of it.
2014-04-07 22:31:20 +01:00
Dominic Clifton
9b86d0d833 Update common telemetry code so that it verifies that the telemetry
configuration is valid.

Internally this uses a flag so that the configuration is not continually
verified.
2014-04-07 22:23:11 +01:00
Dominic Clifton
6b1a6332b9 Ensure that telemetry state is always updated after initialising
telemetry so that providers can configure the telemetry port as
applicable.
2014-04-07 21:38:50 +01:00
Dominic Clifton
ac0f3e9186 Move port telemetry port configuration logic into common telemetry code.
Update software serial to support RX, TX or RX&TX modes.  Update serial
API to allow on-the-fly changing of serial port mode.  Update HoTT to
change serial port mode when transmitting.
2014-04-07 16:39:09 +01:00
Dominic Clifton
3007d3cbdc Improving code readability by aligning comments with code and removing
comments that duplicated code.  Comments are harder to refactor than
code and become stale.  Updating default and limit values for some
settings to use enum values.
2014-04-07 01:05:33 +01:00
Dominic Clifton
3ca868a59f Enable HoTT as a telemetry provider.
Import cGiensen's HoTT telemetry implementation - untested.
2014-04-06 23:51:48 +01:00
Dominic Clifton
1cbe166c49 Move common telemetry code to telemetry_common.c/.h 2014-04-06 23:10:29 +01:00