Tonykb
14.04.2012, 19:42
Hallo Liebes Forum! :)
So ich hab mich entschlossen mich hier mal anzumelden weil mir niemand mehr weiterhelfen konnte bisher! Ich hoffe Ihr könnt das ändern ;)
Also zunächst mal ein Syntax aus BASCOM:
$regfile = "m8def.dat"
$crystal = 1000000
Dim 0(4) As Byte
Dim 1(4) As Byte
Dim 2(4) As Byte
Dim 3(4) As Byte
Dim 4(4) As Byte
Dim 5(4) As Byte
Dim 6(4) As Byte
Dim 7(4) As Byte
Dim 8(4) As Byte
Dim 9(4) As Byte
Dim Stat As Bit
Dim Frequenz As Integer
Dim Z1 As Integer
Dim Z2 As Integer
Dim Z3 As Integer
Dim X As Integer
Dim Y As Integer
Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
Enb Alias Portd.0
Clk Alias Portd.1
Dat Alias Portd
Frequenz = 245
Do
Z1 = Frequenz Mod 10
Frequenz = Frequenz / 10
Z2 = Frequenz Mod 10
Frequenz = Frequenz / 10
Z3 = Frequenz Mod 10
Do
For X = 0 To 3
Dat = Lookup(x , Z1)
Clk = 1
Clk = 0
Next X
Loop Until X = 3
X = 0
Do
For X = 0 To 3
Dat = Lookup(x , Z2)
Clk = 1
Clk = 0
Next X
Loop Until X = 3
X = 0
Do
For X = 0 To 3
Dat = Lookup(x , Z3)
Clk = 1
Clk = 0
Next X
Loop Until X = 3
X = 0
Loop
End
0:
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
1:
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000100
2:
Data &B00000000
Data &B00000000
Data &B00000100
Data &B00000000
3:
Data &B00000000
Data &B00000000
Data &B00000100
Data &B00000100
4:
Data &B00000000
Data &B00000100
Data &B00000000
Data &B00000000
5:
Data &B00000000
Data &B00000100
Data &B00000000
Data &B00000100
6:
Data &B00000000
Data &B00000100
Data &B00000100
Data &B00000000
7:
Data &B00000000
Data &B00000100
Data &B00000100
Data &B00000100
8:
Data &B00000100
Data &B00000000
Data &B00000000
Data &B00000000
9:
Data &B00000100
Data &B00000000
Data &B00000000
Data &B00000100
Als aller erstes will ich noch dazu sagen:
Ich weis das die Ansteuerung des Treibers (MC14499) so hier noch nicht funktioniert - ich konnte den Syntax noch nicht abschliesen weil ich leider hier schon hänge..
Mein Problem ist folgendes:
Der AVR soll später über einen Counter und einen Timer die Hz Zahl eines Anliegenden signals ermitteln und dann an 7 segment Anzeigen (3 Stück) weitergeben.
Zum Multiplexen der Anzeigen nutze ich nun den og. IC.
Mein Problem war/ ist eben nur wie ich die Zahlen an den TreiberIC ohne Millionen 'If Then' Schleifen sende...
Ich dachte mir die Zahlen (Durch 4 Bit codiert) In Tabellen zu hauen und dann wie im Syntax über Zählerschleifen (For...) an den IC zu Schicken...
Wenn ich aber den Syntax von oben Compilieren dann Kommen Fehlermeldungen, dass Z1 oder Z2 oder Z3 nicht gefunden wurden ("... Label Not Found").
Was muss ich ändern, oder wie kann ich das eleganter lösen, dass ich nur einen Dreistelligen Wert vom Counter (kommt später noch, hier nur testweise der wert 245) in eine Variable einlese und Diese dann auf 3 Segmentanzeigen ausgeben kann?
BITTE HELFT MIR!!! :)
Danke schonmal
Lg
So ich hab mich entschlossen mich hier mal anzumelden weil mir niemand mehr weiterhelfen konnte bisher! Ich hoffe Ihr könnt das ändern ;)
Also zunächst mal ein Syntax aus BASCOM:
$regfile = "m8def.dat"
$crystal = 1000000
Dim 0(4) As Byte
Dim 1(4) As Byte
Dim 2(4) As Byte
Dim 3(4) As Byte
Dim 4(4) As Byte
Dim 5(4) As Byte
Dim 6(4) As Byte
Dim 7(4) As Byte
Dim 8(4) As Byte
Dim 9(4) As Byte
Dim Stat As Bit
Dim Frequenz As Integer
Dim Z1 As Integer
Dim Z2 As Integer
Dim Z3 As Integer
Dim X As Integer
Dim Y As Integer
Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
Enb Alias Portd.0
Clk Alias Portd.1
Dat Alias Portd
Frequenz = 245
Do
Z1 = Frequenz Mod 10
Frequenz = Frequenz / 10
Z2 = Frequenz Mod 10
Frequenz = Frequenz / 10
Z3 = Frequenz Mod 10
Do
For X = 0 To 3
Dat = Lookup(x , Z1)
Clk = 1
Clk = 0
Next X
Loop Until X = 3
X = 0
Do
For X = 0 To 3
Dat = Lookup(x , Z2)
Clk = 1
Clk = 0
Next X
Loop Until X = 3
X = 0
Do
For X = 0 To 3
Dat = Lookup(x , Z3)
Clk = 1
Clk = 0
Next X
Loop Until X = 3
X = 0
Loop
End
0:
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
1:
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000100
2:
Data &B00000000
Data &B00000000
Data &B00000100
Data &B00000000
3:
Data &B00000000
Data &B00000000
Data &B00000100
Data &B00000100
4:
Data &B00000000
Data &B00000100
Data &B00000000
Data &B00000000
5:
Data &B00000000
Data &B00000100
Data &B00000000
Data &B00000100
6:
Data &B00000000
Data &B00000100
Data &B00000100
Data &B00000000
7:
Data &B00000000
Data &B00000100
Data &B00000100
Data &B00000100
8:
Data &B00000100
Data &B00000000
Data &B00000000
Data &B00000000
9:
Data &B00000100
Data &B00000000
Data &B00000000
Data &B00000100
Als aller erstes will ich noch dazu sagen:
Ich weis das die Ansteuerung des Treibers (MC14499) so hier noch nicht funktioniert - ich konnte den Syntax noch nicht abschliesen weil ich leider hier schon hänge..
Mein Problem ist folgendes:
Der AVR soll später über einen Counter und einen Timer die Hz Zahl eines Anliegenden signals ermitteln und dann an 7 segment Anzeigen (3 Stück) weitergeben.
Zum Multiplexen der Anzeigen nutze ich nun den og. IC.
Mein Problem war/ ist eben nur wie ich die Zahlen an den TreiberIC ohne Millionen 'If Then' Schleifen sende...
Ich dachte mir die Zahlen (Durch 4 Bit codiert) In Tabellen zu hauen und dann wie im Syntax über Zählerschleifen (For...) an den IC zu Schicken...
Wenn ich aber den Syntax von oben Compilieren dann Kommen Fehlermeldungen, dass Z1 oder Z2 oder Z3 nicht gefunden wurden ("... Label Not Found").
Was muss ich ändern, oder wie kann ich das eleganter lösen, dass ich nur einen Dreistelligen Wert vom Counter (kommt später noch, hier nur testweise der wert 245) in eine Variable einlese und Diese dann auf 3 Segmentanzeigen ausgeben kann?
BITTE HELFT MIR!!! :)
Danke schonmal
Lg