1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 17:25:20 +03:00
Commit graph

14 commits

Author SHA1 Message Date
timecop@gmail.com
28d5927836 Totally rework software serial to provide tx at the same time as rx using only one timer.
First cut at polymorphic serial port implementation.  Split serialPort_t into uartPort_t and serialPort_t.  Calls to uartWrite() can now be replaced with calls to serialWrite().

Replacing calls to serialWriteByte(softSerial_t*, char) with calls to serialWrite(serialPort_t*, char).  This completes the proof of concept for polymorphic serial port implementations (uartPort and softSerialPort).

Renaming isSerialAvailable to uartTotalBytesWaiting.  Renaming serialAvailable to softSerialTotalBytesWaiting.  Adding serialTotalBytesWaiting to serial API and updating calls to the former methods to use the serial API.

Renaming serialRead to softSerialRead.  Adding serialRead to serial API and updating calls to uartRead and softSerialRead to use the serial API.  Renamed uartPrint to serialPrint which now works on any serialPort implementation.

Replacing calls to isUartTransmitEmpty with isSoftSerialTransmitBufferEmpty.  Replacing remaing calls to uartWrite with serialWrite.  Adding isSoftSerialTransmitBufferEmpty to the serial API.  Adding serialSet/GetBaudRate to the serial API.  Since softSerial does not implement serialSetBaudRate some GPS serial initialisation code has been updated.

At this point it is probably possible to switch around all the ports and use a software serial implementation if desired.

By Dominic Clifton / https://github.com/hydra/baseflight/

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@423 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-01 00:07:44 +00:00
dominicc1974@gmail.com
4c191270bf Changing all line endings to WINDOWS line endings (CR+LF) and removing all End-Of-Line whitespace and using spaces instead of tabs. Please ensure you configure your editors and tools to follow suit. If using git please enable autocrlf in your .git/config file.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@393 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-06 23:14:48 +00:00
timecop@gmail.com
77a241bd5f Software serial implementation. Compile with SOFTSERIAL_19200_LOOPBACK to test. Without the define the implementation will have no effect. Next step is to add a 'feature' to enable softserial and settings for the baud rate. Note, only READ is currently supported, write will come later. The highlevel api calls are used in main.c. Uart implementation needs cleanup to make serial port code generic, see uart files for details.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@390 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-08-28 01:26:10 +00:00
timecop@gmail.com
1441d46323 Fixed issue #15, new uart building under gcc toolchain, thanks!
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@383 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-08-22 13:37:45 +00:00
timecop@gmail.com
cbb580f753 rewritten drv_uart to suck slightly less
tested w/o GPS

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@382 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-08-22 07:48:07 +00:00
timecop@gmail.com
4bd505972d renaming of serial bool returning vars into isFoo(), also fixed bool returned as uint16_t type
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@354 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-06-25 07:09:47 +00:00
timecop@gmail.com
ab75f221bb new printf() is too fucking fast, causing DMA buffer overrun in UART transmit. fixed that. Doesn't affect GCC targets.
got rid of more 16bit ints in new pid controller.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@348 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-06-19 03:10:45 +00:00
timecop@gmail.com
a139b96de6 fixed bug with MTK init - stuff was sent without delay while changing baudrates, and it would wreck stuff - changing rate mid-buffer. oops. should work now.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@216 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-12 02:15:14 +00:00
timecop@gmail.com
b2bc4bf9e6 Finished merging GPS autoconfig + ubx protocol code.
use set gps_type=X in cli to configure, where X=0 if NMEA (no special config), X=1 if UBX (enters ubx binary mode), X=2 if MTK (sets up MTK for 5Hz operation).
changed default GPS rate to 115200 baud
added baudrate reset stuff to UART driver for GPS autoconfigure
NONE of this is tested (except UBX working on my window)

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@204 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-04 16:26:46 +00:00
timecop@gmail.com
80d7ba604b merged multiwii GPS code from 1097. still no support for UBX, or GPS auto-config, soon.
added interrupt pins from mag/mma/mpu for rev4 hardware. nothing done with them yet - candidates for EXTI use
added tx buffer to UART2 (gps) in preparation for auto-config


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@203 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-04 09:13:59 +00:00
timecop
58eb2b966f added configurable motor and servo period settings (50-498Hz). both set by cli, default is 50 for servo, 400 for motors.
removed feature digital_servo since its now set by cli instead.
added proper tx end check into uart, to remove delay inside printing out set values and tx buffer overrun during help()
instead of passing a bunch of params to pwm driver, made a config struct
fixed a bug in gps baudrate
fixed typo in stmloader.c
whitespace / indentation cleanups in various drivers

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@137 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-30 09:49:00 +00:00
timecop
c98b6b30af main uart baud rate commit before tearing stuff up
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@134 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-29 06:00:22 +00:00
timecop
96829b7306 synced code with multiwii 2.0 release
split uart2 initialization inside drv_uart. added receive data callback to use either with GPS or spektrum satellite
added spektrum satellite support, also freeing up 4 motor outputs for hexa/octo/camstab
configurable acc lpf and gyro lpf via cli
configurable (build-time) temperature lpf on baro. seems mostly useless.
fixed a nice boner bug in mag code which ended up multiplying magADC twice with magCal data.
fixed mpu3050 driver to allow configurable lpf, also broke other stuff in the process. considering moving this sort of stuff to "init" struct for sensor.
pwm driver rewritten to fully disable pwm/ppm inputs (such as using spektrum satellite case)
cleaned up double math in gps.c to use sinf/cosf etc
removed TRUSTED_ACCZ since its useless anyway
whitespace cleanup

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@130 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-26 15:28:36 +00:00
timecop
5091f3e9ff moved source files around in preparation to adding makefile build way
added makefile (thx gke)
added linker script (thx gke)
moved startups into src directory as well
no code changes.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@105 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-06 04:41:23 +00:00
Renamed from drv_uart.h (Browse further)