Ich hab mir nun folgendes Programm erarbeitet
. Die Temperatur haut schonmal ganz gut hin. Allerdings hab ich es immer noch nicht hinbekommen eine weiter Stelle der 7-Segment-Anzeige anzusprechen. Hier soll einfach ein "°" angezeigt werden. Den Code in der Timer-Routine hab ich immer noch nicht ganz verstanden. Vielleicht kann mir jemand auf die Sprünge helfen.
Code:
$regfile = "M8def.dat"
$crystal = 4000000
'--------Segmente---------------
Config Portd = Output
Portd = 1
'----------Anode Display---------
Config Portb = Output
Digit1 Alias Portb.1
Digit2 Alias Portb.2
Digit3 Alias Portb.3
Portb = 0
'---------AD-Wandler Config-------------
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
'--------Timer Config----------------
Dim A As Byte 'Umschaltung einer/zehner
A = 1
Config Timer0 = Timer , Prescale = 64
On Timer0 Timer_routine
Enable Timer0
Enable Interrupts
Dim Messung As Word
Dim Stelle(3) As Word
Dim I As Byte
Dim X(11) As Byte
Restore Segmente
For I = 1 To 10
Read X(i)
Next I
Do
Messung = Getadc(0) * 64
Messung = Messung / 101
Messung = Messung - 151
Stelle(1) = Messung / 10
Incr Stelle(1)
Stelle(2) = Messung Mod 10
Incr Stelle(2)
Loop
End
Timer_routine:
Portb.a = 0 'Vorherige Stelle ausschalten
Incr A 'Neue Segmente ausgeben
If A = 3 Then A = 1
Portd = X(stelle(a))
Portb.a = 1
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 Grad
Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00 , &H10 , &H63
Lesezeichen