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
|
51
|
76 ; ORG 0x00070 ;
|
0
|
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 start.asm ; Startup and init, checks background debugger
|
|
105 #include simulator.asm ; Stand-alone simulator routines
|
|
106 #include io.asm ; Low-Level I/O access
|
|
107
|
62
|
108
|
|
109 ; Include C sub-routines automatically
|
0
|
110
|
62
|
111 ORG 0x09A00
|
|
112 #include ostc_part3_wordprocessor_NEW_CURSOR_9A00_to_B960_jump_in_B410.txt ; New C-Code
|
|
113
|
|
114 ORG 0x0C000
|
|
115 #include p2_deco_main_v110d.txt
|
|
116
|
58
|
117 MESSG "OSTC - diving computer code, Copyright (C) 2010 HeinrichsWeikamp GbR"
|
0
|
118 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"
|
|
119 MESSG "Free Software Foundation, either version 3 of the License, or (at your option) any later version."
|
|
120 MESSG "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY"
|
|
121 MESSG "or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details."
|
|
122 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/."
|
|
123
|
|
124 END ; end of program
|
|
125
|