- LiFePO4 Speicher Test         
Ergebnis 1 bis 5 von 5

Thema: Wurzel ziehen?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Benutzer Stammmitglied
    Registriert seit
    28.03.2004
    Beiträge
    56

    Versteh ich nicht...

    Hallo,

    also ich hab mal meinen ganzen Programmcode durchforstet und nichts gefunden. Deswegen poste ich hier den code noch mal. Einmal in voller Version und einmal nur den Teil den ich für relevant halte.
    Der gesammte Code:
    Code:
    '------------------------------------------------------------
    '                 ATTINY26 D.H. 2006-02
    '------------------------------------------------------------
    
    $regfile = "at26def.dat"
    ' default the internal osc runs at 1 MHz
    $crystal = 1000000
    
    Const A = 30                                                'Die x-Achsenverschiebung des 2. Empfängers
    
    Dim Zeitus As Byte
    Dim S As Word
    Dim E As Bit
    
    Dim R As Word                                               'Radius des 1. Empfängers
    Dim Q As Word                                               'Radius des 1. Empfängers
    Dim X As Word                                               'Position auf der x-Achse
    Dim Y As Word                                               'Position auf der y-Achse
    Dim Z As Word
    Dim Temp As Word                                            'temporäre Variable zur Berrechnung von Zwischenschritten
    
    Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Porta.0 , Rs = Porta.4 , E = Porta.5
    Config Lcd = 16 * 2
    Config Pinb.4 = Input                                       'US1
    Config Pinb.5 = Input                                       'US2
    Config Pina.6 = Input                                       'sofort
    
      Zeitus = 0
      E = 0
      X = 0
      Y = 0
    
    Do
    
      If E = 1 Then
        E = 0
      Else
        E = 1
      End If
    
      Cls
      Locate 1 , 1
      Lcd "R=" ; R ; " | Q=" ; Q
      Locate 2 , 1
      Lcd "[" ; X ; "|" ; Y ; "] Z= " ; Z ; "|"
      Zeitus = 0
      S = 0
      'Zuerst auf Startsignal warten
      While Pina.6 = 0
       'nichts
      Wend
    
      If E = 0 Then
        'Nun zählen
        While Pinb.4 = 0
          Zeitus = Zeitus + 1                                   'Zählt 1 mehr
        Wend
      Else
        'Nun zählen
        While Pinb.5 = 0
          Zeitus = Zeitus + 1                                   'Zählt 1 mehr
        Wend
      End If
    
      'Nun Ausgabe
      While Pina.6 = 1                                          'warte bis signal weg
        'nichts
      Wend
    
    'Streckenberrechnung
      S = 50 * Zeitus
      S = S - 177
      S = S / 81
    
      If E = 0 Then
        R = S
      Else
        Q = S
      End If
    
    'Lateration
      X = A * A
      Temp = R * R
      X = X + Temp
      Temp = Q * Q
      X = X - Temp
      Temp = 2 * A
      X = X / Temp
    
      Temp = R * R
      Y = Temp
      Temp = X * X
      Y = Y - Temp
    
      Z = Y
      Y = Sqr(z)
    
    
    Loop
    
    
    End
    Der scheinbar relevante Code:
    Code:
    $regfile = "at26def.dat"
    $crystal = 1000000
    
    Dim Y As Word                                               'Position auf der y-Achse
    Dim Z As Word
    
    [...]
    
      Z = Y
      Y = Sqr(z)
    
    [...]
    
    End
    Und das ist die Ausgabe auf dem LCD-Display:
    R=21 | Q=13
    [18|0] Z=180|
    Heißt also so viel wie Y=0 und Z=180.

    @oe9vfj: Irgendwie sieht dein Code merkwürdig aus, da bei dir die Variablennamen klein bleiben, während sie bei mir immer mit Großbuchstaben geschrieben werden (automatische Änderung). Benutzt du vieleicht eine andere Version (BASCOM-AVR 1.11.7.4)?

    Ein anderes Zeichen dafür dass es nicht funktioniert ist dass die Variable in der Funktion klein bleibt, wo Bascom bei mit üblicherweise alle Variablennamen groß anfängt (Sqr(z) anstatt Sqr(Z) wie erwartet)...

    Naja, ich werde entweder das Wurzeln lassen oder aber die Wurzel mit einem eigenen Algorythmus ausrechnen.

    mfG, Ringelkrat
    Angehängte Dateien Angehängte Dateien

Berechtigungen

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

12V Akku bauen