Beamer RS232 vom AVR aus (von PC geht)

Gast #1044541
Lesenswert?

Hallo,

ich möchte meinen Beamer von einem AVR aus bedienen
Es ist ein Mega32 im Einsatz und der läuft auch schon.

Den Beamer kann ich von einem PC aus ansteuern, indem ich con Hterm aus 
folgenden Befehl sende (Hex)
A9 17 15 00 00 00 17 9A

Dann geht der Beamer an und ich kann weitere Befehle senden.

Angeschlossen ist er wie folgt:
Beamer RS232 Buchse Pin 2 an PC COM1 Stecker Pin 3
Beamer RS232 Buchse Pin 3 an PC COM1 Stecker Pin 2
Beamer RS232 Buchse Pin 5 an PC COM1 Stecker Pin 5


Was muss ich jetzt machen, damit ich die Hex Daten an den Beamer von 
einem AVR aus senden kann.


Soviel habe ich schon erlesen:
TX
RX
Max232

Nur was brauche ich ???
Gast #1044558
Lesenswert?

Wenn ich den Beamer vom PC aus ansteuern, dann brauche ich keinen Max232

Wenn ich nun von einem AVR ansteuern will, muss ich doch einen zwischen 
machen.

Ist das richtig?



(serielle Übertrgaung ist neu für mich, daher die Fragen :-)  )
Gast #1044567
Lesenswert?

Also alles 5V...

nur wie kommt der Max dann auf den 12V Pegel.
Den bekommt der Beamer so doch vom PC aus, wenn ich nur per 
Nullmodemkabel verbinde.

Teste kann ich das erst morgen, das schaffe ich heute nicht mehr.
(oh ist schon morgen)
Gast #1044709
Lesenswert?

Hallo,

jetzt habe ich den Max232 incl Verbindung zu einem PC am laufen.
Ich kann mit Print auch Texte an den PC senden.

Dann habe ich folgendes Programm genommen und an den PC gesendet:
1
   $regfile = "m32def.dat"
2
   $crystal = 8000000
3
   $hwstack = 32
4
   $swstack = 10
5
   $framesize = 40
6
   $baud = 38400
7

8
   Config Rc5 = Pind.6
9

10
   Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.3 , Db6 = Portc.2 , Db7 = Portc.1 , E = Portc.0 , Rs = Portd.7
11
   Config Lcd = 16 * 2
12
   Config Lcdbus = 4
13
   Cursor Off
14
   Cls
15

16
   Enable Interrupts
17

18
   Dim Address As Byte
19
   Dim Command As Byte
20

21
   Dim Block1 As Byte
22
   Dim Block2 As Byte
23
   Dim Block3 As Byte
24
   Dim Block4 As Byte
25
   Dim Block5 As Byte
26
   Dim Block6 As Byte
27
   Dim Block7 As Byte
28
   Dim Block8 As Byte
29

30
   Block1 = &HA9
31
   Block2 = &H17
32
   Block3 = &H15
33
   Block4 = &H00
34
   Block5 = &H00
35
   Block6 = &H00
36
   Block7 = &H17
37
   Block8 = &H9A
38

39
Main:
40

41
Do
42

43
   Getrc5(address , Command)
44
      If Address < 255 Then
45
         Locate 1 , 1 : Lcd "Adr: " : Lcd Address : Lcd "  Com: " : Lcd Command
46
         Command = Command And &B01111111
47
      End If
48

49
  If Command = 1 And Address = 5 Then Goto 1
50

51
Loop
52

53
1:
54

55
Print Hex(Block1) ; Hex(Block2) ; Hex(Block3) ; Hex(Block4) ; Hex(Block5) ; Hex(Block6) ; Hex(Block7) ; Hex(Block8)
56

57
Goto Main:


Am PC empfange ich A91715000000179A

Wenn ich das aber zu meinem Beamer sende, dann macht der nichts

???
#1044740
Lesenswert?

dim Block(8) as byte

 Block(1) = &HA9
   Block(2) = &H17
   Block(3) = &H15
   Block(4) = &H00
   Block(5) = &H00
   Block(6) = &H00
   Block(7) = &H17
   Block(8) = &H9A

Main:

Do

   Getrc5(address , Command)
      If Address < 255 Then
         Locate 1 , 1 : Lcd "Adr: " : Lcd Address : Lcd "  Com: " : Lcd 
Command
         Command = Command And &B01111111
      End If

  If Command = 1 And Address = 5 Then Goto 1

Loop

1:
Printbin Block(1) ; 8  ' <-------


und das: Enable Interrupts
brauchste nicht, da du ja noch keine IRQs benutzt
Gast #1044752
Lesenswert?

Wie kann ich denn in Bascom folgende Sachen einstellen:
COM1 - 38.4 kbps - 8 Datenbits - 1 Stopbit - Parity auf EVEN


die kbps mache ich über $baud und den Rest?
Die Parity muss auf even stehen, sonst geht es nicht, habe ich gerade 
nochmal mit Hterm getestet.
Gast #1044800
Lesenswert?

ICH HABE ES HINBEKOMMEN !!!


FREU FREU FREU
1
   $regfile = "m32def.dat"
2
   $crystal = 8000000
3
   $hwstack = 32
4
   $swstack = 10
5
   $framesize = 40
6
   $baud = 38400
7

8
   Config Com1 = 38400 , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 8 , Clockpol = 0
9

10
   Config Rc5 = Pind.6
11

12
   Dim Address As Byte
13
   Dim Command As Byte
14

15
   Dim Block(8) As Byte
16

17
   Block(1) = &HA9
18
   Block(2) = &H19
19
   Block(3) = &H66
20
   Block(4) = &H00
21
   Block(5) = &H00
22
   Block(6) = &H00
23
   Block(7) = &H7F
24
   Block(8) = &H9A
25

26
   Enable Interrupts
27

28
Main:
29

30
Do
31
   Getrc5(address , Command)
32
   If Address < 255 Then
33
      Command = Command And &B01111111
34
   End If
35

36
  If Command = 1 And Address = 5 Then Goto 1
37

38
Loop
39

40
1:
41

42
Printbin Block(1) ; 8
43

44
Wait 1
45

46
Goto Main


VIELEN DANK AN ALLE, DIE MITGEHOLFEN HABEN...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren