PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vernetzung über RXD und TXD



Furtion
25.12.2005, 16:01
Hi, ich habe ein problem (wie immer)
und zwar will ich ne Atmega16 und ne Atmega8535 miteinander vernetzen. Die Leitungen habe ich gekreutzt und auch sonst alles fertig nur das Programm noch nicht

Ich wollte so was machen:

Der 1 Controller:

.....
....
$Baud = 9600

Do
Print "H"
Loop
end

Der 2te Controller

......
.....
$Baud = 9600

Do

mehr weiß ich aber auch nicht

muss man da jetzt sagen If Input "H"

super_castle
25.12.2005, 16:28
Die RX schliesst du immer am Interrupt an.

Castle

linux_80
25.12.2005, 16:43
Hallo Furtion,

das sollte in etwa so werden:
Dim V as Byte
Input V
if v = 'H' then machwas

evtl. ein loop drumrum.

Furtion
26.12.2005, 11:32
Das geht net. Ich habe hier mal das Programm

$regfile = "m8535.dat"
$crystal = 1024000
$baud = 9600

Ddrd = &B01100000

Dim I As Byte

Do

Input I

If I = "00001" Then
Portd.5 = 1
Else
Portd.5 = 0
End If

Loop

End

linux_80
26.12.2005, 12:11
Wenn I ein Byte ist, kann es nur eine Zahl sein, von 0 bis 255, die Du abfragen kannst, also keine ".
Wenn du Zeichen einlesen willst, dann oben als String dimensionieren.

Dim I as String *10

wenn 10 Zeichen rein sollen.

bluelight_electronic
26.12.2005, 12:31
hi,

naja das sieht mir alles nach basecom aus ... und ich hoff das is da nich anders als bei normalen sprachen ^^

aber die "Aussage Die RX schliesst du immer am Interrupt an." ist recht Falsch .. ich nutze Interrupts fast nie wenn ich se nich UMBEDINGT brauch .. (im mom hab ich z.b. den mega162V mit 2 seriellen schnittstellen die ALLES überwachen müssen und sich auch kein fehler leisten dürfen ...) und troztdem ohne interrupt ... (nur mal so nebenbei..) wie gesagt schlagt mich falls es bei basecom anders sein sollte aber..

und was spricht gegen 0x48 ? dann hast auch dein H ..

Furtion
26.12.2005, 12:52
OK ich habe hier noch 2 Programme die Hat mein Vater geschrieben da soll erst die Eine Led angehen dann soll die ausgehen und eine andere nach ner bestimten zeit angehen und danach noch ne andere. Nur die Letze geht nicht an.

---------------------------Hier das erste Programm(Sender)-------------------


$regfile = "m16def.dat"
$crystal = 1024000
$baud = 9600

Ddrd = &B01100000

Dim I As Integer
Dim Zeit As Integer

Do


Select Case I
Case 0
Portd.5 = 1
Portd.6 = 0
Zeit = 1000
Case 1
Portd.5 = 0
Portd.6 = 1
Zeit = 1000
Case Else
Zeit = 0
I = -1
End Select

I = I + 1


Waitms Zeit

Loop

End

-----------------------Hier das Empfangsprogramm-------------------------

$regfile = "m8535.dat"
$crystal = 1024000
$baud = 9600

Ddrd = &B01100000

Dim I As Integer
Dim Zeit As Integer
Dim E As String * 4

Do


Input E

Select Case E
Case "0001"
Portd.5 = 1
Portd.6 = 0
Case "0010"
Portd.5 = 0
Portd.6 = 1
End Select

Loop

End