Scheduling on the new boards (ersky9x and gruvin9x) is now needed. The reason is simple, as an example it is not allowed to have the mixes calculation blocked behind a Log beeing written on the SD-card.
The scheduling is not really needed on stock board (there is no SD-card, and the EEPROM writes are done asynchronously, and moreover, there is no timer available). Also we plan to add an RTOS on ersky9x so the mechanism described below will not apply for these two boards.
So, this implementation is currently in the mixer_interrupt branch of open9x :
1) The mixers calculation are done in an interrupt (raised by Timer5)
2) When the interrupt raises, it schedules a new wakeup 20ms later
3) When setupPulses() is called (T0) it adjusts the mixer interrupt scheduled time so that the next wakeup will start at T1 - (mixer calculations last duration) - 500us
4) Everything else (the LCD, the Menus, the EEPROM, the SD-card) remains in the main program (therefore have the lowest priority).
Hope it makes sense and everything is clear. It is working, I still need to port everything to the trunk so that it doesn't change anything for stock and ersky9x boards.
Bertrand.
Scheduling on gruvin9x board
openTx has introduced a range of new features, ideas and bling. It is fast becoming the firmware of choice for many users. openTx will run on ALL current hardware platforms, including the gruvin9x and sky9x boards. Work has already started to support the new FrSky X9D radio!
-
- 9x Developer
- Posts: 2764
- Joined: Fri Dec 30, 2011 11:11 pm
- Country: -
Jump to
- OPENRC News & Information
- ↳ General Information & Rules
- ↳ Feedback
- General help and information
- ↳ Software
- ↳ Hardware
- ↳ General help (FrSky Taranis radio)
- Open Radio Control Transmitter Firmwares
- ↳ General model setup questions
- ↳ er9x / gruvin9x / th9 based firmwares
- ↳ Template Library
- ↳ Splash Screen Library
- ↳ Helicoptor Programming
- ↳ radioclone
- ↳ stock firmware (fly sky th9x)
- ↳ Template Library
- ↳ Sound Pack Library
- ↳ Edge TX
- ↳ openTx
- ↳ openTx for FrSky radios
- ↳ openTx model setup
- ↳ er9x
- ↳ er9x model setup
- ↳ ersky9xr
- ↳ erskyTx (was ersky9x)
- ↳ ersky9x model setup
- ↳ gruvin9x
- ↳ gruvin9x model setup
- ↳ th9x
- ↳ th9x model setup
- ↳ gv9x
- ↳ radioclone
- ↳ radioclone model setup
- ↳ tgy9xr
- ↳ tgy9xr model setup
- ↳ AR-T6
- ↳ other
- Desktop Software to Program Your Transmitter
- ↳ eePe
- ↳ companion9x
- ↳ eepSKYe
- Open Radio Control RF Systems & Hardware
- ↳ OpenLRS
- ↳ OpenLRSng
- ↳ OpenLRSng hardware
- Closed Source Radio Control RF Systems & Hardware
- ↳ Royal Way - Rlink UHF Long Range System
- Transmitter Hardware
- ↳ FlySky TH9X / Turnigy 9X / Eurgle 9X radio
- ↳ SMARTIEPARTS PROGRAMMER
- ↳ HARDWARE MODS & HACKS
- ↳ FRSky Telemetry Mods
- ↳ ArduPilot Mods
- ↳ Electronic Mods
- ↳ Hardware Mods
- ↳ Soldering, Hardware, Skills
- ↳ DSM2/DSMX Mods
- ↳ UPGRADE BOARDS
- ↳ sky9x upgrade board
- ↳ gruvin9x upgrade board
- ↳ 9Xtreme upgrade board
- ↳ RF MODULES
- ↳ The FRSKY Forum
- ↳ PROGRAMMERS
- ↳ FrSky Taranis radio
- ↳ FRSky Horus radio
- ↳ Turnigy 9XR PRO radio
- ↳ Orange DSM Telemetry module
- ↳ Turnigy 9XR radio
- ↳ PROGRAMMERS
- ↳ Other Radios
- ↳ Retro Radios
- Other OPEN Projects
- ↳ General RC Electronic Projects and Discussion
- ↳ OpenXVario - an open source vario supported by the open source firmwares!!
- ↳ Other Electronic Projects
- ↳ OpenFlightStab
- ↳ OpenLRSng
- ↳ 3D Printing
- Other Forums
- ↳ The Pickled Gnu (The Pub)
- ↳ FPV Projects
- ↳ Reviews
- ↳ Where to buy / Spares / Modules? Selling up?
- Links
- ↳ er9x on Google Code
- ↳ ersky9x on Github
- ↳ Gruvin9x on Google Code
- ↳ th9x on Google Code
- ↳ openTx on Google Code
- ↳ gv9x on Google Code
- ↳ radioclone on Sourceforge
- ↳ eePe on Google Code
- ↳ companion9x on Google Code
- ↳ 9X Guides
- ↳ openxvario