summaryrefslogtreecommitdiff
path: root/software/ihu
diff options
context:
space:
mode:
authorChristian Pointner <equinox@mur.at>2011-07-11 17:41:20 +0000
committerChristian Pointner <equinox@mur.at>2011-07-11 17:41:20 +0000
commit2052f399e416780f406b19d9cd90a7be55f86e15 (patch)
tree54f31fd8cae463b7a6fc86c9e2415175427bff47 /software/ihu
parentfixed prescaler due to FOSC/4 (diff)
added ihu source dir
git-svn-id: https://svn.spreadspace.org/mur.sat@31 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'software/ihu')
-rw-r--r--software/ihu/Makefile34
-rw-r--r--software/ihu/ihu.asm96
2 files changed, 130 insertions, 0 deletions
diff --git a/software/ihu/Makefile b/software/ihu/Makefile
new file mode 100644
index 0000000..3c1cb81
--- /dev/null
+++ b/software/ihu/Makefile
@@ -0,0 +1,34 @@
+##
+## mur.sat
+##
+## Somewhen in the year 2011, 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) 2011 Christian Pointner <equinox@mur.at>
+##
+## 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 <http://www.gnu.org/licenses/>.
+##
+
+PROJECT := ihu
+PROC_TYPE := 16F887
+
+include ../pic.include.mk
diff --git a/software/ihu/ihu.asm b/software/ihu/ihu.asm
new file mode 100644
index 0000000..3cde059
--- /dev/null
+++ b/software/ihu/ihu.asm
@@ -0,0 +1,96 @@
+ ;;
+ ;; mur.sat
+ ;;
+ ;; Somewhen in the year 2011, 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) 2011 Christian Pointner <equinox@mur.at>
+ ;;
+ ;; 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 <http://www.gnu.org/licenses/>.
+ ;;
+ ;; -------------------------------------
+ ;; PREAMBLE
+
+ LIST p=16F887
+ include "p16f887.inc"
+ ;; TODO: set correct configuration bits
+ __config _FCMEN_OFF & _IESO_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT
+
+ ;; -------------------------------------
+ ;; DEFINES
+ ;; TODO: find right address for context save registers
+W_TEMP EQU H'007E'
+STATUS_TEMP EQU H'007F'
+
+ ;; -------------------------------------
+ ;; Reset Vector
+ org 0
+ goto init
+
+ ;; -------------------------------------
+ ;; Interrupt Vector
+ org 4
+ ;; save context
+ movwf W_TEMP
+ swapf STATUS,W
+ movwf STATUS_TEMP
+
+ ;; TODO: implement interrupt service routines
+
+interrupt_end
+ ;; restore context
+ swapf STATUS_TEMP,W
+ movwf STATUS
+ swapf W_TEMP,F
+ swapf W_TEMP,W
+ retfie
+
+ ;; -------------------------------------
+ ;; INIT
+init
+ ;; bank 1
+ ;; TODO: do init stuff
+ goto main
+
+ ;; -------------------------------------
+ ;; TABLES
+
+ ;; TODO: add lookup tables if needed
+
+ ;; -------------------------------------
+ ;; SUBROUTINES
+
+ ;; TODO: add subroutines
+
+ ;; -------------------------------------
+ ;; MAINLOOP
+main
+
+ ;; TODO: add main code
+
+powerdown
+ sleep
+ goto main
+
+ ;; -------------------------------------
+ ;; END
+ end