-         

Ergebnis 1 bis 9 von 9

Thema: LED Cube 3x3x3 Softwarefrage

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    02.10.2007
    Ort
    Saalfeld
    Alter
    29
    Beiträge
    78

    LED Cube 3x3x3 Softwarefrage

    Anzeige

    hallo,

    ich hab mir ein LED Cube zusammengelötet (3x3x3) mit einem Tiny2313 dran.
    In den Ebenen habe ich die Kathoden zusammengefasst und in den Spalten die Anoden also insgesamt 12 anschlüsse.
    Somit ist ja klar das ich verschiedene Ports nutzen muss.

    So nun zum Porgramm ich hab mal was zu testen geschrieben

    und zwar:

    Code:
    $regfile "attiny2313.dat"
    $crystal = 1000000
    
    Config Portd = Output
    Config Portb = Output
    Config Porta = Output
    
    Ebene1 Alias Portd.1
    Ebene2 Alias Porta.1
    Ebene3 Alias Portd.0
    
    Lo Alias Porta.0
    Lm Alias Portd.6
    Lu Alias Portd.2
    Mo Alias Portb.1
    Mm Alias Portd.3
    Mu Alias Portb.0
    Ro Alias Portd.4
    Rm Alias Portb.2
    Ru Alias Portd.5
    
    
    Do
    Ebene1 = 0
    Ebene2 = 1
    Ebene3 = 1
    Lo = 1
    Mo = 0
    Ro = 0
    Waitms 100
    Ebene1 = 0
    Ebene2 = 1
    Ebene3 = 1
    Lo = 0
    Mo = 1
    Ro = 0
    das funktioniert auch, aber so kann man das ja nich schreiben, viel zuu umständlich : )

    so hab ich mir gedacht das ich eine Data Tabelle dafür schreibe, aber nun scheitere ich daran das ich den Cube an verschiedenen Ports habe?

    könntet ihr mir vieleicht einen kleinen Gedankschups geben wie man so was progt?

    besten dank schon mal dafür^^

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111
    vieleicht hilft dir ja die kleine idee
    Dim A As Byte
    ...
    Porta.0 = A.0
    Portd.6 = A.1
    Portd.2 = A.2
    Portb.1 = A.3
    Portd.3 = A.4
    Portb.0 = A.5
    Portd.4 = A.6
    Portb.2 = A.7

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    02.10.2007
    Ort
    Saalfeld
    Alter
    29
    Beiträge
    78
    ehm irgend wie funzt das nich : ( oder muss ich da noch was machen?

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111
    es ist einfacher zu antworten wenn man deinen code kennt!

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    02.10.2007
    Ort
    Saalfeld
    Alter
    29
    Beiträge
    78
    weist du wie man das in eine tabelle dan schreibt?

    also das mit dem Date und &00010101
    halt über 3 ports das is mein Problem....

    das raff ich einfach nicht.

    aber trotzdem danke dir : )

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111
    hm,
    Lookup -> Bascom hilfe wir helfen

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111
    noch eine hilfe(ist nur theoretisch habe ich noch nicht getestet)

    A = Lookup(Stelle_in_Tabelle,Label)

    Label:
    Data &B0001100,&B00011111,&B11001100
    ^ ^ ^
    Stelle_in_tabelle 0 1 2

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    02.10.2007
    Ort
    Saalfeld
    Alter
    29
    Beiträge
    78
    ich hab das mal so geschrieben

    kommt das der sache näher?


    ich hab das Buch von Claus Kühnel da stand das so ungefähr drinne allerdings mit einer 7 segmentanzeige. aber das prinzip ist ja das selbe.

    es haut noch nich ganz hin, im Buch is ja die anzeige an einem port und da staht dann Portb = X(i) , das kann ich ja nicht schreiben weil ich ja mehere ports habe *bruml*

    das mit der Tabelle klappt dadurch noch nicht ganz


    mfg

    Code:
    $regfile "attiny2313.dat"
    $crystal = 1000000
    $hwstack = 32                                               ' default use 32 for the hardware stack
    $swstack = 10                                               ' default use 10 for the SW stack
    $framesize = 40
    
    
    Config Portd = Output
    Config Portb = Output
    Config Porta = Output
    
    
    Porta.0 = A.0                                               'Linksoben
    Portd.6 = A.1                                               'Linksmitte
    Portd.2 = A.2                                               'Linksunten
    Portb.1 = A.3                                               'Mitteoben
    Portd.3 = A.4                                               'Mittemitte
    Portb.0 = A.5                                               'Mitteunten
    Portd.4 = A.6                                               'Rechtsoben
    Portb.2 = A.7                                               'Rechtsmitte
    Portd.5 = A.8                                               'Rechtsunten
    Portd.1 = A.9                                               'Ebene1
    Porta.1 = A.10                                              'Ebene2
    Portd.0 = A.11                                              'Ebene3
    
    Dim B As Word
    Dim A As Word
    Dim X(4) As Word
    
    
    Restore Data1
    
    For B = 1 To 4
    Read X(i)
    Next
    
    
    Do
    
    
    For B = 1 To 4
    A = X(i)
    Waitms 500
    Next
    
    
    Loop
    
    Data1:
    
    Data &B00000000111 , &B10000000011 , &B01000000011 , &B00100000011

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111
    die zuweisung solten schon mit in der Schleife stehen!
    ....
    Do

    For B = 1 To 4
    A = X(i)
    Porta.0 = A.0 'Linksoben
    Portd.6 = A.1 'Linksmitte
    Portd.2 = A.2 'Linksunten
    Portb.1 = A.3 'Mitteoben
    Portd.3 = A.4 'Mittemitte
    Portb.0 = A.5 'Mitteunten
    Portd.4 = A.6 'Rechtsoben
    Portb.2 = A.7 'Rechtsmitte
    Portd.5 = A.8 'Rechtsunten
    Portd.1 = A.9 'Ebene1
    Porta.1 = A.10 'Ebene2
    Portd.0 = A.11 'Ebene3
    Waitms 500
    Next


    Loop

Berechtigungen

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