----------------------------------------------
Habe hier ein kleines Problem mit 4 Siebensegment Anzeigen.
Brauche noch eine umwandelung von Dezimalwert in Passenden
Binärwärt zur ausgabe 7-Segment.
Im Programm wierd ein Drehentcoder abgefragt und ein Zähler hoch-
gezählt der dann auf der Anzeige erscheinen soll.
Programmteile sind soweit wie möglich getestet und Funktionieren soweit
ganz gut nur halt die Umwandelung in Bin fehlt mir noch ganz.
Vieleicht kann mir ja hier einer weiterhelfen ????
Die Hardware ist aufgebaut und mit anderen Programmteilen erfolgreich
Getestet.
Habe schon seit über 1Woche nach Info im Netz gesucht nur leider ohne
Erfolg .
Währe nett wenn sich das mal jemand anschauen könnte !
----------------------- ----------------------------
Habe hier ein kleines Problem mit 4 Siebensegment Anzeigen.
Brauche noch eine umwandelung von Dezimalwert in Passenden
Binärwärt zur ausgabe 7-Segment.
Im Programm wierd ein Drehentcoder abgefragt und ein Zähler hoch-
gezählt der dann auf der Anzeige erscheinen soll.
Programmteile sind soweit wie möglich getestet und Funktionieren soweit
ganz gut nur halt die Umwandelung in Bin fehlt mir noch ganz.
Vieleicht kann mir ja hier einer weiterhelfen ????
Code:
$regfile = "M8def.dat"
$crystal = 16000000
'--------Segmente---------------
Config Portd = Output
Portd = 0
'----------Anode Display---------
Config Portb = Output
Portb = 0
'---------Pin fuer Tasteneingang---
Portc.2 = 1
Dim Stelle(4) As Byte
Dim I As Byte
Dim X(11) As Byte
Dim B As Byte
Dim C As Integer
Dim F As String * 5 'Anlegen eines Strings mit 5 Elementen
Dim D(5) As String * 1 'Anlegen eines Strings mit 5 Elementen je 1 Zeichen
Dim G As Integer
Restore Segmente
For I = 1 To 11
Read X(i)
Next I
Dim A As Byte
Dim E As Byte
'-------Timer----------------------
Config Timer0 = Timer , Prescale = 256
On Timer0 Timer_routine
Enable Timer0
Enable Interrupts
A = 1
E = 1
Anfang:
Do
G = C
F = Str(a) 'Zaehler Umwandeln in einen String
D(1) = Mid(f , 1 , 1) 'Erstes Element von D 1.Zeichen
D(2) = Mid(f , 2 , 1) 'Zweites Element von D 2.Zeichen
D(3) = Mid(f , 3 , 1) 'Drietes Element von D 3.Zeichen
D(4) = Mid(f , 4 , 1) 'Viertes Element von D 4.Zeichen
D(5) = Mid(f , 5 , 1) 'Fuenftes Element von D 5.Zeichen
B = Encoder(pinc.0 , Pinc.1 , Links , Rechts , 0)
If Pinc.2 = 0 Then Goto Taste
' im folgendem Code fehlt die Umwandelung in Bin
Stelle(1) = D(1) 'D(1) 'Hinter dem Komma wird abgeschnitten, enthält also die Zehner
Stelle(2) = D(2) 'D(2) 'gibt den Rest, also die Einer
Stelle(3) = D(3) 'D(3) 'Hinter dem Komma wird abgeschnitten, enthält also die Zehner
Stelle(4) = D(4) 'D(4)
Stelle(5) = D(5) 'D(4)
Loop
End
Timer_routine:
Portd = Stelle(a) 'Neue Segmente ausgeben
Incr A
If A = 5 Then A = 1 ' X(stelle(a))
Portb = E 'Neue Stelle einschalten
E = E * 2
If E > 8 Then E = 1
Return
Goto Anfang
' Unterprogramm Rechtsdrehung
Rechts:
C = C + 1 'Drehgeberwert + 1
Return
' Unterprogramm Linksdrehung
Links:
C = C - 1 'Drehgeberwert - 1
Return
' Unterprogramm Taste gedrueckt
Taste:
Locate 2 , 1
C = 0 'bei Tastendruck Drehgeberwert=0
Goto Anfang
Segmente:
' 0 1 2 3 4 5
Data &B00111111 , &B00000110 , &B01011011 , &B01001111 , &B01100110 , &B01101101
' 6 7 8 9 DP
Data &B01111100 , &B00000111 , &B01111111 , &B01100111 , &B10000000
Die Hardware ist aufgebaut und mit anderen Programmteilen erfolgreich
Getestet.
Habe schon seit über 1Woche nach Info im Netz gesucht nur leider ohne
Erfolg .
Währe nett wenn sich das mal jemand anschauen könnte !
----------------------- ----------------------------