From 2d9d64bcf7f4f2533dea68edd9f67781ad968dba Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 21 Aug 2013 23:49:35 +0000 Subject: moved heartbeat thread to seperate file git-svn-id: https://svn.spreadspace.org/mur.sat@834 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- software/mpu/Makefile | 1 + software/mpu/board/board.h | 10 ++++--- software/mpu/heartbeat.c | 58 ++++++++++++++++++++++++++++++++++++++ software/mpu/heartbeat.h | 38 +++++++++++++++++++++++++ software/mpu/main.c | 70 +++++++++++++++++++++------------------------- 5 files changed, 135 insertions(+), 42 deletions(-) create mode 100644 software/mpu/heartbeat.c create mode 100644 software/mpu/heartbeat.h diff --git a/software/mpu/Makefile b/software/mpu/Makefile index 57a89b9..8dcb9ed 100644 --- a/software/mpu/Makefile +++ b/software/mpu/Makefile @@ -79,6 +79,7 @@ CSRC = $(PORTSRC) \ $(BOARDSRC) \ $(CHIBIOS)/os/various/evtimer.c \ $(CHIBIOS)/os/various/syscalls.c \ + heartbeat.c \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global diff --git a/software/mpu/board/board.h b/software/mpu/board/board.h index 19b4fa7..018a45e 100644 --- a/software/mpu/board/board.h +++ b/software/mpu/board/board.h @@ -41,8 +41,10 @@ /* * IO pins assignments. */ -#define GPIOA_LED 8 -#define GPIOA_USB_DISC 13 +#define LED__PIN 8 +#define LED__PORT GPIOA +#define USB_DISC__PIN 13 +#define USB_DISC__PORT GPIOA /* * I/O ports initial setup, this configuration is established soon after reset @@ -135,12 +137,12 @@ /* * USB bus activation macro, required by the USB driver. */ -#define usb_lld_connect_bus(usbp) palClearPad(GPIOA, GPIOA_USB_DISC) +#define usb_lld_connect_bus(usbp) palClearPad(USB_DISC__PORT, USB_DISC__PIN) /* * USB bus de-activation macro, required by the USB driver. */ -#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOA, GPIOA_USB_DISC) +#define usb_lld_disconnect_bus(usbp) palSetPad(USB_DISC__PORT, USB_DISC__PIN) #if !defined(_FROM_ASM_) #ifdef __cplusplus diff --git a/software/mpu/heartbeat.c b/software/mpu/heartbeat.c new file mode 100644 index 0000000..120fe48 --- /dev/null +++ b/software/mpu/heartbeat.c @@ -0,0 +1,58 @@ +/* + * + * mur.sat + * + * Somewhen in the year 2012, mur.at will have a nano satellite launched + * into a low earth orbit (310 km above the surface of our planet). The + * satellite itself is a TubeSat personal satellite kit, developed and + * launched by interorbital systems. mur.sat is a joint venture of mur.at, + * ESC im Labor and realraum. + * + * Please visit the project hompage at sat.mur.at for further information. + * + * + * Copyright (C) 2013 Christian Pointner + * + * This file is part of mur.sat. + * + * mur.sat is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * mur.sat is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with mur.sat. If not, see . + * + */ + +#include "ch.h" +#include "hal.h" + +#include "heartbeat.h" + +static WORKING_AREA(waHeartbeat, 128); +static msg_t Heartbeat(void *arg) +{ + (void)arg; + chRegSetThreadName("heartbeat"); + while (TRUE) { + palClearPad(LED__PORT, LED__PIN); + chThdSleepMilliseconds(50); + palSetPad(LED__PORT, LED__PIN); + chThdSleepMilliseconds(50); + palClearPad(LED__PORT, LED__PIN); + chThdSleepMilliseconds(50); + palSetPad(LED__PORT, LED__PIN); + chThdSleepMilliseconds(850); + } +} + +void heartbeatInit(void) +{ + chThdCreateStatic(waHeartbeat, sizeof(waHeartbeat), NORMALPRIO, Heartbeat, NULL); +} diff --git a/software/mpu/heartbeat.h b/software/mpu/heartbeat.h new file mode 100644 index 0000000..d865745 --- /dev/null +++ b/software/mpu/heartbeat.h @@ -0,0 +1,38 @@ +/* + * + * mur.sat + * + * Somewhen in the year 2012, mur.at will have a nano satellite launched + * into a low earth orbit (310 km above the surface of our planet). The + * satellite itself is a TubeSat personal satellite kit, developed and + * launched by interorbital systems. mur.sat is a joint venture of mur.at, + * ESC im Labor and realraum. + * + * Please visit the project hompage at sat.mur.at for further information. + * + * + * Copyright (C) 2013 Christian Pointner + * + * This file is part of mur.sat. + * + * mur.sat is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * mur.sat is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with mur.sat. If not, see . + * + */ + +#ifndef MURSAT_heartbeat_h_INCLUDED +#define MURSAT_heartbeat_h_INCLUDED + +void heartbeatInit(void); + +#endif diff --git a/software/mpu/main.c b/software/mpu/main.c index 88691ab..8f411d5 100644 --- a/software/mpu/main.c +++ b/software/mpu/main.c @@ -1,38 +1,39 @@ /* - ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ + * + * mur.sat + * + * Somewhen in the year 2012, mur.at will have a nano satellite launched + * into a low earth orbit (310 km above the surface of our planet). The + * satellite itself is a TubeSat personal satellite kit, developed and + * launched by interorbital systems. mur.sat is a joint venture of mur.at, + * ESC im Labor and realraum. + * + * Please visit the project hompage at sat.mur.at for further information. + * + * + * Copyright (C) 2013 Christian Pointner + * + * This file is part of mur.sat. + * + * mur.sat is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * mur.sat is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with mur.sat. If not, see . + * + */ #include "ch.h" #include "hal.h" -#include "test.h" - -/* - * Red LED blinker thread, times are in milliseconds. - */ -static WORKING_AREA(waHeartbeat, 128); -static msg_t Heartbeat(void *arg) { - (void)arg; - chRegSetThreadName("blinker"); - while (TRUE) { - palClearPad(GPIOA, GPIOA_LED); - chThdSleepMilliseconds(100); - palSetPad(GPIOA, GPIOA_LED); - chThdSleepMilliseconds(900); - } -} +#include "heartbeat.h" /* * Application entry point. @@ -49,15 +50,8 @@ int main(void) { halInit(); chSysInit(); - /* - * Activates the serial driver 2 using the driver default configuration. - */ - sdStart(&SD2, NULL); - /* - * Creates the blinker thread. - */ - chThdCreateStatic(waHeartbeat, sizeof(waHeartbeat), NORMALPRIO, Heartbeat, NULL); + heartbeatInit(); /* * Normal main() thread activity, in this demo it does nothing except -- cgit v1.2.3