Die Info mit dem 10bit Prescaler hab ich aus nem Buch für Atmel-Programmierung. "....Timer0 ist ein 8-Bit-Timer mit einem vorgeschaltetem 10-Bit-Prescaler."
Das Schalten der Ausgänge für die Zehner/Einer hab ich so gelöst:
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
Dim Messung As Integer
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) / 103 'Wert vom ADC/103 in Variable speichern
Portd = X(messung + 1)
Loop
End
Timer_routine:
Incr A 'Variable um 1 erhöhen
Portb = A 'portb.1 /portb.2 an/aus schalten
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
Trotz viel Lesen und probieren ist es mir aber noch nicht gelungen z.B. eine "10" darzustellen. Ich hab ein Paar Beispiele mit "Select Case" gesehen, hab sie aber nicht verstanden? Ist das eine Möglichkeit die ich verwenden sollte?
Lesezeichen