- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 94

Thema: Scopeuhr mit BASCOM??

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    Hallo,
    ich hab mir jetzt mal selbst was zum Testen zusammen gestrickt.
    Und bei mir läuft die Line-Sub.
    Jedenfalls auf meinem ATmega32.
    Ich musste das Programm etwas vereinfachen, damit
    meine Testversion-Bascom mit dem Speicher auskommt.
    Aber das Prinzip der Line-Routine ist geblieben.
    Auf dem Prinzip kann man aufsetzen...
    Die Line-Draw Routine werde ich in Assembler schreiben,
    damit es richtig schnell wird.

    @Sebastian: Testest du mal ?

    Gruß Jan

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    '#########Variablen Line Funktion
    Dim Xs As Integer
    Dim Xe As Integer
    Dim Ys As Integer
    Dim Ye As Integer
    Dim Xlen As Integer
    Dim Ylen As Integer
    Dim Xa As Integer
    Dim Ya As Integer
    Dim Temp As Integer
    Dim N As Byte
    '#################################
    
    Declare Sub Drawline()
    
    
    Config Porta = Output
    Config Portc = Output
    
    'Z Alias Portf.1
    
    'Z = 1                                                       ' dunkel
    
    
    Do
    
    Restore Daten:
    For N = 1 To 14
    Read Xs
    Read Ys
    Read Xe
    Read Ye
    Call Drawline()
    Next
    
    Loop
    End
    
    
    
    
    Sub Drawline()
    
    ';Längen für x und y ausrechnen
    Xlen = Xe - Xs
    Ylen = Ye - Ys
    
    ';Schrittrichtung für x und Y festlegen
    If Xlen >= 0 Then Xa = 1 Else Xa = 255
    If Ylen >= 0 Then Ya = 1 Else Ya = 255
    
    ';wenn xlänge grösser ist, dann laufen wir an der X-Achse entlang
    ';  ansonsten an der Y-Achse
    If Xlen < 0 Then Xlen = Xlen * -1
    If Ylen < 0 Then Ylen = Ylen * -1
    If Xlen < Ylen Then Goto Walky
    
    
    Walkx:
    ' Z = 0                                                      'licht einschalten
      Temp = Xlen
      Shift Temp , Right , 1
      Do
        Porta = Low(xs)
        Portc = Low(ys)
        Waitus 1
        Xs = Xs + Xa                                            ':immer einen Schritt in x-Richtung weiter
        Temp = Temp - Ylen                                      ';Schritt in Y-Richtung nötig ?
        If Temp <= 0 Then                                       ';wenn <=0 dann ja
          Temp = Temp + Xlen                                    ';
          Ys = Ys + Ya                                          ';Schritt in Y-Richtung
        End If
        Loop Until Low(xs) = Low(xe)                            ';Wiederholen bis Ende der Linie
    Goto Endofsub
    
    Walky:
    ' Z = 0
      Temp = Ylen
      Shift Temp , Right , 1
      Do
        Porta = Low(xs)
        Portc = Low(ys)
        Waitus 1
        Ys = Ys + Ya
        Temp = Temp - Xlen
        If Temp < 0 Then
          Temp = Temp + Ylen
          Xs = Xs + Xa
        End If
      Loop Until Low(ys) = Low(ye)
    
    Endofsub:
     'Z = 1   'und wieder aus
      End Sub
    
    
    Daten:
    
    Data 0% , 0% , 200% , 0%
    Data 200% , 0% , 200% , 200%
    Data 200% , 200% , 0% , 200%
    Data 0% , 200% , 0% , 0%
    
    Data 20% , 20% , 180% , 80%
    Data 180% , 80% , 80% , 180%
    Data 80% , 180% , 20% , 20%
    
    Data 100% , 120% , 80% , 120%
    Data 80% , 120% , 80% , 100%
    Data 80% , 100% , 90% , 100%
    Data 90% , 100% , 100% , 90%
    Data 100% , 90% , 100% , 80%
    Data 100% , 80% , 90% , 70%
    Data 90% , 70% , 80% , 70%
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken vector2.jpg   vector1.jpg  

Berechtigungen

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

LiFePO4 Speicher Test