-
        

Ergebnis 1 bis 3 von 3

Thema: Bitte um Hilfe

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    33
    Beiträge
    366

    Bitte um Hilfe

    Anzeige

    Hallo
    Ich lass über einen m8 ein signal zählen, und über drei 7 Segmentnzeigen anzeigen.
    Das Problem ist, das der Zähler bis jetzt nur bis 9 zählt, weil ich pro Anzeige nur eine Stelle anzeigen lassen kann.
    Wie schaffe ich es, das die zweite anzeige mit benutzt wird, wenn die zahlt zweistellig wird,usw.??

    Gosub Max7219_setup
    Main:

    Disp_num = 3 ' Ausgabe Digit
    Disp_data = Wr1 ' Zähler var
    Gosub Disp_write




    ' setup max7219 config. registers
    Max7219_setup:
    Disp_num = &H0C : Disp_data = 0 ' Shutdown On
    Gosub Disp_write
    Disp_num = 9 : Disp_data = &B0011_0111 ' Decode "B" For 1st 6
    Gosub Disp_write
    Disp_num = &H0A : Disp_data = &H0F ' Brightness Full
    Gosub Disp_write
    Disp_num = &H0B : Disp_data = 7 ' # Digits 8
    Gosub Disp_write
    Disp_num = &H0F : Disp_data = 0 ' Test Off
    Gosub Disp_write
    Disp_num = &H0C : Disp_data = 1 ' Shutdown Off
    Gosub Disp_write
    Return

    ' Sends data to the Max7219 display driver
    Disp_write:
    Disable Interrupts
    Reset Ser_data
    Reset Ser_clk
    Reset Disp_en
    Shiftout Ser_data , Ser_clk , Disp_num , 1
    Shiftout Ser_data , Ser_clk , Disp_data , 1
    Set Disp_en
    Enable Interrupts
    Return

    Schon mal Danke für die Hilfe,
    xeus

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    sooooo:

    Code:
    Dim N1 As Byte
    Dim N2 As Byte
    Dim N3 As Byte
    
    Dim I As Word
    Dim Temp As Byte
    Dim Temp2 As Byte
    Dim Temp3 As Byte
    Dim Temp4 As Byte
    
    I = 255
    
    N1 = I / 100
    
    Temp2 = N1 * 100
    Temp = I - Temp2
    N2 = Temp / 10
    
    Temp2 = N1 * 100
    Temp3 = N2 * 10
    Temp4 = Temp2 + Temp3
    Temp = I - Temp4
    N3 = Temp
    das musste einbinden

    I: deine zahl
    N1: erste Stelle
    N2: zweite Stelle
    N3: dritte Stelle

    und dann lässte im main jeweils auf der passenden stelle n1, n2 und n3 ausgeben

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    33
    Beiträge
    366
    Erstmal Danke, für deine Hilfe

    aber wie muß ich das in mein Prog einbauen?
    mein disp zeigt mir 068 an
    und es werden nur die hunderterstellen gezählt, und die auch nur bis zwei.
    >Ich glaub da hab ich irgentwie was falsch gemacht



    Sub 7seg
    D1 = Wr1 / 100

    Seg2 = D1 * 100
    Seg1 = Wr1 - Seg2
    D2 = Seg1 / 10

    Seg2 = D1 * 100
    Seg3 = D2 * 10
    Seg4 = Seg2 + Seg3
    Seg1 = Wr1 - Seg4
    D3 = Seg1

    Gosub Max7219_setup
    Main:

    Disp_num = 3 ' ( 0 - 7 ) digit#
    Disp_data = D3

    Disp_num = 2 ' ( 0 - 7 ) digit#
    Disp_data = D2
    ' (0 - 15 ) number to display.
    Disp_num = 1 ' ( 0 - 7 ) digit#
    Disp_data = D1

    Gosub Disp_write




    ' setup max7219 config. registers
    Max7219_setup:
    Disp_num = &H0C : Disp_data = 0 ' Shutdown On
    Gosub Disp_write
    Disp_num = 9 : Disp_data = &B0011_0111 ' Decode "B" For 1st 6
    Gosub Disp_write
    Disp_num = &H0A : Disp_data = &H0F ' Brightness Full
    Gosub Disp_write
    Disp_num = &H0B : Disp_data = 7 ' # Digits 8
    Gosub Disp_write
    Disp_num = &H0F : Disp_data = 0 ' Test Off
    Gosub Disp_write
    Disp_num = &H0C : Disp_data = 1 ' Shutdown Off
    Gosub Disp_write
    Return

    ' Sends data to the Max7219 display driver
    Disp_write:
    Disable Interrupts
    Reset Ser_data
    Reset Ser_clk
    Reset Disp_en
    Shiftout Ser_data , Ser_clk , Disp_num , 1
    Shiftout Ser_data , Ser_clk , Disp_data , 1
    Set Disp_en
    Enable Interrupts
    Return
    End Sub

Berechtigungen

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