- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 7 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 65

Thema: Propeller-Clock aber eigentlich Drehlicht und die Timer ?

  1. #21
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    Anzeige

    Praxistest und DIY Projekte
    so ich hab jetzt mal die timer anhand der drehzahl richtig eingestellt und es funktioniert jetzt nicht schlecht die schrift wackelt so ca 2-3mm... die timer funktionieren ab ca. 800 U/min und nach oben praktisch unbegrenzt (bis mein drehflügel auseinanderfliegt...)

    hier mein vorschlag für die zeichenprogrammierung, für jedes Zeichen ein array mit 5 Spalten (meine Zeichen sind 7*5 Punkte) das währen bei mir ca 30 arrays aber es wird relativ aufwändig zum programmieren, und dann kommt die zeichenerkennung noch dazu...

    kann man nicht irgendwie ein array definieren so in dieser art:

    x(i)
    Incr x
    Incr i

    damit man beide zahlen hochzählen kann....

    hier mal mein prog (es zeigt die ersten 3 Buchstaben von HALLO) :

    Code:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    $framesize = 512
    $swstack = 512
    $hwstack = 512
    
    Config Portb = Output
    
    Dim Umdrehung As Word
    Dim Spaltenzeit As Byte
    Dim I As Byte
    Dim X As Byte
    
    
    Dim 0(5) As Byte
    Dim 1(5) As Byte
    Dim 2(5) As Byte
    
    Config Int0 = Falling
    On Int0 Int0isr
    Enable Int0
    
    Config Timer0 = Timer , Prescale = 64
    On Timer0 Timer0isr Nosave
    Enable Timer0
    
    Config Timer1 = Timer , Prescale = 8
    On Timer1 Timer1isr Nosave
    Enable Timer1
    
    Enable Interrupts
    
    Start Timer0
    
    
    
    
    
    Do
    0(1) = &B00000001
    0(2) = &B11101111
    0(3) = &B11101111
    0(4) = &B11101111
    0(5) = &B00000001
    
    1(1) = &B10000001
    1(2) = &B01101111
    1(3) = &B01101111
    1(4) = &B01101111
    1(5) = &B10000001
    
    2(1) = &B00000001
    2(2) = &B11111101
    2(3) = &B11111101
    2(4) = &B11111101
    2(5) = &B11111101
    Loop
    
    
    
    Int0isr:
    Umdrehung = Timer1
    Umdrehung = Umdrehung / 1200
    Spaltenzeit = Umdrehung
    Timer1 = 0
    I = 0
    X = 0
    Return
    
    
    Timer0isr:
    Load Timer0 , Spaltenzeit
    Incr I
    If I > 5 Then
      I = 0
      Incr X
      Portb = 255
    Else
      If X = 0 Then
      Portb = 0(i)
      Elseif X = 1 Then
      Portb = 1(i)
      Elseif X = 2 Then
      Portb = 2(i)
      End If
    End If
    
    Return
    
    
    Timer1isr:
    I = 0
    X = 0
    Return

    --EDIT--

    und so siehts nun aus:
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken sany1415.jpg  

  2. #22
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676
    Zitat Zitat von Bluesmash
    kann man nicht irgendwie ein array definieren so in dieser art:

    x(i)
    Incr x
    Incr i

    damit man beide zahlen hochzählen kann....
    Da ich noch nix mit dem AVR-Basic gemacht habe will ich mich auch nicht so weit aus dem Fenster legen.
    Aber gibt es da keine Mehrdimensionle Arrays ?

    Code:
    x(i,j)
    
    x(1,1) = &B00000001 
    x(1,2) = &B11101111 
    x(1,3) = &B11101111 
    x(1,4) = &B11101111 
    x(1,5) = &B00000001 
    
    x(2,1) = &B10000001 
    x(2,2) = &B01101111 
    x(2,3) = &B01101111 
    x(2,4) = &B01101111 
    x(2,5) = &B10000001 
    
    x(3,1) = &B00000001 
    x(3,2) = &B11111101 
    x(3,3) = &B11111101 
    x(3,4) = &B11111101 
    x(3,5) = &B11111101
    Oder ein Array und rechnest dir die Position aus
    Code:
    x(i)
    chr = x(5*j + i)
    x(01) = &B00000001 
    x(02) = &B11101111 
    x(03) = &B11101111 
    x(04) = &B11101111 
    x(05) = &B00000001 
    
    x(06) = &B10000001 
    x(07) = &B01101111 
    x(08) = &B01101111 
    x(09) = &B01101111 
    x(10) = &B10000001 
    
    x(11) = &B00000001 
    x(12) = &B11111101 
    x(13) = &B11111101 
    x(14) = &B11111101 
    x(15) = &B11111101
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

  3. #23
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    @vogon: ich hab mich jetzt noch ein bisschen informiert und es gibt keine mehrdimensionale arrays unter bascom... leider...

    ich habe mich jetzt für folgende variante entschieden umd die Zeichen des strings ind die anzuzeigenden spalten zu bekommen:

    Code:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    $framesize = 512
    $swstack = 512
    $hwstack = 512
    
    Config Portb = Output
    
    Dim Umdrehung As Word
    Dim Spaltenzeit As Byte
    Dim A As Byte
    Dim X As Byte
    
    Dim I As Byte
    Dim Anzeige As String * 30
    Dim Zeichen As String * 1
    Dim Spalte(150) As Byte
    Dim Laenge As Byte
    Dim Spalten As Byte
    
    Config Int0 = Falling
    On Int0 Int0isr
    Enable Int0
    
    Config Timer0 = Timer , Prescale = 64
    On Timer0 Timer0isr
    Enable Timer0
    
    Config Timer1 = Timer , Prescale = 8
    On Timer1 Timer1isr
    Enable Timer1
    
    Enable Interrupts
    
    Start Timer0
    
    
    Anzeige = "ABCDEFGHIJKLO"
    
    
    Do
    
    If I = Laenge Then
       I = 0
       X = 0
    End If
    
    Incr I
    
    Zeichen = Mid(anzeige , I , 1)
    Laenge = Len(anzeige)
    Spalten = Laenge * 6
    
    If Zeichen = "A" Then
       Incr X
       Spalte(x) = &B10000001
       Incr X
       Spalte(x) = &B01101111
       Incr X
       Spalte(x) = &B01101111
       Incr X
       Spalte(x) = &B01101111
       Incr X
       Spalte(x) = &B10000001
       Incr X
       Spalte(x) = &B11111111
    End If
    
    If Zeichen = "B" Then
       Incr X
       Spalte(x) = &B00000001
       Incr X
       Spalte(x) = &B01101101
       Incr X
       Spalte(x) = &B01101101
       Incr X
       Spalte(x) = &B01101101
       Incr X
       Spalte(x) = &B10010011
       Incr X
       Spalte(x) = &B11111111
    End If
    
    If Zeichen = "C" Then
       Incr X
       Spalte(x) = &B11000111
       Incr X
       Spalte(x) = &B10111011
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B11111111
    End If
    
    If Zeichen = "D" Then
       Incr X
       Spalte(x) = &B00000001
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B10111011
       Incr X
       Spalte(x) = &B11000111
       Incr X
       Spalte(x) = &B11111111
    End If
    
    If Zeichen = "E" Then
       Incr X
       Spalte(x) = &B00000001
       Incr X
       Spalte(x) = &B01101101
       Incr X
       Spalte(x) = &B01101101
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B11111111
    End If
    
    If Zeichen = "F" Then
       Incr X
       Spalte(x) = &B00000001
       Incr X
       Spalte(x) = &B01101111
       Incr X
       Spalte(x) = &B01101111
       Incr X
       Spalte(x) = &B01111111
       Incr X
       Spalte(x) = &B01111111
       Incr X
       Spalte(x) = &B11111111
    End If
    
    If Zeichen = "G" Then
       Incr X
       Spalte(x) = &B10000011
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B01101101
       Incr X
       Spalte(x) = &B01101101
       Incr X
       Spalte(x) = &B01100011
       Incr X
       Spalte(x) = &B11111111
    End If
    
    If Zeichen = "H" Then
       Incr X
       Spalte(x) = &B00000001
       Incr X
       Spalte(x) = &B11101111
       Incr X
       Spalte(x) = &B11101111
       Incr X
       Spalte(x) = &B11101111
       Incr X
       Spalte(x) = &B00000001
       Incr X
       Spalte(x) = &B11111111
    End If
    
    If Zeichen = "I" Then
       Incr X
       Spalte(x) = &B11111111
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B00000001
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B11111111
       Incr X
       Spalte(x) = &B11111111
    End If
    
    If Zeichen = "J" Then
       Incr X
       Spalte(x) = &B11111011
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B00000001
       Incr X
       Spalte(x) = &B01111111
       Incr X
       Spalte(x) = &B11111111
       Incr X
       Spalte(x) = &B11111111
    End If
    
    If Zeichen = "K" Then
       Incr X
       Spalte(x) = &B00000001
       Incr X
       Spalte(x) = &B11101111
       Incr X
       Spalte(x) = &B11010111
       Incr X
       Spalte(x) = &B10111011
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B11111111
    End If
    
    
    If Zeichen = "L" Then
       Incr X
       Spalte(x) = &B00000001
       Incr X
       Spalte(x) = &B11111101
       Incr X
       Spalte(x) = &B11111101
       Incr X
       Spalte(x) = &B11111101
       Incr X
       Spalte(x) = &B11111101
       Incr X
       Spalte(x) = &B11111111
    End If
    
    
    
    If Zeichen = "O" Then
       Incr X
       Spalte(x) = &B10000011
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B01111101
       Incr X
       Spalte(x) = &B10000011
       Incr X
       Spalte(x) = &B11111111
    End If
    
    Loop
    
    
    
    Int0isr:
    Umdrehung = Timer1
    Umdrehung = Umdrehung / 1200
    Spaltenzeit = Umdrehung
    Timer1 = 0
    A = 0
    Return
    
    
    Timer0isr:
    Load Timer0 , Spaltenzeit
    Incr A
    If A > Spalten Then
    Portb = 255
    Else
    Portb = Spalte(a)
    End If
    Return
    
    
    Timer1isr:
    I = 0
    X = 0
    Return

  4. #24
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Hallo Tüftler

    Hab jetzt die alte Version und ein paar Variablen durch Word ersetzt.
    Ging dann nicht so schlecht

    Mein Code schaut jetzt so aus...

    Code:
     '--------Drehlicht-----V1.11---------------
     ' 8MHz RC Intern
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 200
    $swstack = 200
    $framesize = 200
    
    
    '---Config Port's -----------------
    Config Portb = Output                                       'Leds
    Portb = 255
    
    Config Portd = Input
    Portd = 255
    
    '---config Int0------
    Config Int0 = Falling
    Enable Int0
    On Int0 Kontakt
    
    '--- Config Timer1 ----
    Config Timer1 = Timer , Prescale = 8
    Enable Timer1
    
    '--- Config Timer0 ------
    Config Timer0 = Timer , Prescale = 8
    Enable Timer0
    On Timer0 Spalten
    
    
    Enable Interrupts
    Load Timer0 , 255
    
    
    Dim Drehzeit As Long
    Dim Spaltenzeit As Word
    Dim B1 As Byte
    
    Dim Array(350) As Byte
    Dim Array_zaehler As Word
    Dim A As Word
    Dim B As Word
    Dim C As Byte
    
    
    Dim Wort As String
    
    
    
    
    Timer1 = 0
    Array_zaehler = 0
    C = 254
    
    
    
    
     '--------------------Hauptprogramm--------------------------
    
    Do
    Restore Xxx
    For A = 1 To 350
      Read B1
       B1 = 255 - B1
      Array(a) = B1
    Next A
    
    
    Waitms 10
    
    For A = 1 To 350
        Array(a) = 255
      Next A
    
    Waitms 5
    
    
    
    Wort = "Andre"
    
    
    
    
    Loop
    
    End
    
    
    
    
    '==============================Unterprogramme===================================
    '--------------ISR von Int0--------------------
    Kontakt:
    Drehzeit = Timer1
    Timer1 = 0
    Spaltenzeit = Drehzeit / 510
    
    
    Array_zaehler = 0
    Return
    
    
    '------------ISR von Timer0 --------------------
    Spalten:
    Load Timer0 , Spaltenzeit
    
    Portb = 255
    If Array_zaehler < 350 Then
       Incr Array_zaehler
       Portb = Array(array_zaehler)
      End If
    
    Return
    
    
    
    Xxx:
    
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 31 , 36 , 68 , 132 , 132 , 68 , 36 , 31                'A
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 255 , 64 , 32 , 16 , 8 , 4 , 2 , 255                   'N
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 255 , 129 , 129 , 129 , 129 , 129 , 66 , 60            'D
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 255 , 136 , 136 , 136 , 136 , 140 , 82 , 33            'R
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 255 , 137 , 137 , 137 , 137 , 137 , 129 , 129          'E
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen

    Mein Ansatz ist jetzt so..
    Ich trage z.B. 350 Spalten auf.
    Mache ein Array mit 350 Stellen.

    Der Rotor trägt einfach immer das Array auf, egal was drinnen steht.

    Derzeit lese ich mit einer Schleife das Wort aus den Daten in das Array ein.

    Mehrfaches Array kenne ich nicht und würd so wohl auch nix bringen ?!
    (War schon froh, dass das mit einem Array ging )

    Später sollte eine Schleife einen String zerlegen und die Buchstaben dann aus dem selbstgemachten (puu...) Zeichensatz suchen..
    und dann halt einfach in das Array schreiben..

    Derzeit ist der Name an und einmal aus... (Versuch)

    Habe auch schonmal probiert den Kreis nach aussen wandern zu lassen und wieder rein .
    (Schleife mit rotate.. und ins Array)

    Habe nur gemerkt, dass das Waitms... sehr von den Timmern aufgehalten wird und dass man auch eine Verzögerung im Aufbau sehen kann.(Led's)

    Hängt auch von der Rotor Geschwindigkeit ab.
    Vermutlich weil die Timer dann öfter zum Zug kommen...


    Ps.:
    Die Idee mit den Zeichensatz ist gut
    Meine , dass so gleich mit 1 und 0 in das Programm zu schreiben.
    Ich hatte das umständlicher gemacht.
    Hatte mir dazu eine Excel Seite gemacht, dass mir das ausrechnet..

    Hast Du den Zeichensatz selber gemacht ?
    Willst Du dann auch zwischen klein und Grossschrift unterscheiden ?

    Darf ich deinen Zeichensatz verwenden ?!

  5. #25
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676
    Zitat Zitat von Roberto
    ... und die Buchstaben dann aus dem selbstgemachten (puu...) Zeichensatz suchen..
    Hier sind Zeichenzätze und Programme zum erstellen
    http://www.sxlist.com/techref/datafile/charsets.htm

    Dein Array halte ich für besser. So kannst du auch Proportional-Schrift und kleine Bilder zeigen.
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

  6. #26
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Hallo Vogon

    Danke für den Link

    Leider ist auf der Seite der 7*5 Schriftsatz, nur ein 6*5
    Der Link von 8*6 geht leider nicht.

    Hast Du noch andere Links zu dem Thema ?
    Beim Googeln finde ich leider nix..

  7. #27
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676
    Zitat Zitat von Roberto
    ... Hast Du noch andere Links zu dem Thema ?
    Beim Googeln finde ich leider nix..
    Such mal nach Character Generator ROM
    In den Uralt-Computern, und Terminals hat man solche Chips eingebaut. Auch in den Druckern sind sie zu finden.
    http://www.atariarchives.org/cgp/Ch02_Sec04.php
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

  8. #28
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Hallo

    Habe gesucht, aber nix vernünftiges gefunden
    Bei ein paar passte der Code nicht..
    Werde mir den wohl selber machen.

    @bluesmash

    Habe den Code jetzt so:
    Code:
     '--------Drehlicht-----V1.12---------------
     ' 8MHz RC Intern
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 200
    $swstack = 200
    $framesize = 200
    
    
    '---Config Port's -----------------
    Config Portb = Output                                       'Leds
    Portb = 255
    
    Config Portd = Input
    Portd = 255
    
    '---config Int0------
    Config Int0 = Falling
    Enable Int0
    On Int0 Kontakt
    
    '--- Config Timer1 ----
    Config Timer1 = Timer , Prescale = 8
    Enable Timer1
    
    '--- Config Timer0 ------
    Config Timer0 = Timer , Prescale = 8
    Enable Timer0
    On Timer0 Spalten
    
    
    Enable Interrupts
    Load Timer0 , 255
    
    
    Dim Drehzeit As Long
    Dim Spaltenzeit As Word
    Dim B1 As Byte
    
    Dim Spalte(350) As Byte
    Dim Array_zaehler As Word
    
    
    
    Dim A As Word
    Dim B As Word
    Dim C As Byte
    
    'Saetze
    Dim Satz As String * 45
    Dim Zeichen As String * 1
    Dim Asc_zeichen As Byte
    Dim Satzlaenge As Word
    Dim X As Word                                               'Spaltenzaehler für Zeichen auftragen
    
    
    
    Timer1 = 0
    Array_zaehler = 0
    C = 254
    X = 0
    
    
    
     '--------------------Hauptprogramm--------------------------
    For X = 1 To 350                                            'Array Löschen
        Spalte(x) = 255
    Next X
    X = 0
    '--------------------------------------------------
    
    Do
    
    Satz = "A A ABH AA AAAA  AA A A AAA  A"
    Gosub Auswerten
    
    Waitms 5
    For X = 1 To 350                                            'Array Löschen
        Spalte(x) = 255
    Next X
    Waitms 5
    
    Satz = "HHHHBBBAA      A    AA       B"
    Gosub Auswerten
    
    Waitms 5
    For X = 1 To 350                                            'Array Löschen
        Spalte(x) = 255
    Next X
    
    Waitms 10
    
    
    Loop
    
    
    End
    
    
    
    
    '==============================Unterprogramme===================================
    '--------------ISR von Int0--------------------
    Kontakt:
    Drehzeit = Timer1
    Timer1 = 0
    Spaltenzeit = Drehzeit / 510
    Array_zaehler = 0
    Return
    
    
    '------------ISR von Timer0 --------------------
    Spalten:
    Load Timer0 , Spaltenzeit
    
    Portb = 255                                                 'Lösche Spalte
    If Array_zaehler < 350 Then
       Incr Array_zaehler
       Portb = Spalte(array_zaehler)                            'Werte auf Rotor auftragen
      End If
    
    Return
    
    
    
    
    
    '--------------------Zeichen Auswerten ----------------------
    Auswerten:
    X = 0                                                       'Spaltenzaehler auf Null
    Satzlaenge = Len(satz)                                      'Ermittle die länge der Satzlänge
    For A = 1 To Satzlaenge                                     'Eine Schleife für jedes Zeichen der Satzlänge
    
       Zeichen = Mid(satz , A , 1)                              'Zeichen pro Zeichen auswerten
    
       If Zeichen = " " Then                                    'für Leerzeichen
          Incr X : Spalte(x) = 255
          Restore Leerzeichen
          For B = 1 To 3
            Incr X
            Read Spalte(x)
          Next B
          Incr X : Spalte(x) = 255
       End If
    
       If Zeichen = "A" Then                                    'grosses A
          Incr X : Spalte(x) = 255
          Restore Gross_a
          For B = 1 To 5
            Incr X
            Read Spalte(x)
          Next B
          Incr X : Spalte(x) = 255
       End If
    
       If Zeichen = "B" Then                                    'grosses B
          Incr X : Spalte(x) = 255
          Restore Gross_b
          For B = 1 To 5
            Incr X
            Read Spalte(x)
          Next B
          Incr X : Spalte(x) = 255
       End If
    
    
    
    
    
       If Zeichen = "H" Then                                    'grosses H
          Incr X : Spalte(x) = 255
          Restore Gross_h
          For B = 1 To 5
            Incr X
            Read Spalte(x)
          Next B
          Incr X : Spalte(x) = 255
       End If
    Next A
    
    
    
    Return
    
    
    '----------Zeichensatz--------------------
    Leerzeichen:
    Data &B11111111
    Data &B11111111
    Data &B11111111
    
    Gross_a:
    Data &B11000000
    Data &B10110111
    Data &B01110111
    Data &B10110111
    Data &B11000000
    
    
    Gross_b:
    Data &B00000000
    Data &B01101110
    Data &B01101110
    Data &B01101110
    Data &B10010001
    
    
    
    Gross_c:
    Data &B10000001
    Data &B01111110
    Data &B01111110
    Data &B01111110
    Data &B10111101
    
    
    Gross_d:
    Data &B00000000
    Data &B01111110
    Data &B01111110
    Data &B01111110
    Data &B10000001
    
    Gross_e:
    Data &B11111111
    Data &B11111111
    Data &B11111111
    Data &B11111111
    Data &B11111111
    
    Gross_f:
    Data &B11111111
    Data &B11111111
    Data &B11111111
    Data &B11111111
    Data &B11111111
    
    Gross_g:
    Data &B11111111
    Data &B11111111
    Data &B11111111
    Data &B11111111
    Data &B11111111
    
    Gross_h:
    Data &B00000000
    Data &B11101111
    Data &B11101111
    Data &B11101111
    Data &B00000000
    Hatte das zuerst auch so wie du gemacht, zwischen den Spalten, jeweils die X um eins hochzählen.

    Bin aber wieder davon abgekommen.
    Mit Schleifen kann man dann leichter einen neuen Zeichensatz hinzufügen

  9. #29
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    so ich hab gerade noch etwas ausprobiert und meine zeichen bleiben jetzt perfekt stehen! überhaupt kein ruckel und zucken mehr! wen es bei dir noch ein bisschen ruckelt probier mal das:
    Kontakt:
    waitms 2 <------ bei mir hat der interrupt manchmal 2mal hintereinander ausgelöst aber erst nachdem ich timer0=0 eingesetzt habe ich verwende eine gabellichtschranke....
    Drehzeit = Timer1
    Timer1 = 0
    Timer0=0 <---- timer zurücksetzen da er einen undefinierten zustand hat und mal früher und später auslöst....
    Spaltenzeit = Drehzeit / 510
    Array_zaehler = 0
    Return


    klar darfst du den zeichensatz verwenden! wenn du dafür die kleinbuchstaben machst wenn ich zeit habe mach ich morgen das ABC fertig...

    gruss bluesmash

  10. #30
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Hallo Bluesmash

    Habe deinen Tip ausprobiert.
    Bei mir hat es nicht viel gebracht. So ca. gleich.
    (vielleicht auch weil ich ein wennig schneller drehe.. ?!)

    Hatte heute einen anderen komischen Fehler.
    Hatte eine einfache Routine zum Probieren.
    Nur mit INT0 und dann auslesen von dem Zeichen aus Data und anzeigen.

    Hatte da für die Auslesevariable eine Word-Variable definiert und es kamen ganz komische Zeichen raus..
    Hatte die dann in Byte geändert und alle war wieder ok.

    Bei meinem längerem Programm mit Timer1, Timer0 u.s.w. (siehe oben)
    machte das Word für die Variable nix (Variable B)
    komisch...

    Ps.:
    Schriftsatz mache ich mir gleich selber..
    Habe mir dazu dieses Bild ausgedruckt:
    http://www.noritake-itron.com/Softview/font5x7lcd.gif
    von hier:
    http://www.noritake-itron.com/Softview/fontsavr.htm

    Mit den Daten fange ich dort irgendwie nix an..
    Aber das Bild ist schön Strukturiert und da kann man die Zeichen leicht nachzeichen

    Ganz ist mir noch nicht klar, wie man den Abstand zwischen den Zeichen machen soll.
    Zuerst hatte ich jeweils bei den If Abfragen, anfangs und Ende eine Leer-Spalte drinnen.

    Jetzt hatte ich das aber gleich zum Zeichensatz dazugemacht.
    (vorne und hinten eine Leerspalte)
    Ich glaube so, wird der Code ein bisschen kleiner

Seite 3 von 7 ErsteErste 12345 ... LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress