From: drowe67 Date: Fri, 3 Oct 2014 03:24:17 +0000 (+0000) Subject: support for ext_ptt, compiles OKbut not tested X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=4065b421326a192166a5d92b75db8900621f1b6a;p=freetel-svn-tracking.git support for ext_ptt, compiles OKbut not tested git-svn-id: https://svn.code.sf.net/p/freetel/code@1871 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/stm32/inc/sm1000_leds_switches.h b/codec2-dev/stm32/inc/sm1000_leds_switches.h index c5ba8953..b98f74df 100644 --- a/codec2-dev/stm32/inc/sm1000_leds_switches.h +++ b/codec2-dev/stm32/inc/sm1000_leds_switches.h @@ -39,6 +39,7 @@ void not_cptt(int state); int switch_ptt(void); int switch_select(void); int switch_back(void); +int ext_ptt(void); void ColorfulRingOfDeath(int code); diff --git a/codec2-dev/stm32/src/sm1000_leds_switches.c b/codec2-dev/stm32/src/sm1000_leds_switches.c index f936ca22..e630cf07 100644 --- a/codec2-dev/stm32/src/sm1000_leds_switches.c +++ b/codec2-dev/stm32/src/sm1000_leds_switches.c @@ -33,6 +33,7 @@ #define SWITCH_PTT GPIO_Pin_7 #define SWITCH_SELECT GPIO_Pin_0 #define SWITCH_BACK GPIO_Pin_1 +#define EXT_PTT GPIO_Pin_8 #include #include @@ -47,7 +48,7 @@ void sm1000_leds_switches_init(void) { GPIO_InitStruct.GPIO_Pin = LED_PWR | LED_PTT | LED_RT | LED_ERR | _CPTT; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; - GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOD, &GPIO_InitStruct); @@ -56,9 +57,17 @@ void sm1000_leds_switches_init(void) { GPIO_InitStruct.GPIO_Pin = SWITCH_PTT | SWITCH_SELECT | SWITCH_BACK; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; - GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; /* we have our own external pull ups */ - GPIO_Init(GPIOD, &GPIO_InitStruct); + GPIO_Init(GPIOD, &GPIO_InitStruct); + + GPIO_InitStruct.GPIO_Pin = EXT_PTT; + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; + GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz; + GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; /* use internal pull up */ + GPIO_Init(GPIOD, &GPIO_InitStruct); + + } void led_pwr(int state) { @@ -108,6 +117,10 @@ int switch_back(void) { return GPIOD->IDR & (1 << 1); } +int ext_ptt(void) { + return GPIOD->IDR & (1 << 8); +} + /* FUNCTION: ColorfulRingOfDeath() AUTHOR..: xenovacivus diff --git a/codec2-dev/stm32/src/sm1000_main.c b/codec2-dev/stm32/src/sm1000_main.c index 72b40cc9..1f719f26 100644 --- a/codec2-dev/stm32/src/sm1000_main.c +++ b/codec2-dev/stm32/src/sm1000_main.c @@ -103,8 +103,8 @@ int main(void) { iterate_select_state_machine(&ss); - if (switch_ptt()) { - + if (switch_ptt() || (ext_ptt() == 0)) { + /* Transmit -------------------------------------------------------------------------*/ /* ADC2 is the SM1000 microphone, DAC1 is the modulator signal we send to radio tx */ @@ -125,7 +125,6 @@ int main(void) { fdmdv_8_to_16_short(dac16k, &dac8k[FDMDV_OS_TAPS_8K], FREEDV_NSAMPLES); dac1_write(dac16k, FREEDV_NSAMPLES_16K); } - if (ss.mode == TONE) { while(dac1_write((short*)aSine, SINE_SAMPLES) == 0); }