Hallo,
also ich nutze die Version 1.11.9.3
Mir steht aktuell auch nur diese Version zur Verfügung.
Nachfolgend der aktuelle Testcode - welcher noch immer den Fehler mitbringt.
Sogar im Bascom-Simulator taucht die "55" aus der Sub Lcd_put in der Sub Analog auf.
Also die Variablen _w1, _w2 und _w3 haben manchmal den Wert 55 obwohl sie mit _w1=10 , _w2=20 und_w3=30 übergeben werden.
Code:$regfile = "M32def.dat" $crystal = 12288000 $hwstack = 128 $swstack = 96 $framesize = 64 $baud = 57600 '$sim '### LCD ####################################################################### Dim Lcd_cnt As Byte Declare Sub Lcd_put(byval _x As Byte , Byval _reg As Byte) '############################################################################### '### Timer0-Systemtakt ######################################################### On Oc0 Isr_timer0 Tccr0 = &B1000_1011 'ctc-mode, prescaler=64 Ocr0 = 191 '95=500µs / 191=1ms Timsk.ocie0 = 1 '### DA-Wandler ################################################################ Declare Sub Analog(byval _w1 As Byte , Byval _w2 As Byte , Byval _w3 As Byte ) Dim W1_alt As Byte , W2_alt As Byte , W3_alt As Byte Enable Interrupts Do Call Analog(10 , 20 , 30 ) Loop End '### ISR's ##################################################################### Isr_timer0: Incr Lcd_cnt 'nächstes Zeichen im Display-Puffer If Lcd_cnt <= 80 Then Call Lcd_put(5 , 1) 'Zeichen ausgeben If Lcd_cnt = 81 Then Call Lcd_put(2 , 0) 'Cursor at home (2ms) If Lcd_cnt = 250 Then Lcd_cnt = 0 Return '### Sub's ##################################################################### '### DA-Wandler ################################################################ Sub Analog(_w1 , _w2 , _w3 ) If _w1 <> W1_alt Or _w2 <> W2_alt Or _w3 <> W3_alt Then ' If _w1 <> W1_alt Then Sreg.7 = 0 Print _w1 ; Chr(9) ; W1_alt ; Chr(9) ; _w2 ; Chr(9) ; W2_alt ; Chr(9) ; _w3 ; Chr(9) ; W3_alt Sreg.7 = 1 W1_alt = _w1 W2_alt = _w2 W3_alt = _w3 End If End Sub '### LCD ####################################################################### ' Sub Lcd_put(_x , _reg ) _x = 55 End Sub







Zitieren

Lesezeichen