- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: Byte über RS485 schlägt fehl

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    10.06.2006
    Ort
    Duisburg-Rheinhausen
    Alter
    78
    Beiträge
    80
    Anzeige

    Powerstation Test
    Versuche das mal so zB Print "raggy";
    ansonsten kommen die steuerzeichen für neue Zeile mit glaube chr(10)
    chr(13)
    raggy

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    10.06.2006
    Ort
    Duisburg-Rheinhausen
    Alter
    78
    Beiträge
    80

    Rs485

    Code:
    $regfile = "m32def.dat"
    $crystal = 8000000
    $baud = 9600
    Config Portc = Output
    
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
    Config Lcd = 40 * 2
    
    Dim Test As String * 10
    
    
    
    Portc.0 = 0
    
    
    Cls                                                         ' Clear the LCD display
    
    
    
    Do
    
       Inputbin Test
    
    
       Locate 1 , 1
       Lcd Test
    
    
    
    Loop
    Code:
    $regfile = "m32def.dat"
    $crystal = 8000000
    $baud = 9600
    
    'Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
    'Config Lcd = 40 * 2
    
    Config Portc = Output
    
    Portc.0 = 1                                                 ' RS485 Treiber auf senden
    
    Do
    
       Print "AVR-Atmega" ;
       Wait 1
    
    
    Loop
    also oben erst senden, dann Empfang. zum Testen ob der Bus in Ordnung ist! Hab ich auch erst so probiert.Ist zwar nicht schön Programiert aber es muss so klappen.
    Gruß raggy

  3. #13
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    43
    Beiträge
    318
    @raggy:

    Du bist mein Retter. es fehlte natürlich das ;

    habe noch ne kleine andere Frage. Ich werte einen SRF02 Ultraschall Sensor aus. Den SRF02 lese ich folgendermaßen aus :



    Code:
    '------------------------ CPU Config -------------------------
    $regfile = "m8def.dat"
    $crystal = 1000000
    $baud = 1200
    $framesize = 42
    $swstack = 42
    $hwstack = 42
    '------------------------ Port Config --------------------------
    Config Portb = Output
    Config Portd.2 = Output
    Config Scl = Portc.5
    Config Sda = Portc.4
    Const Srf02_slaveid = &HE0
    '------------------------ Alias ----------------------------------
    Led1 Alias Portb.0
    Led2 Alias Portb.1
    Led3 Alias Portb.2
    Led4 Alias Portb.3
    Rs485 Alias Portd.2
    '-------------------------- Subs -------------------------------
    
    '--------------------------- RS485 -------------------------------
    Rs485 = 0
    Enable Interrupts
    '----------------------------- Dims ------------------------------
    Dim Entfernung As Integer
    Dim V As Byte
    '----------------------- Funcitons -------------------------
    Declare Function Srf02_firmware(byval Slaveid As Byte) As Byte
    Declare Function Srf02_entfernung(byval Slaveid As Byte) As Integer
    '------------------------- Boot ---------------------------------
    Wait 1
    I2cinit
    V = 1
    Waitms 100
    '---------------------------------- Mainprogramm ------------------
    Main:
    Entfernung = Srf02_entfernung(srf02_slaveid)
    Waitms 100
    Rs485 = 1
    
             Print Entfernung ;
             Do
             Loop Until Ucsra.txc = 1
             Set Ucsra.txc
    
    
    
    Rs485 = 0
    
    Wait 2
    
    Goto Main
    '--------------------------------- SRF_02 ------------------------------------------
    Function Srf02_firmware(byval Slaveid As Byte) As Byte
    Local Firmware As Byte
    Local Slaveid_read As Byte
    
       Slaveid_read = Slaveid + 1
    
       I2cstart
       I2cwbyte Slaveid
       I2cwbyte 0                                               'Leseregister festlegen
       I2cstop
    
       I2cstart
       I2cwbyte Slaveid_read
       I2crbyte Firmware , Nack
       I2cstop
    
       Srf02_firmware = Firmware
    End Function
    
    
    
    Function Srf02_entfernung(byval Slaveid As Byte) As Integer
    Local Lob As Byte
    Local Hib As Byte
    Local Firmware As Byte
    Local Temp As Byte
    Local Slaveid_read As Byte
    
       Slaveid_read = Slaveid + 1
    
       'Messvorgang in starten
       I2cstart
       I2cwbyte Slaveid
       I2cwbyte 0
       I2cwbyte 81                                              'in Zentimetern messen
       I2cstop
    
    
    Warteaufmessung:
       Waitms 1
       Firmware = Srf02_firmware(slaveid)
       If Firmware = 255 Then Goto Warteaufmessung
    
       I2cstart
       I2cwbyte Slaveid
       I2cwbyte 2                                               'Leseregister festlegen
       I2cstop
    
    
       I2cstart
       I2cwbyte Slaveid_read
       I2crbyte Hib , Ack
       I2crbyte Lob , Nack
       I2cstop
    
    
       Srf02_entfernung = Makeint(lob , Hib)
    End Function
    ich übertrage ja den integerwert. auf der Empfängerseite wird mir aber nicht die cm angezeigt sondern wieder wirres Zeug. Kann ich denn von Integer nach String wandeln um es zu übertragen ?

    mfg Kay

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    10.06.2006
    Ort
    Duisburg-Rheinhausen
    Alter
    78
    Beiträge
    80
    seh mal das Forum hier durch, hab da mal was gelesen.damit habe ich mich noch nicht befast.
    gruß raggy viel Glück.

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test