Sieht doch gar nicht so schlecht aus. Ich habe mal ein paar kleine Änderungen gemacht. Probier es mal aus.
Code:$regfile = "M8def.dat" $crystal = 1000000 '--------Segmente--------------- Config Portd = Output Portd = 1 '----------Anode Display--------- Config Portb = Output Digit1 Alias Portb.1 Digit2 Alias Portb.2 Portb = 0 '---------AD-Wandler Config------------- Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc '--------Timer Config---------------- Dim A As Byte 'Umschaltung einer/zehner Config Timer0 = Timer , Prescale = 8 On Timer0 Timer_routine Enable Timer0 Enable Interrupts A = 1 Dim Messung As Word Dim Stelle(2) As Byte Dim I As Byte Dim X(10) As Byte Restore Segmente For I = 1 To 10 Read X(i) Next I Do Messung = Getadc(0) / 11 'Wert vom ADC/11 (0-99) in Variable speichern Stelle(1) =messung / 10 'Hinter dem Komma wird abgeschnitten, enthält also die Zehner Incr Stelle(1) 'Damit die Werte von 1-10 gehen Stelle(2)=messung mod 10 'gibt den Rest, also die Einer Incr Stelle(2) Loop End Timer_routine: Portb.a = 0 'Vorherige Stelle ausschalten Incr A If A=3 Then A=1 Portd=X(Stelle(A)) 'Neue Segmente ausgeben Portb.a = 1 'Neue Stelle einschalten Return Segmente: 'gemeinsame Anode: ' 0 1 2 3 4 5 6 7 8 9 'Data &H3F , &H6 , &H05B , &H04F , &H066 , &H06D , &H07D , &H7 , &H7F , &H6F 'gemeinsame kathode: ' 0 1 2 3 4 5 6 7 8 9 Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00 , &H10







Zitieren

Lesezeichen