mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-13 11:29:58 +03:00
fixed buzzer on rev5 boards;
added experimental gyro-based headfree boxes git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@429 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
This commit is contained in:
parent
800ce6bdf7
commit
3bb1063001
6 changed files with 3142 additions and 3096 deletions
6184
obj/baseflight.hex
6184
obj/baseflight.hex
File diff suppressed because it is too large
Load diff
|
@ -213,8 +213,8 @@ typedef struct baro_t
|
|||
|
||||
#ifdef BEEP_GPIO
|
||||
#define BEEP_TOGGLE digitalToggle(BEEP_GPIO, BEEP_PIN);
|
||||
#define BEEP_OFF digitalHi(BEEP_GPIO, BEEP_PIN);
|
||||
#define BEEP_ON digitalLo(BEEP_GPIO, BEEP_PIN);
|
||||
#define BEEP_OFF systemBeep(false);
|
||||
#define BEEP_ON systemBeep(true);
|
||||
#else
|
||||
#define BEEP_TOGGLE ;
|
||||
#define BEEP_OFF ;
|
||||
|
|
|
@ -6,6 +6,10 @@ static volatile uint32_t usTicks = 0;
|
|||
static volatile uint32_t sysTickUptime = 0;
|
||||
// from system_stm32f10x.c
|
||||
void SetSysClock(void);
|
||||
void systemBeep(bool onoff);
|
||||
static void beepRev4(bool onoff);
|
||||
static void beepRev5(bool onoff);
|
||||
void (* systemBeepPtr)(bool onoff) = NULL;
|
||||
|
||||
static void cycleCounterInit(void)
|
||||
{
|
||||
|
@ -84,6 +88,12 @@ void systemInit(void)
|
|||
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_NO_JTAG_SW;
|
||||
|
||||
// Configure gpio
|
||||
// rev5 needs inverted beeper. oops.
|
||||
if (hse_value == 12000000)
|
||||
systemBeepPtr = beepRev5;
|
||||
else
|
||||
systemBeepPtr = beepRev4;
|
||||
|
||||
LED0_OFF;
|
||||
LED1_OFF;
|
||||
BEEP_OFF;
|
||||
|
@ -178,6 +188,29 @@ void systemReset(bool toBootloader)
|
|||
SCB->AIRCR = AIRCR_VECTKEY_MASK | (uint32_t)0x04;
|
||||
}
|
||||
|
||||
static void beepRev4(bool onoff)
|
||||
{
|
||||
if (onoff) {
|
||||
digitalLo(BEEP_GPIO, BEEP_PIN);
|
||||
} else {
|
||||
digitalHi(BEEP_GPIO, BEEP_PIN);
|
||||
}
|
||||
}
|
||||
|
||||
static void beepRev5(bool onoff)
|
||||
{
|
||||
if (onoff) {
|
||||
digitalHi(BEEP_GPIO, BEEP_PIN);
|
||||
} else {
|
||||
digitalLo(BEEP_GPIO, BEEP_PIN);
|
||||
}
|
||||
}
|
||||
|
||||
void systemBeep(bool onoff)
|
||||
{
|
||||
systemBeepPtr(onoff);
|
||||
}
|
||||
|
||||
void alignSensors(int16_t *src, int16_t *dest, uint8_t rotation)
|
||||
{
|
||||
switch (rotation) {
|
||||
|
|
2
src/mw.c
2
src/mw.c
|
@ -687,7 +687,7 @@ void loop(void)
|
|||
#endif
|
||||
|
||||
#ifdef MAG
|
||||
if (sensors(SENSOR_MAG)) {
|
||||
if (sensors(SENSOR_ACC) || sensors(SENSOR_MAG)) {
|
||||
if (rcOptions[BOXMAG]) {
|
||||
if (!f.MAG_MODE) {
|
||||
f.MAG_MODE = 1;
|
||||
|
|
1
src/mw.h
1
src/mw.h
|
@ -461,6 +461,7 @@ bool sbusFrameComplete(void);
|
|||
|
||||
// buzzer
|
||||
void buzzer(uint8_t warn_vbat);
|
||||
void systemBeep(bool onoff);
|
||||
|
||||
// cli
|
||||
void cliProcess(void);
|
||||
|
|
14
src/serial.c
14
src/serial.c
|
@ -267,6 +267,7 @@ void serializeBoxNamesReply(void)
|
|||
void serialInit(uint32_t baudrate)
|
||||
{
|
||||
int idx;
|
||||
bool hfadded = false;
|
||||
|
||||
core.mainport = uartOpen(USART1, NULL, baudrate, MODE_RXTX);
|
||||
// TODO fix/hax
|
||||
|
@ -279,6 +280,10 @@ void serialInit(uint32_t baudrate)
|
|||
if (sensors(SENSOR_ACC)) {
|
||||
availableBoxes[idx++] = BOXANGLE;
|
||||
availableBoxes[idx++] = BOXHORIZON;
|
||||
availableBoxes[idx++] = BOXMAG;
|
||||
availableBoxes[idx++] = BOXHEADFREE;
|
||||
availableBoxes[idx++] = BOXHEADADJ;
|
||||
hfadded = true;
|
||||
}
|
||||
if (sensors(SENSOR_BARO)) {
|
||||
availableBoxes[idx++] = BOXBARO;
|
||||
|
@ -286,9 +291,12 @@ void serialInit(uint32_t baudrate)
|
|||
availableBoxes[idx++] = BOXVARIO;
|
||||
}
|
||||
if (sensors(SENSOR_MAG)) {
|
||||
availableBoxes[idx++] = BOXMAG;
|
||||
availableBoxes[idx++] = BOXHEADFREE;
|
||||
availableBoxes[idx++] = BOXHEADADJ;
|
||||
// this really shouldn't even needed to be tested as it wouldn't be possible without acc anyway
|
||||
if (!hfadded) {
|
||||
availableBoxes[idx++] = BOXMAG;
|
||||
availableBoxes[idx++] = BOXHEADFREE;
|
||||
availableBoxes[idx++] = BOXHEADADJ;
|
||||
}
|
||||
}
|
||||
if (feature(FEATURE_SERVO_TILT))
|
||||
availableBoxes[idx++] = BOXCAMSTAB;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue