summaryrefslogtreecommitdiffstats
path: root/app/gpio.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/gpio.c')
-rw-r--r--app/gpio.c187
1 files changed, 109 insertions, 78 deletions
diff --git a/app/gpio.c b/app/gpio.c
index e597d16..0419cde 100644
--- a/app/gpio.c
+++ b/app/gpio.c
@@ -1,6 +1,6 @@
#include "project.h"
#define DEBOUNCE 10
-#define DIAL_BLACKOUT 90 /* (10pps)*/
+#define DIAL_BLACKOUT 90 /* (10pps) */
static int hs_poll;
int hook;
@@ -12,108 +12,135 @@ static int pulse_count;
static int fake_hook;
-static void exti5_isr(void)
+static void
+exti5_isr (void)
{
-exti_reset_request(EXTI5);
-dial_poll=DEBOUNCE;
+ exti_reset_request (EXTI5);
+ dial_poll = DEBOUNCE;
}
-static void exti7_isr(void)
+static void
+exti7_isr (void)
{
-exti_reset_request(EXTI7);
-if (dial_pulse_blackout) return;
-dial_pulse_blackout=DIAL_BLACKOUT;
-pulse_count++;
+ exti_reset_request (EXTI7);
+ if (dial_pulse_blackout)
+ return;
+ dial_pulse_blackout = DIAL_BLACKOUT;
+ pulse_count++;
}
-static void exti14_isr(void)
+static void
+exti14_isr (void)
{
-exti_reset_request(EXTI14);
-hs_poll=DEBOUNCE;
+ exti_reset_request (EXTI14);
+ hs_poll = DEBOUNCE;
}
-void exti9_5_isr(void)
+void
+exti9_5_isr (void)
{
-if (exti_get_flag_status(EXTI5)) exti5_isr();
-if (exti_get_flag_status(EXTI7)) exti7_isr();
+ if (exti_get_flag_status (EXTI5))
+ exti5_isr ();
+ if (exti_get_flag_status (EXTI7))
+ exti7_isr ();
}
-void exti15_10_isr(void)
+
+void
+exti15_10_isr (void)
{
-if (exti_get_flag_status(EXTI14)) exti14_isr();
+ if (exti_get_flag_status (EXTI14))
+ exti14_isr ();
}
-static void hs_tick(void)
+static void
+hs_tick (void)
{
-int h;
+ int h;
-if (!hs_poll) return;
-hs_poll--;
+ if (!hs_poll)
+ return;
+ hs_poll--;
-if (hs_poll) return;
+ if (hs_poll)
+ return;
-h=!gpio_get(GPIOC,GPIO14);
+ h = !gpio_get (GPIOC, GPIO14);
-h^=fake_hook;
+ h ^= fake_hook;
-if (hook==h) return;
+ if (hook == h)
+ return;
-hook=h;
+ hook = h;
-printf("Hook is now %d\r\n",hook);
+ printf ("Hook is now %d\r\n", hook);
-if (!hook) {
- if (ringing) {
- ring_off();
- answer_call();
- }
-}
+ if (!hook)
+ {
+ if (ringing)
+ {
+ ring_off ();
+ answer_call ();
+ }
+ }
-if (hook) {
- ring_off();
- terminate_call();
-}
+ if (hook)
+ {
+ ring_off ();
+ terminate_call ();
+ }
}
-static void dial_tick(void) {
-int m;
-if (dial_pulse_blackout) dial_pulse_blackout--;
-if (!dial_poll) return;
-dial_poll--;
-if (dial_poll) return;
+static void
+dial_tick (void)
+{
+ int m;
+
+ if (dial_pulse_blackout)
+ dial_pulse_blackout--;
+ if (!dial_poll)
+ return;
+ dial_poll--;
+ if (dial_poll)
+ return;
-m=!!gpio_get(GPIOA,GPIO5);
+ m = ! !gpio_get (GPIOA, GPIO5);
-if (m) return;
-if (!pulse_count) return;
+ if (m)
+ return;
+ if (!pulse_count)
+ return;
-dialstr_digit((pulse_count == 10) ? 0:pulse_count);
-pulse_count=0;
+ dialstr_digit ((pulse_count == 10) ? 0 : pulse_count);
+ pulse_count = 0;
}
-void toggle_fake_hook(void)
+void
+toggle_fake_hook (void)
{
-fake_hook^=1;
-hs_poll=DEBOUNCE;
+ fake_hook ^= 1;
+ hs_poll = DEBOUNCE;
}
-void gpio_tick(void)
+void
+gpio_tick (void)
{
-hs_tick();
-dial_tick();
+ hs_tick ();
+ dial_tick ();
}
@@ -121,55 +148,59 @@ dial_tick();
-void gpio_init(void)
+void
+gpio_init (void)
{
- /*GSM module reset pin*/
+ /*GSM module reset pin */
gpio_set_mode (GPIOA, GPIO_MODE_OUTPUT_2_MHZ,
GPIO_CNF_OUTPUT_PUSHPULL, GPIO1);
- gpio_set(GPIOA,GPIO1);
+ gpio_set (GPIOA, GPIO1);
/* Dial mute */
- gpio_set_mode (GPIOA, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO4);
- gpio_set(GPIOA,GPIO4);
+ gpio_set_mode (GPIOA, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL,
+ GPIO4);
+ gpio_set (GPIOA, GPIO4);
gpio_set_mode (GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO5);
- gpio_clear(GPIOA,GPIO5);
+ gpio_clear (GPIOA, GPIO5);
- exti_select_source(EXTI5, GPIOA);
- exti_set_trigger(EXTI5, EXTI_TRIGGER_BOTH);
- exti_enable_request(EXTI5);
+ exti_select_source (EXTI5, GPIOA);
+ exti_set_trigger (EXTI5, EXTI_TRIGGER_BOTH);
+ exti_enable_request (EXTI5);
/*Dial contacts */
- gpio_set_mode (GPIOA, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO6);
- gpio_set(GPIOA,GPIO6);
+ gpio_set_mode (GPIOA, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL,
+ GPIO6);
+ gpio_set (GPIOA, GPIO6);
gpio_set_mode (GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO7);
- gpio_clear(GPIOA,GPIO7);
+ gpio_clear (GPIOA, GPIO7);
- exti_select_source(EXTI7, GPIOA);
- exti_set_trigger(EXTI7, EXTI_TRIGGER_RISING);
- exti_enable_request(EXTI7);
+ exti_select_source (EXTI7, GPIOA);
+ exti_set_trigger (EXTI7, EXTI_TRIGGER_RISING);
+ exti_enable_request (EXTI7);
- nvic_enable_irq(NVIC_EXTI9_5_IRQ);
+ nvic_enable_irq (NVIC_EXTI9_5_IRQ);
- /*hookswitch*/
- gpio_set_mode (GPIOC, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO15);
- gpio_set(GPIOC,GPIO15);
+ /*hookswitch */
+ gpio_set_mode (GPIOC, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL,
+ GPIO15);
+ gpio_set (GPIOC, GPIO15);
gpio_set_mode (GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO14);
- gpio_clear(GPIOC,GPIO14);
+ gpio_clear (GPIOC, GPIO14);
- exti_select_source(EXTI14, GPIOC);
- exti_set_trigger(EXTI14, EXTI_TRIGGER_BOTH);
- exti_enable_request(EXTI14);
+ exti_select_source (EXTI14, GPIOC);
+ exti_set_trigger (EXTI14, EXTI_TRIGGER_BOTH);
+ exti_enable_request (EXTI14);
- nvic_enable_irq(NVIC_EXTI15_10_IRQ);
+ nvic_enable_irq (NVIC_EXTI15_10_IRQ);
}