Mercurial > public > mk2
comparison 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 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:96a35aeda5f2 |
|---|---|
| 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 |
