Mercurial > public > mk2
diff code_part1/OSTC_code_asm_part1/MAIN.ASM @ 0:96a35aeda5f2
Initial setup
author | heinrichsweikamp |
---|---|
date | Tue, 12 Jan 2010 15:05:59 +0100 |
parents | |
children | cd5b650920f6 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code_part1/OSTC_code_asm_part1/MAIN.ASM Tue Jan 12 15:05:59 2010 +0100 @@ -0,0 +1,144 @@ + +; OSTC - diving computer code +; Copyright (C) 2008 HeinrichsWeikamp GbR + +; This program 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 +; (at your option) any later version. + +; This program 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 this program. If not, see <http://www.gnu.org/licenses/>. + + +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation, either versio +; includes and isr +; written by: Matthias Heinrichs, info@heinrichsweikamp.com +; written: 041013 +; last updated: 081219 +; known bugs: +; ToDo: + + + LIST P=18F4685 ;directive to define processor + #include <P18F4685.INC> ;processor specific variable definitions + + #include definitions.asm ; Defines, I/O Ports and variables + + ORG 0x0000 + goto start ; Start! + + ORG 0x0008 + bra HighInt ;High Priority Interrups + + ORG 0x0018 ;Low Priority Interrups +; *** low priority interrupts not used + bra HighInt ;High Priority Interrups + +HighInt: + movff BSR,0x102 ;save BSR register + movlb b'00000001' ;select Bank1 + + movff STATUS,status_temp ;save STATUS register + movff WREG,wreg_temp ;save working register + + movf PORTB,W ;move portb into latch register + + btfsc PIR1,TMR1IF ;Timer1 INT (external 32.768kHz Clock) + call timer1int + + btfsc INTCON,TMR0IF ;Timer0 INT (Debounce Timer) + call timer0int + + btfsc PIR2,TMR3IF ;Timer3 INT (Delay for PWM Buzzer) + call timer3int + + btfsc PIR1,RCIF ; UART + call uartint + + btfsc INTCON,INT0IF ; Switch left + call schalter_links + + btfsc INTCON3,INT1IF ; switch right + call schalter_rechts + + movff wreg_temp,WREG ;restore working register + movff status_temp,STATUS ;restore STATUS register + movff 0x102,BSR ;restore BSR register + retfie + + ORG 0x00100 ; +#include text_table.asm ; includes textmacros +#include displaytext.asm ; sends texts to wordprocessor +#include math.asm ; mathematical functions +#include wait.asm ; waitroutines +#include valconv.asm ; outputs to POSTINC2 +#include eeprom_rs232.asm ; Internal EEPROM and RS232 Interface +#include oled_samsung.asm ; Attached in 80-System 8-Bit Mode +#include menu_custom.asm ; Menu "Custom FunctionsI" and "Custom FunctionsII" +#include menu.asm ; Main Menu and Setup Menu +#include menu_reset.asm ; Submenu "Reset" +#include menu_settime.asm ; Submenu "Set Time" +#include ms5535.asm ; Interface to MS5535A,B or C pressure sensor +#include pled_outputs.asm ; div. PLED outputs and background debugger +#include i2c_eeprom.asm ; for external I2C EEPROM and general I2C Routines +#include menu_logbook.asm ; Submenu "Logbook" +#include interface.asm ; Interface routines +#include menu_ppO2.asm ; Constant ppO2 setup menu +#include menu_battery.asm ; Submenu "Battery Info" +#include menu_gassetup.asm ; Menu "Gas Setup" +#include isr.asm ; Interrupt service routine (RTC&Sensor) +#include surfmode.asm ; Mainroutines for Surfacemode +#include divemode.asm ; Mainroutines for Divemode +#include divemode_menu.asm ; Underwater menu +#include sleepmode.asm ; Mainroutines for Sleepmode +#include adc_rtc.asm ; A/D converter (battery control) and RTC init +#include temp_extrema.asm ; Takes care of the temperature extrema logger +#include sync_clock.asm ; syncs RTC with PC +#include tempcomp.asm ; extra temperature compensation +#include start.asm ; Startup and init, checks background debugger +#include simulator.asm ; Stand-alone simulator routines +#include io.asm ; Low-Level I/O access + + ORG 0x0A000 ; keep free for new c_code + nop + + ORG deco_main_calc_hauptroutine + return ;Dummy + ORG deco_main_calc_without_deco + return ;Dummy + ORG deco_main_clear_tissue + return ;Dummy + ORG deco_main_calc_desaturation_time + return ;Dummy + ORG deco_main_calc_wo_deco_step_1_m + return ;Dummy + ORG deco_main_hash + return ;Dummy + ORG main_clear_CNS_fraction + return ;Dummy + ORG main_calc_CNS_fraction + return ;Dummy + ORG main_calc_CNS_decrease_15min + return ;Dummy + ORG main_push_tissues_to_vault + return ;Dummy + ORG main_pull_tissues_from_vault + return ;Dummy + + + MESSG "OSTC - diving computer code, Copyright (C) 2009 HeinrichsWeikamp GbR" + MESSG "This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the" + MESSG "Free Software Foundation, either version 3 of the License, or (at your option) any later version." + MESSG "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY" + MESSG "or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details." + MESSG "You should have received a copy of the GNU General Public License along with this program.If not, see http://www.gnu.org/licenses/." + + END ; end of program +