Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR setzt beliebig Variablen
Ja, hab wieder einen "Knopf" im AVR....
Er setzt mir die Varialbe "Da" beliebig...
Unter E wird eine normale Zahl gespeichert (kleiner als 255), die im Array Q(i) liegt.
Jetzt soll ins Array y jede einzelne dieser Binärziffern eingeräumt werden.
Dazu wird die Zahl zuerst in Binär verwandelt.
Und genau wenn er das tut, setzt er bei "da" den Wert 49... Wenn er dann den Wert bei Incr da erhöht, geht er auf 50. Wenn er das nächste mal eine Binärziffer draus macht, geht sie wieder auf 49.
Das M=bin(e) gehört in die zweite For-Schleife hinein, da der mid-Befehl den Binärstring irgendwie zerrupft, ich muss ihn also vorher jedes mal neu herstellen.
Nur: Wieso zum Himmel setzt er bei der Variable da den Wert 49, wenn er da durchläuft??
Da = 0
For I = 1 To U
E = Q(i)
For R = 1 To 8
M = Bin(e)
P = Mid(m , R , 1)
C = Val(o)
Incr Da
Y(da) = C
Next R
Next I
Keep cool, Kollege. Wenn der Bascom zum "zerrupfen" anfängt, hat's was mit der Definition.
Du wirst wohl deinen ganze Source herzeigen müssen, mit den DIMs und alllem.
Ja,so wird keiner schlau draus.
Ok, aachtung, hier kommt er:
$regfile = "m8def.dat"
$crystal = 6000000
$hwstack 128
$swstack 128
Dim X(400) As Byte
Dim Y(300) As Byte
Dim H(27) As String * 1 'Array für Codiertes Byte und Präambel
Dim I As Byte 'For-Schleifen-Zählvariable
Dim R As Byte 'For-Schleifen-Zählvariable
Dim B As Byte '
Dim T As Byte
Dim L As Word
Dim O As Word
Dim Q(40) As Byte
Dim U As Byte
U = 0
Dim J As Byte
J = 1
Dim W As Byte
W = 1
Dim E As Byte
Dim M As String * 2
Dim P As String * 1
Dim C As Byte
C = 0
Dim Da As Byte
Da = 0
Dim Z As Byte
Z = 0
Dim K As Byte
Ddrb.1 = 1 'FET-Ausgang
Ddrb.2 = 0 'Sende-Taster-Eingang
Portb.2 = 1
Ddrb.3 = 0
Portb.3 = 1 'Up-Taster
Ddrb.4 = 0
Portb.4 = 1 'Down-Taster
Ddrb.5 = 0
Portb.5 = 1 'Enter-Taster
H(1) = " "
H(2) = "A"
H(3) = "B"
H(4) = "C"
H(5) = "D"
H(6) = "E"
H(7) = "F"
H(8) = "G"
H(9) = "H"
H(10) = "I"
H(11) = "J"
H(12) = "K"
H(13) = "L"
H(14) = "M"
H(15) = "N"
H(16) = "O"
H(17) = "P"
H(18) = "Q"
H(19) = "R"
H(20) = "S"
H(21) = "T"
H(22) = "U"
H(23) = "V"
H(24) = "W"
H(25) = "X"
H(26) = "Y"
H(27) = "Z"
X(1) = 0
X(2) = 1
X(3) = 0
X(4) = 1
X(5) = 0
X(6) = 1
X(7) = 0
X(8) = 1
Config Lcd = 20 * 2
Config Lcdpin = Pin , E = Portb.0 , Rs = Portd.4 , Db7 = Portd.3 , Db6 = Portd.2 , Db5 = Portd.1 , Db4 = Portd.0
Cursor On
Cls
Config Timer1 = Timer , Prescale = 1
Enable Interrupts
Enable Timer1
On Timer1 Senden
Stop Timer1
L = 59000 'Zuerst die Präambel mit Zeitabstand x
O = 65534 - L
O = O / 2
O = 65534 - O
T = 1
Locate 1 , 1
Lcd "Bitte Text eingeben"
Locate 2 , 1
Do
If Pinb.2 = 0 Then ' Senden-Taste
Waitms 200
Cls
Da = 0
For I = 1 To U
E = Q(i)
For R = 1 To 8
M = Bin(e)
P = Mid(m , R , 1)
C = Val(o)
Incr Da
Y(da) = C
Next R
Next I
' Jetzt wird dieses Byte per Manchester-Verfahren codiert:
' 1=01
' 0=10
B = 9
K = 8 * U
For I = 1 To K Step 1
If Y(i) = 1 Then
X(b) = 0
Incr B
X(b) = 1
Elseif Y(i) = 0 Then
X(b) = 1
Incr B
X(b) = 0
End If
Incr B
Next I
' Nun haben wir im Array x(1-24) das Manchester-Codierte Byte und die (nicht codierte) Präambel.
' Jetzt muss dieses Byte gesendet werden.
' Dazu verwenden wir Timer1
Timer1 = L
Start Timer1
End If
If T = 9 Then
L = O 'Dann das Byte mit Flankenwechsel nach Zeitabstand x/2
Timer1 = L
Portb.1 = X(t)
Incr T
End If
Z = U * 16
Z = U + 9
If T = Z Then
Stop Timer1
T = 1
L = 59000
U = 0
J = 1
W = 1
Portb.1 = 0
Locate 1 , 1
Lcd "gesendet"
Wait 3
Locate 1 , 1
Lcd "Bitte Text eingeben"
Locate 2 , 1
Lcd " "
End If
If Pinb.3 = 0 Then ' Up-Taste
Waitms 200
Incr J
If J = 28 Then
J = 1
End If
Locate 2 , W
Lcd H(j)
End If
If Pinb.4 = 0 Then ' Down-Taste
Waitms 200
Decr J
If J = 0 Then
J = 27
End If
Locate 2 , W
Lcd H(j)
End If
If Pinb.5 = 0 Then
Incr W 'Enter-Taste
Waitms 200
Incr U
Q(u) = J
Locate 2 , W
J = 1
Lcd H(j)
End If
Loop
Senden:
Timer1 = L
Portb.1 = X(t)
Incr T
Return
End
E ist ein Byte
M ist ein String *2
P ist ein String *1
da ist ein Byte
Irgendwie sollte er ja trotzdem nicht einfach so Werte zuordnen...
??
Huch,da muß ich erstmal ne Struktur reinbekommen um nicht die übersicht zu verlieren.
Ich meld mich wieder................
Struktur? Das ist Struktur! :)
So einen Aufwand nur für mich?
Läk beck! Danke Vielmals! Dies ist noch das einzige Problem vor dem fertigen Programm....
Ah, ich habs!
Das müssen String *8 sein und
C=val(p)
dann gehts...
Wie,erledigt ?
Oller spielverderber :D :D
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.