- 3D-Druck Einstieg und Tipps         
Seite 1 von 9 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 84

Thema: Gerät über RS232 ansprechen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    39
    Beiträge
    366

    Gerät über RS232 ansprechen

    Hallo,
    ich habe eine Art von messgerät, das ich über die serielle schnittstelle ansprechen kann um werte zu erhalten.
    dazu benutze ich einen mega 8 und einen max232 die bautrate muss bei 19200 liegen.

    jetzt muss ich mit Bascom ein prog schreiben, das mir ein packet mit insegsamt 10 bytes sendet:

    byte1,2,3,4,5,6,7,8,9,10:

    002 050 000 032 032 032 032 032 037 135

    und ein packet von 8 bytes wieder empfangt:
    byte1,2,3,4,5,6,7,8:

    000 006 002 002 002 000 105 115

    dabei soll jedes empfangene byte in einer variablen hinterlegt werden, um sie danach zu auszuwerten.



    wenn z.b. das 2. empfangene byte 002 enthält, soll auf dem lcd 'ok' angezeigt werden.


    ich hoffe sehr, das mir jemand dabei helfen kann. alle meine versuche sind bis jetzt gescheitert.

    gruß

    xeus

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Du solltest schon etwas genauer sagen, WAS nicht geht, bzw. wieweit du gekommen bist.
    Ev. Code posten
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    39
    Beiträge
    366
    mein erstes prob ist, das ich nicht weis in welchem still ich das ganze senden soll. bis jetzt hab ich immer nur zeichen und keine bytes wie oben beschrieben gesendet.

    hier der bisherige code

    Code:
    do
    print "002 050 000 032 032 032 032 032 037 135"
    loop
    so bekomm ich halt nur einen string hin und nicht die bytes.


    angenommen ich würd es schaffen es als bytes zu senden:

    bytes gesendet
    mc soll auf antwort warten

    Code:
    do 
    if usr.rxc=1
    I=udr
    select case
    case ' was jetzt empfangen wird, soll auf dem lcd erscheinen???
    lcd ???
    end select
    end if
    loop
    ich hab echt keinen plan

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Man kann das folgendermaßen senden
    do
    print chr(32); chr(32); chr(32); chr(37); chr(135) ;
    print chr(32); chr(32); chr(32); chr(37); chr(135) ;
    loop
    (auf zwei Zeilen aufgeteilt, damit übersichtlich bleibt)
    Es werden so bei jedem Loop zehn Byte gesendet
    ABER: das ist weder elegant noch gut brauchbar.
    Mach lieber ein Array
    Code:
    DIM Sendepaket(10) as byte
    'erstmal die Daten ins Paket reinschreiben
       Sendepaket(1) = 2 
       Sendepaket(2) = 50 
       Sendepaket(3) = 0 
       Sendepaket(4) = 32 
       Sendepaket(5) = 32 
       Sendepaket(6) = 32 
       Sendepaket(7) = 32 
       Sendepaket(8) = 32 
       Sendepaket(9) = 37 
       Sendepaket(10) = 135
    
    'und jetz komplett alle 10 Byte senden 
    Do
     PRINTBIN Sendepaket(1); 10
    Loop
    Beim empfang geht's umgekehrt:
    Code:
    DIM Sendepaket(10) as byte
    
    DO
    ' zehn byte empfangen
     INPUTBIN Sendepaket(1), 10  
       if Sendepaket(2) = 2 then LCD "OK" 
    LOOP
    Schau mal
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    39
    Beiträge
    366
    super, das senden funzt schon, allerdings nur mit einer baudrate von 4800.
    um das gerät aber ansprechen zukönnen benötige ich unbedingt 19200.

    was kann ich in diesem fall tun?

    und nochmals danke für die rasche hilfe!

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    ganz einfach:

    $BAUD = 19200

    Gruß
    Christopher

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    39
    Beiträge
    366
    ha, ha, ha

    das hab ich doch gemacht. nur an der empfangsseite kommt es verfälscht an.

    ja, ich hab auch am empfangsterminal 19200 eingestellt

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Ja, das ist wahr, das hilft enorm
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    39
    Beiträge
    366
    Mein Problem, hab ich aber damit noch nicht gelöst

  10. #10
    Gast
    Hallo

    Waher bekommt der AVR den seinen Takt

    Intern oder extern ?

    Wie hoch ?

    MFG
    Dieter

Seite 1 von 9 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress