Hallo,
ich wollte einen (funktionierenden) Code in eine lib verbannen damit der Simulator ruhiger wird.
Obwohl er sich ohne murren im lib-Manager Compilieren läßt verweigert der Compiler im Programm die Ausführung.
Kann ich ihn irgendwie "überreden"?
Alles anzeigen
ich wollte einen (funktionierenden) Code in eine lib verbannen damit der Simulator ruhiger wird.
Obwohl er sich ohne murren im lib-Manager Compilieren läßt verweigert der Compiler im Programm die Ausführung.
Kann ich ihn irgendwie "überreden"?
Quellcode
- $regfile = "m8def.dat"
- $crystal = 921500
- $hwstack = $40
- $swstack = $40
- $framesize = $100
- $eepleave
- $version 0 , 0 , 18
- $sim
- Dim A As Byte , Am As Byte , Ad(8) As Word
- $lib "Free_adc_4_v_t.lib" 'als .lbx will es auch nicht
- $external _a2_isr
- Config Adc = Free , Prescaler = 32 , Reference = Aref
- On Adcc _a2_isr Nosave
- Enable Adcc
- Enable Interrupts
- #if _sim = 1
- Config Timer2 = Timer , Prescale = 1
- On Timer2 _a2_isr Nosave
- Enable Timer2
- #endif
- Waitms 200
- Do
- A = A And 7
- Print Ad(a)
- Incr A
- Waitms 200
- Loop
- '(
- $asm
- 'Free_adc_4_v_t.lib
- 'Comment = Free Adc 0-3, 14 (für Vcc Berechnung), 8 (Interne Temperatur)
- 'Date = 16.01.21
- 'Libversion = 1.2.0
- ';Benötigt Dim Ad(6) as word , Am as Byte
- ';Verwendet R2,R3 und R15 dauerhaft
- '[_A2_ISR]
- _A2_isr: '22 31 73 Verwendet R2,R3,R15
- push r17 '2
- IN r17,sreg '1
- PUSH r17 '2
- inc r15
- mov r17,r15
- Cpi r17, 4 '1Leermessung zum Pegelausgleich
- brlo a2_e '1/2 'sh +2 '1/2
- in r17,adcl '2
- add r2,r17 '1
- in R17,ADCh '2
- adc r3,r17 '1
- mov r17,r15 '1
- Cpi r17, 43 '1
- brne a2_e '1/2
- lds r17,{am} '2
- cpi r17,5 '1
- brsh a2_s ;Temperatur nur /2
- lsr r3
- ror r2
- A2_s:
- lsr r3
- ror r2
- PUSH r26 '2
- PUSH r27 '2
- Loadadr Ad , X '2
- lsl r17
- add r26,r17
- st x+,r2 '2 '2
- st x,r3 '2 '2
- lsr r17
- inc r17
- sts {am},r17
- cpi r17,4
- brlo a2_z '<4 normaler Eingang
- brne a2_t '>4 Temperatur
- #if _sim = 0
- ldi r17, $4e 'Vcc, 14 füf Vbg
- #else
- ori r17,$40 ' nächster adc
- #endif
- rjmp a2_z
- A2_t:
- cpi r17,5 ' >5
- brne a2_n ' Von Vorn
- #if _sim = 0
- ldi r17, $C8 'Internal, 8 für Temperatur
- #else
- ori r17,$40 'int ref
- #endif
- rjmp a2_z
- A2_n:
- clr r17
- sts {am},r17
- A2_z:
- Out Admux , R17
- clr r2
- clr r3
- clr r15
- POP r27
- POP r26
- A2_e:
- POP r17
- Out Sreg , R17
- POP r17
- Reti 'urn
- $end Asm
- '[end]
- ')