0
|
1
|
|
2 ; OSTC - diving computer code
|
|
3 ; Copyright (C) 2008 HeinrichsWeikamp GbR
|
|
4
|
|
5 ; This program is free software: you can redistribute it and/or modify
|
|
6 ; it under the terms of the GNU General Public License as published by
|
|
7 ; the Free Software Foundation, either version 3 of the License, or
|
|
8 ; (at your option) any later version.
|
|
9
|
|
10 ; This program is distributed in the hope that it will be useful,
|
|
11 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13 ; GNU General Public License for more details.
|
|
14
|
|
15 ; You should have received a copy of the GNU General Public License
|
|
16 ; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
|
18
|
|
19 ; it under the terms of the GNU General Public License as published by
|
|
20 ; the Free Software Foundation, either versio
|
|
21 ; includes and isr
|
|
22 ; written by: Matthias Heinrichs, info@heinrichsweikamp.com
|
|
23 ; written: 041013
|
|
24 ; last updated: 081219
|
|
25 ; known bugs:
|
|
26 ; ToDo:
|
|
27
|
|
28
|
|
29 LIST P=18F4685 ;directive to define processor
|
|
30 #include <P18F4685.INC> ;processor specific variable definitions
|
|
31
|
|
32 #include definitions.asm ; Defines, I/O Ports and variables
|
|
33
|
|
34 ORG 0x0000
|
|
35 goto start ; Start!
|
|
36
|
|
37 ORG 0x0008
|
|
38 bra HighInt ;High Priority Interrups
|
|
39
|
|
40 ORG 0x0018 ;Low Priority Interrups
|
|
41 ; *** low priority interrupts not used
|
|
42 bra HighInt ;High Priority Interrups
|
|
43
|
|
44 HighInt:
|
|
45 movff BSR,0x102 ;save BSR register
|
|
46 movlb b'00000001' ;select Bank1
|
|
47
|
|
48 movff STATUS,status_temp ;save STATUS register
|
|
49 movff WREG,wreg_temp ;save working register
|
|
50
|
|
51 movf PORTB,W ;move portb into latch register
|
|
52
|
|
53 btfsc PIR1,TMR1IF ;Timer1 INT (external 32.768kHz Clock)
|
|
54 call timer1int
|
|
55
|
|
56 btfsc INTCON,TMR0IF ;Timer0 INT (Debounce Timer)
|
|
57 call timer0int
|
|
58
|
|
59 btfsc PIR2,TMR3IF ;Timer3 INT (Delay for PWM Buzzer)
|
|
60 call timer3int
|
|
61
|
|
62 btfsc PIR1,RCIF ; UART
|
|
63 call uartint
|
|
64
|
|
65 btfsc INTCON,INT0IF ; Switch left
|
|
66 call schalter_links
|
|
67
|
|
68 btfsc INTCON3,INT1IF ; switch right
|
|
69 call schalter_rechts
|
|
70
|
|
71 movff wreg_temp,WREG ;restore working register
|
|
72 movff status_temp,STATUS ;restore STATUS register
|
|
73 movff 0x102,BSR ;restore BSR register
|
|
74 retfie
|
|
75
|
|
76 ORG 0x00100 ;
|
|
77 #include text_table.asm ; includes textmacros
|
|
78 #include displaytext.asm ; sends texts to wordprocessor
|
|
79 #include math.asm ; mathematical functions
|
|
80 #include wait.asm ; waitroutines
|
|
81 #include valconv.asm ; outputs to POSTINC2
|
|
82 #include eeprom_rs232.asm ; Internal EEPROM and RS232 Interface
|
|
83 #include oled_samsung.asm ; Attached in 80-System 8-Bit Mode
|
|
84 #include menu_custom.asm ; Menu "Custom FunctionsI" and "Custom FunctionsII"
|
|
85 #include menu.asm ; Main Menu and Setup Menu
|
|
86 #include menu_reset.asm ; Submenu "Reset"
|
|
87 #include menu_settime.asm ; Submenu "Set Time"
|
|
88 #include ms5535.asm ; Interface to MS5535A,B or C pressure sensor
|
|
89 #include pled_outputs.asm ; div. PLED outputs and background debugger
|
|
90 #include i2c_eeprom.asm ; for external I2C EEPROM and general I2C Routines
|
|
91 #include menu_logbook.asm ; Submenu "Logbook"
|
|
92 #include interface.asm ; Interface routines
|
|
93 #include menu_ppO2.asm ; Constant ppO2 setup menu
|
|
94 #include menu_battery.asm ; Submenu "Battery Info"
|
|
95 #include menu_gassetup.asm ; Menu "Gas Setup"
|
|
96 #include isr.asm ; Interrupt service routine (RTC&Sensor)
|
|
97 #include surfmode.asm ; Mainroutines for Surfacemode
|
|
98 #include divemode.asm ; Mainroutines for Divemode
|
|
99 #include divemode_menu.asm ; Underwater menu
|
|
100 #include sleepmode.asm ; Mainroutines for Sleepmode
|
|
101 #include adc_rtc.asm ; A/D converter (battery control) and RTC init
|
|
102 #include temp_extrema.asm ; Takes care of the temperature extrema logger
|
|
103 #include sync_clock.asm ; syncs RTC with PC
|
|
104 #include tempcomp.asm ; extra temperature compensation
|
|
105 #include start.asm ; Startup and init, checks background debugger
|
|
106 #include simulator.asm ; Stand-alone simulator routines
|
|
107 #include io.asm ; Low-Level I/O access
|
|
108
|
|
109 ORG 0x0A000 ; keep free for new c_code
|
|
110 nop
|
|
111
|
|
112 ORG deco_main_calc_hauptroutine
|
|
113 return ;Dummy
|
|
114 ORG deco_main_calc_without_deco
|
|
115 return ;Dummy
|
|
116 ORG deco_main_clear_tissue
|
|
117 return ;Dummy
|
|
118 ORG deco_main_calc_desaturation_time
|
|
119 return ;Dummy
|
|
120 ORG deco_main_calc_wo_deco_step_1_m
|
|
121 return ;Dummy
|
|
122 ORG deco_main_hash
|
|
123 return ;Dummy
|
|
124 ORG main_clear_CNS_fraction
|
|
125 return ;Dummy
|
|
126 ORG main_calc_CNS_fraction
|
|
127 return ;Dummy
|
|
128 ORG main_calc_CNS_decrease_15min
|
|
129 return ;Dummy
|
|
130 ORG main_push_tissues_to_vault
|
|
131 return ;Dummy
|
|
132 ORG main_pull_tissues_from_vault
|
|
133 return ;Dummy
|
|
134
|
|
135
|
|
136 MESSG "OSTC - diving computer code, Copyright (C) 2009 HeinrichsWeikamp GbR"
|
|
137 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"
|
|
138 MESSG "Free Software Foundation, either version 3 of the License, or (at your option) any later version."
|
|
139 MESSG "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY"
|
|
140 MESSG "or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details."
|
|
141 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/."
|
|
142
|
|
143 END ; end of program
|
|
144
|