- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 9 von 9

Thema: Software UART öffnen...

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360

    Software UART öffnen...

    Anzeige

    E-Bike
    Code:
    Readeeprom Baud_com1 , W1
    Incr W1
    Incr W1
    Readeeprom Baud_com2 , W1
    Incr W1
    Incr W1
    Readeeprom Databits_com1 , W1
    Incr W1
    Readeeprom Databits_com2 , W1
    Incr W1
    Readeeprom Parity_com1 , W1
    Incr W1
    Readeeprom Parity_com2 , W1
    Incr W1
    Readeeprom Stopbits_com1 , W1
    Incr W1
    Readeeprom Stopbits_com2 , W1
    Incr W1
    
    '--- [ Open Communication ports ] ----------------------------------------------
    S1 = "COMD.7:" ; Str(baud_com1) ; "," ; Str(databits_com1) ; "," ; Chr(parity_com1) ; "," ; Str(stopbits_com1)
    Open S1 For Output As #1
    Damit versuche ich ein Software UART zu öffnen. Leider bekomm ich 3 Feher in den letzten 2 Zeilen.

    Invalid datatype[200]
    Variable not dimensioned 200->0
    Invalid datatype[0]

    Warum?!?

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Ort
    Dortmund
    Alter
    31
    Beiträge
    1.641
    wenn das dein ganzer Code ist kann das gar nicht funktionieren. Dim S1 as (weiß nich)??? Würde eventuell helfen.

    Und eventuell würd ich auch erwägen W1 erstmal zu dimeln.

    Ist überhaupt notwendig, alles ausm eeprom zu lesen? wenn nicht, würd ichs lassen und es hardcoden.
    o
    L_
    OL
    This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!

    http://de.youtube.com/watch?v=qV1cZ6jUeGE

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    Code:
    '--- [ Dim. Variables ] --------------------------------------------------------
    Dim Address As Byte                                         'Aktuelle Moduladresse
    Dim New_address As Byte                                     'Nach Start eingestellte Moduladresse ! nicht aktuell
    
    Dim Channel As Byte                                         'Aktueller Kanal
    Dim New_channel As Byte                                     'Nach Start eingestellter Kanal ! nicht aktuell
    
    Dim Baud_com1 As Integer                                    'Baudrate fuer Com1
    Dim Baud_com2 As Integer                                    'Baudrate fuer Com2
    Dim Databits_com1 As Byte                                   'DataBits fuer Com1
    Dim Databits_com2 As Byte                                   'DataBits fuer Com2
    Dim Parity_com1 As Byte                                     'Parity fuer Com1
    Dim Parity_com2 As Byte                                     'Parity fuer Com2
    Dim Stopbits_com1 As Byte                                   'StopBits fuer Com1
    Dim Stopbits_com2 As Byte                                   'StopBits fuer Com2
    
    Dim Buffer_ps2 As String * 20                               'Buffer fuer PS2
    Dim Buffer_com1 As String * 20                              'Buffer fuer Com1
    Dim Buffer_com2 As String * 20                              'Buffer fuer Com2
    Dim Buffer_radio As String * 20                             'Buffer fuer Funkuebertragung
    
    Dim Datatosendbuffer(10) As String * 20                     'Buffer fuer Daten welche gesendet werden sollen
    
    'Helping Variables
    
    Dim I1 As Integer
    Dim I2 As Integer
    Dim B1 As Byte
    Dim B2 As Byte
    Dim W1 As Byte
    Dim W2 As Byte
    Dim S1 As String * 20
    
    '--- [ Constants ] -------------------------------------------------------------
    Const Radio_begin = "<"
    Const Radio_end = ">"
    
    '--- [ Read eeram ] ------------------------------------------------------------
    '0: Baud_COM1          Word  0
    '1: Baud_COM1          Word  1
    '2: Baud_COM2          Word  0
    '3: Baud_COM2          Word  1
    '4: DataBits_COM1      Byte  0
    '5: DataBits_COM2      Byte  0
    '6: Parity_COM1        Char/Byte 0
    '7: Parity_COM2        Char/Byte 0
    '8: StopBits_COM1      Byte  0
    '9: StopBits_COM2      Byte  0
    
    W1 = 0
    Readeeprom Baud_com1 , W1
    Incr W1
    Incr W1
    Readeeprom Baud_com2 , W1
    Incr W1
    Incr W1
    Readeeprom Databits_com1 , W1
    Incr W1
    Readeeprom Databits_com2 , W1
    Incr W1
    Readeeprom Parity_com1 , W1
    Incr W1
    Readeeprom Parity_com2 , W1
    Incr W1
    Readeeprom Stopbits_com1 , W1
    Incr W1
    Readeeprom Stopbits_com2 , W1
    Incr W1
    
    '--- [ Open Communication ports ] ----------------------------------------------
    'S1 = "COMD.7:" ; Str(baud_com1) ; "," ; Str(databits_com1) ; "," ; Chr(parity_com1) ; "," ; Str(stopbits_com1)
    Open "COMD.7:9600,8,n,1" For Output As #1                   'SUART2.TXD
    Open "COMD.6:9600,8,n,1" For Input As #2                    'SUART2.RXD
    Open "COMD.5:9600,8,n,1" For Output As #3                   'SUART1.TXD
    Open "COMD.4:9600,8,n,1" For Input As #4                    'SUART1.RXD
    Das mit dem Eprom is notwendig

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Code:
    Dim W1 As Byte
    Dim S1 As String * 16
    Dim Baud_com1 As Integer
    Dim Baud_com2 As Integer
    Dim Databits_com1 As Byte
    Dim Databits_com2 As Byte
    Dim Parity_com1 As Byte
    Dim Parity_com2 As Byte
    Dim Stopbits_com1 As Byte
    Dim Stopbits_com2 As Byte
    
    Readeeprom Baud_com1 , W1
    Incr W1
    Incr W1
    Readeeprom Baud_com2 , W1
    Incr W1
    Incr W1
    Readeeprom Databits_com1 , W1
    Incr W1
    Readeeprom Databits_com2 , W1
    Incr W1
    Readeeprom Parity_com1 , W1
    Incr W1
    Readeeprom Parity_com2 , W1
    Incr W1
    Readeeprom Stopbits_com1 , W1
    Incr W1
    Readeeprom Stopbits_com2 , W1
    Incr W1
    
    '--- [ Open Communication ports ] ----------------------------------------------
    S1 = "COMD.7:" + Str(baud_com1) + "," + Str(databits_com1) + "," + Chr(parity_com1) + "," + Str(stopbits_com1)
    'Open S1 For Output As #1
    Besonders die Zeile:
    Code:
    S1 = "COMD.7:" + Str(baud_com1) + "," + Str(databits_com1) + "," + Chr(parity_com1) + "," + Str(stopbits_com1)
    [/code]

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    Code:
    S1 = "COMD.7:" + Str(baud_com1) + "," + Str(databits_com1) + "," + Chr(parity_com1) + "," + Str(stopbits_com1)
    Open S1 For Output As #2                                    'SUART2.TXD
    Hab ich nun überarbeitet.
    Nun bekomme ich vom Compiler 2 mal
    External routine not found
    und 2 mal
    Label not found

    Bei beiden handelt sich es um
    _FILEOPEN_OUTPUT
    _FILECLOSE

    Schaft das der Compiler etwa nicht?!?

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Kann ich so nicht nachvollziehen. Dazu brauche ich mehr Code

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    :wall:

    Compiliers doch selber mal:

    Code:
    '--- [ Init. Compiler ] --------------------------------------------------------
    $regfile = "m32def.dat"                                     'Chip Mega32
    $crystal = 16000000                                         '16 MHz
    $baud = 9600                                                'Baudrate UART0 / Funk
    
    '--- [ Init. Devices ] ---------------------------------------------------------
    '--- [ Dim. Variables ] --------------------------------------------------------
    Dim Baud_com1 As Integer                                    'Baudrate fuer Com1
    Dim Baud_com2 As Integer                                    'Baudrate fuer Com2
    Dim Databits_com1 As Byte                                   'DataBits fuer Com1
    Dim Databits_com2 As Byte                                   'DataBits fuer Com2
    Dim Parity_com1 As Byte                                     'Parity fuer Com1
    Dim Parity_com2 As Byte                                     'Parity fuer Com2
    Dim Stopbits_com1 As Byte                                   'StopBits fuer Com1
    Dim Stopbits_com2 As Byte                                   'StopBits fuer Com2
    
    Dim Buffer_ps2 As String * 20                               'Buffer fuer PS2
    Dim Buffer_com1 As String * 20                              'Buffer fuer Com1
    Dim Buffer_com2 As String * 20                              'Buffer fuer Com2
    Dim Buffer_radio As String * 20                             'Buffer fuer Funkuebertragung
    
    Dim Datatosendbuffer(10) As String * 20                     'Buffer fuer Daten welche gesendet werden sollen
    
    Dim Online As Bit                                           'Is module connected to server
    Online = 0                                                  'not connected yet
    Dim Error As Byte                                           'error?
    Error = 0                                                   'set module -> no error
    Dim Voltage As Word                                         'Betriebsspannung
    Dim Rssi_adc As Word                                        'RSSI
    Dim Rssi_percent As Byte                                    'RSSI
    
    'Helping Variables
    
    Dim I1 As Integer
    Dim I2 As Integer
    Dim B1 As Byte
    Dim B2 As Byte
    Dim W1 As Byte
    Dim W2 As Byte
    Dim S1 As String * 20
    
    '--- [ Constants ] -------------------------------------------------------------
    Const Radio_begin = "<"
    Const Radio_end = ">"
    
    '--- [ Read eeram ] ------------------------------------------------------------
    '0: Baud_COM1          Word  0
    '1: Baud_COM1          Word  1
    '2: Baud_COM2          Word  0
    '3: Baud_COM2          Word  1
    '4: DataBits_COM1      Byte  0
    '5: DataBits_COM2      Byte  0
    '6: Parity_COM1        Char/Byte 0
    '7: Parity_COM2        Char/Byte 0
    '8: StopBits_COM1      Byte  0
    '9: StopBits_COM2      Byte  0
    
    W1 = 0
    Readeeprom Baud_com1 , W1
    Incr W1
    Incr W1
    Readeeprom Baud_com2 , W1
    Incr W1
    Incr W1
    Readeeprom Databits_com1 , W1
    Incr W1
    Readeeprom Databits_com2 , W1
    Incr W1
    Readeeprom Parity_com1 , W1
    Incr W1
    Readeeprom Parity_com2 , W1
    Incr W1
    Readeeprom Stopbits_com1 , W1
    Incr W1
    Readeeprom Stopbits_com2 , W1
    Incr W1
    
    '--- [ Open Communication ports ] ----------------------------------------------
    S1 = "COMD.7:" + Str(baud_com1) + "," + Str(databits_com1) + "," + Chr(parity_com1) + "," + Str(stopbits_com1)
    Open S1 For Output As #2                   'SUART2.TXD
    Open "COMD.6:9600,8,n,1" For Input As #3                    'SUART2.RXD
    Open "COMD.5:9600,8,n,1" For Output As #4                   'SUART1.TXD
    Open "COMD.4:9600,8,n,1" For Input As #5                    'SUART1.RXD

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Der Compiler scheint da keine Variablen zu aktzeptieren. Wieso musst du die Werte aus dem EEPROM lesen? ansonsten nimm doch vorgefertigte und je nach dem gespeicherten Wert im EEPROM werden diese dann geöffnet

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    Es ist notwendig weil es sich dabei um ein Gerät handelt welche diese funktion unterstützen muss.
    Zu zweiterem:
    Das wäre unprofessionel...müsste aber vom compiler unterstützt werden. Ich werde MCS kontaktieren.

Berechtigungen

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

LiFePO4 Speicher Test