- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 50

Thema: 3d Sensorboard CHR-6d Datenformat und Uart Geschwindigkeit

  1. #11
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Im Prinzip ja, aber es wird kein Schrott heraus kommen, da ja der Pointer beim Speichern weiter läuft und der Interrupt die Programmausführung unterbricht.
    Ausserdem macht es Sinn das Array nicht ständig zu prüfen sondern n Flag im URXC-Interrupt zu setzen und erst bei gesetztem Flag den Eingang zu prüfen in der Mainloop.
    Wenn tatsächlich Datenmüll dabei raus kommt macht das garnix, weil ja die Prüfsumme nicht stimmt.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2005
    Ort
    NRW
    Alter
    47
    Beiträge
    142
    Du hast mich auf eine tolle Idee gebracht. Ich weiss ja aus wieviel bytes ein Datensatrz besteht. Durch den Flag aus dem URXC lasse ich eine anderes Byte hochzählen, bis die Anzahl der empfangenen Bytes eine Datensatzlänge entspricht.
    Erst dann lese ich aus.

    super, danke.

  3. #13
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    im prinzip kannst du das so machen, aber irgendwann wird mal der Datenbereich der Bytefolge "snp" entsprechen und die Geschichte kommt aus dem Tritt.

    ich fürchte Du wirst schlussendlich nicht um die komplette prüfung herum kommen
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2005
    Ort
    NRW
    Alter
    47
    Beiträge
    142
    kann mir jemand sagen wie die beiden Chk Bits errechnet werden?
    Die Summe aller Bytes ohne den beiden Chk Bytes?

    Wie ist der Inhalt der beinden Chk Bytes aufgeteilt?
    Werden die chk Bytes addiert?

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2005
    Ort
    NRW
    Alter
    47
    Beiträge
    142
    Achtung.
    Bei der neuen Firmwareversion ist ein Kalman Filter vorhanden. Erst dann können Pich und Roll ausgelesen werden.!!!

    Datenblatt wurde auch geändert!!!!

  6. #16
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2005
    Ort
    NRW
    Alter
    47
    Beiträge
    142
    Mit der Imu Software zeigt mir der roll Wert bei liegender Platine (IC´s oben) einen Winkelwert von um die 200 an. Bei einer Nick Bewegung an einer bestimmten Stelle zwichen ein paar Grad, haut der Wert auf 40. Icht meine Platine defekt? Habe daraufhin das Firmwareupdate 2.0 installiert. Feher ist der Gleiche geblieben.Auch wenn ich die 200 als Null Wert nehme, ist die Veränderung zur Lage nicht richtig.

    Der nick Wert liegt um die Null und zeigt recht genau die Winkelposition an. So sollte es auch sein. Kann ich in diesem Programm den roll Wert auch auf null setzen ?

    Bin am verzweifeln.

  7. #17
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2005
    Ort
    NRW
    Alter
    47
    Beiträge
    142
    Habe einen neuen Thread im Senor Bereich aufgemacht, da das jetzige Problem ja nichts mit Bascom zu tun hat.

  8. #18
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2005
    Ort
    NRW
    Alter
    47
    Beiträge
    142
    Jetzt habe ich mal ein Mini Programm geschrieben, das mir die über UART empfangenen Daten rx über meinen ATMEGA über tx an ein Terminalprogramm weitergibt.

    Code:
    $regfile = "m168def.dat"
    $crystal = 18432000
    $baud = 115200
    
    
    
    
    Dim Rxdflag As Bit
    On Urxc Onrxd                'Interrupt auslösen, wenn volsändiges Zeichen geladen.
    Enable Urxc
    Enable Interrupts
    
    
    
    Do
    If Rxdflag = 1 Then                 'flagauswertung bei empfangenen USART Byte
       Rxdflag = 0
       Print Udr
    End If
    Loop
    
    Onrxd:
    Rxdflag = 1
    Return
    
    End


    Bekomme gerade aus meinem Atmega werte, die so nicht im CHR Datenblatt stehen.
    Wenn ich meine Werte aus der udr einfach über die UART wieder ausgebe mit allen aktivierten achsen dann kommt das hier bei mir raus.
    112
    115
    110
    112
    202
    112
    115
    110
    112
    185
    112
    115
    110
    112
    253
    112
    115
    110
    112
    247
    112
    115
    110
    112
    57
    112
    115
    110
    112
    183
    112
    115
    110
    112
    192
    112
    115
    110
    112
    209
    112
    115
    112, 115,110 ist laut Dateblatt "snp" der Datensatzanfang.
    Danach kommen aber nur 2 Werte,dann wieder der neue Datensatzanfang.
    Laut Datenblatt müsste snp, PT,N,alle Achsen also 8,und 2 Check Bytes gesendet werden.
    merkwürdig...
    Was mache ich falsch ?

  9. #19
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2005
    Ort
    NRW
    Alter
    47
    Beiträge
    142
    kann mir keiner einen Tipp geben?

  10. #20
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2005
    Ort
    NRW
    Alter
    47
    Beiträge
    142
    habe jetzt ein neues Programm mit overlay.
    Wie Suche ich im array jetzt den Datensatzanfang s n p ?
    Schift funktioniert nicht.
    Wenn ich den dsz verändere, veränder ich auch die Speicherstelle des neu empangenen Bytes.
    Wie kann ich also meine overlay Maske auf dem String verschieben?

    Code:
    $regfile = "m168def.dat"
    $crystal = 18432000
    $baud = 115200
    
     Dim Z As Byte
     Dim I As Byte
    Dim S As String * 24
    Dim B(25) As Byte At S Overlay
    Dim Dsz As Byte
    Dim Check As Integer
    
    Dim Ss As Byte At S(1) Overlay
    Dim Nn As Byte At S(1) + 1 Overlay
    Dim Pp As Byte At S(1) + 2 Overlay
    
    Dim Pt As Byte At S(1) + 3 Overlay
    Dim Num As Byte At S(1) + 4 Overlay
    
    Dim Pitch As Integer At S(2) + 5 Overlay
    Dim Roll As Integer At S(2) + 7 Overlay
    Dim Gyroz As Integer At S(2) + 9 Overlay
    Dim Chk As Integer At S(2) + 11 Overlay
    
    On Urxc Onrxd                                               'Interrupt auslösen, wenn volsändiges Zeichen geladen.
    Enable Urxc
    Enable Interrupts
    
    Config Lcd = 16 * 3 , Chipset = Dogm163v5
    Config Lcdbus = 4                                           'configure lcd screen
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portd.7 , Db6 = Portd.6 , Db7 = Portd.5 , E = Portd.2 , Rs = Portd.3
    Waitms 100
    Initlcd
    Waitms 100
    Display On
    Cursor Off Noblink
    Cls
    
    
    Do
    'Check = Ss
    'Check = Check + Nn
    'Check = Check + Pp
    
    'Check = Pt
    'Check = Check + Num
    'Check = Check + Pitch
    'Check = Check + Roll
    'Check = Check + Gyroz
    
    
    
    If Dsz > 23 Then
       'If Ss = 115 And Nn = 110 And Pp = 112 And Chk = Check Then
       If Ss = 115 And Nn = 110 And Pp = 112 Then
       Dsz = 0
       Gosub Werteschreiben
          Else
         Shift S , Right ,1
    
    
       End If
       End If
    
    Loop
    
    
    Onrxd:
    Incr Dsz
    B(dsz) = Udr
    Return
    
    
    Werteschreiben:
    Cls
    Locate 1 , 1 : Lcd "gyroz= " ; Gyroz
    Locate 2 , 1 : Lcd "Pitch= " ; Pitch
    Locate 3 , 1 : Lcd "roll= " ; Roll
    
    
    Return
    
    End

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test