Commit Graph
98 Commits
Author SHA1 Message Date
Daniel Agar d3301ba826 delete PWM_SERVO_GET_TRIM_PWM 2022-01-10 09:51:11 -05:00
Daniel Agar 8de59dad32 delete PWM_SERVO_SET_TERMINATION_FAILSAFE 2022-01-10 09:51:11 -05:00
Daniel Agar 1739ecc981 delete PWM_SERVO_SET_FORCE_FAILSAFE 2022-01-10 09:51:11 -05:00
Daniel Agar b7ed4fd3e0 delete PWM_SERVO_SET_DISARMED_PWM 2022-01-10 09:51:11 -05:00
Daniel Agar 551a31ce2f delete PWM_SERVO_SET_FAILSAFE_PWM 2022-01-10 09:51:11 -05:00
Beat Küng da1df5352c fix pwm: only update oneshot timers owned by the current pwm_out instance
This fixes the case where oneshot was enabled with multi-instance pwm_out,
triggering oneshot updates too close to each other and as a result could
lead to spinning motors while disarmed.
2021-10-18 18:45:19 -04:00
Peter van der Perk d5e3e9a7bc [Kconfig] Decompose Kconfig, now each module has its own Kconfig
Which is better for versioning and decomposability
2021-10-07 10:09:01 -04:00
David Sidrane 1b80018f30 systemcmds:Use inttypes 2021-06-16 17:07:47 +02:00
Daniel Agar 9b1cf98474 drivers/pwm_out: fix launch for non-multi case
- skip _objects[1] access if only 1 possible instance
 - command line request new mode via atomic
2021-03-23 10:40:22 -04:00
Lorenz Meier 8cc3247d21 PWM command: Switch default to status, leave info 2021-03-17 22:03:18 +01:00
Daniel Agar e7722b11eb pwm_out multi-instance support
PX4 uses banks of 8 outputs as a logical structure. Boards that have
more outputs than 8 get multiple instances. This is an arbitrary choice
that helps with overall structure and enables the mixing of different
device classes (like FMU, IO or UAVCAN).
2021-03-17 22:03:18 +01:00
Daniel Agar de4f594937 DriverFramework purge
The bulk of this change was tightly coupled and needed to be deleted in one pass. Some of the smaller changes were things that broke as a result of the initial purge and subsequently fixed by further eradicating unnecessary platform differences. Finally, I deleted any dead code I came across in the related files I touched while going through everything.

 - DriverFramework (src/lib/DriverFramework submodule) completely removed
 - added dspal submodule in qurt platform (was brought in via DriverFramework)
 - all df wrapper drivers removed
 - all boards using df wrapper drivers updated to use in tree equivalents
 - unused empty arch/board.h on posix and qurt removed
 - unused IOCTLs removed (pub block, priv, etc)
 - Integrator delete methods only used from df wrapper drivers
 - commander: sensor calibration use "NuttX version" everywhere for now
 - sensors: update to px4_{open, read, close} instead of DevMgr wrapper (adc open for analog differential pressure)
 - battery_status: update to px4_{open, read, close} instead of DevMgr wrapper (adc open for analog differential pressure)
 - cdev cleanup conflicting typedefs and names with actual OS (pollevent_t, etc)
 - load_mon and top remove from linux boards (unused)
 - delete unused PX4_MAIN_FUNCTION
 - delete unused getreg32 macro
 - delete unused SIOCDEVPRIVATE define
 - named each platform tasks consistently
 - posix list_devices and list_topics removed (list_files now shows all virtual files)
2020-01-13 14:07:03 -05:00
Beat Küng 3198610f85 src/platforms: move all headers to platforms/common/include/px4_platform_common
and remove the px4_ prefix, except for px4_config.h.

command to update includes:
for k in app.h atomic.h cli.h console_buffer.h defines.h getopt.h i2c.h init.h log.h micro_hal.h module.h module_params.h param.h param_macros.h posix.h sem.h sem.hpp shmem.h shutdown.h tasks.h time.h workqueue.h; do for i in $(grep -rl 'include <px4_'$k src platforms boards); do sed -i 's/#include <px4_'$k'/#include <px4_platform_common\/'$k/ $i; done; done
for in $(grep -rl 'include <px4_config.h' src platforms boards); do sed -i 's/#include <px4_config.h/#include <px4_platform_common\/px4_config.h'/ $i; done

Transitional headers for submodules are added (px4_{defines,log,time}.h)
2019-10-30 11:48:47 +01:00
Matthias Grob e843090383 Replace a lot of memset with {} initializers 2019-10-15 10:01:03 -04:00
Daniel Agar 78ef8aab2d STACK_MAIN increase default 1024 -> 2048 2019-08-30 19:11:51 -07:00
Beat Küng d8b013355c PRINT_MODULE_USAGE_PARAM_{INT,FLOAT}: add support to ignore the default value 2019-02-08 09:29:46 +01:00
Julian Oes d70b0f1c8c Replace sleep with px4_sleep
This is another step to isolate time from the system.
2018-12-22 10:32:18 +01:00
Julian Oes 5b9dea5604 Replacing usleep with px4_usleep
This is a step towards isolating time from the system.
2018-12-22 10:32:18 +01:00
Hamish Willee 11364c0e01 Improve forcefail/terminatefail docs 2018-12-10 15:30:53 -08:00
Beat Küng 4d05a74aeb pwm.cpp: use px4_get_parameter_value 2018-09-25 07:53:29 +02:00
bresch 740e409016 PWM - Add PWM_MIN and PWM_MAX parameters for MAIN and AUX (#10452) 2018-09-16 18:07:29 -04:00
David Sidrane 945a532260 pwm:Use test mode in steps command 2018-09-13 08:45:36 +02:00
David Sidrane 49f1540c30 pwm:Add test mode 2018-09-13 08:45:36 +02:00
bresch 04c765f497 Failsafe PWM - Add PWM_MAIN/AUX_FAILx parameters to set "failsafe" values. 2018-08-28 11:23:25 -04:00
Daniel Agar d73d20bcce systemlib delete unused systemlib.h 2018-06-12 09:06:30 +02:00
Daniel Agar ea3acb7121 cmake remove circular linking and reorganize
- px4_add_module now requires MAIN
 - px4_add_library doesn't automatically link
2018-04-29 21:48:54 -04:00
sanderux 220bd82b93 Per channel PWM disarmed values 2017-08-09 22:28:05 +02:00
Beat Küng 872049dc57 pwm.cpp: extend documentation for Oneshot 2017-07-14 11:57:11 +02:00
Beat Küng fac6a829c4 pwm.cpp: fix issues by clang tidy (nullptr & void) 2017-07-14 11:57:11 +02:00
Beat Küng 647bdef855 pwm.c: rename to pwm.cpp and add module documentation
use c++ so that raw string literals can be used
2017-07-14 11:57:11 +02:00
Beat Küng c22b79ece5 pwm.c: fix wrong comment 2017-07-14 11:57:11 +02:00
Beat Küng 2ad7194ed3 pwm command: update usage 2017-07-14 11:57:11 +02:00
Beat Küng 9e4d1235ac pwm command: fix -e param (it was just ignored)
to keep the behavior the same, remove the -e flags from all pwm commands
that use it in the scripts.
2017-07-14 11:57:11 +02:00
Lorenz Meier 6a3e27fe18 PWM command: Be less verbose 2017-07-11 08:15:44 +02:00
Daniel Agar 94f5df8611 param and pwm ignore -Warray-bounds for clang 2017-06-02 19:35:18 -04:00
David Sidrane 0a1fbef8c8 pwm:ensure that a rate of 0 will invoke the ioctl
Prior to onshot being added to the system. The -r of the
   "rate" command would not invoke the ioctl PWM_SERVO_SET_UPDATE_RATE
   when -r was not provided on the command line. This may have been a
   feature or a bug.

   When onshot was added to the pwm command a bug was intorduced
   that precluded the ioctl PWM_SERVO_SET_UPDATE_RATE from being
   called on -r 0.

   This commit fixes that issue, and preserves the "prio to oneshot"
   behavior of the "rate" command when -r is not specified.
2017-04-25 09:02:28 +02:00
Mohammed Kabir d50a0c4323 pwm : fix code style 2017-04-02 21:52:18 +02:00
Mohammed Kabir f915896413 pwm : run update only on NuttX 2017-04-02 21:52:18 +02:00
Lorenz Meier 1adbf37cbe PWM command: Do not use return value of read 2017-04-02 21:52:18 +02:00
David Sidrane 5abdb8fbe9 Fixed spelling - onshot->oneshot 2017-03-23 08:28:15 +01:00
David Sidrane 8984b441a0 pwm test uses Onshot API
At at a period greater than the the max Oneshot pulse width
  Trigger all timer's channels in Oneshot mode to fire the
  oneshots with updated values.
2017-03-23 08:28:15 +01:00
David Sidrane 0ce854ad55 Support onshot command 2017-03-23 08:28:15 +01:00
David Sidrane 6bc0420137 pwm warnx->PX4_WARN 2017-03-23 08:28:15 +01:00
David Sidrane cdd961d2b9 pwm remove arch dependancy 2017-03-23 08:28:15 +01:00
David Sidrane d92cb75b26 pwm use px4_getops 2017-03-23 08:28:15 +01:00
Mark Whitehorn 2d5588ae02 simplify oneshot mode selection; use zero PWM rate as indicator
cleanup and remove unused (new) params
2017-03-23 08:28:15 +01:00
Mark Whitehorn aa9fbbedd5 add oneshot mode capability
change fmu to task

increase fmu_servo task priority to max and enable true oneshot

use lowest FMU priority which minimizes jitter

constrain oneshot updates to control group 0 events
2017-03-23 08:28:15 +01:00
Lorenz Meier e18fe0a8a8 Port PWM command to POSIX 2017-02-25 11:07:25 +01:00
Lorenz Meier ca096c1257 PWM command: Allow robust error code returns 2016-12-26 15:34:53 +01:00
Lorenz Meier 11ef348a34 PWM: Use same stack size as mixer to limit fragmentation 2016-12-21 11:44:47 +01:00