-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Tiny12-Lauflicht will nicht

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253

    Tiny12-Lauflicht will nicht

    Anzeige

    Hallo!

    Code:
    $regfile = "at12def.dat"
    $crystal = 1200000
    $tiny
    Config Pinb.0 = Output
    Config Pinb.1 = Output
    Config Pinb.2 = Output
    Config Pinb.3 = Output
    Config Pinb.4 = Output
    Eins:
    Portb = 1
    Waitms 200
    Portb = 2
    Waitms 200
    Portb = 4
    Waitms 200
    Portb = 8
    Waitms 200
    Portb = 16
    Waitms 200
    Goto Eins
    Bringt mir folgendes Ergebnis:

    http://video.google.de/videoplay?doc...41342921510491

    Ich hab 10x mit Datenblatt meinen Schaltplan kontrolliert und kam zu dem Schluss, dass die Pinne in der richtigen Reihenfolge mit der LED-Zeile verbunden sind. Die linke ist LED1(für Informatiker 0). Die wird auch zuerst eingeschaltet. Aber danach wirds dann komisch. Ist der Fehler nun in der Software oder doch irgendwie in der Hardware?

    Ich bin verzweifelt!

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    Keiner kann mir helfen? Oder ist die Frage einfach zu blöd?

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    14.03.2006
    Beiträge
    35
    Hi Goblin,

    Dein Prog. sollte so laufen.
    Sind die LED´s auch richtig angeschlossen?
    Hast Du den Vorwiederstand richtig berechnet?
    Kann Dein Prozessor den benötigten Strom treiben?

    Das sind die Dinge die mir dazu einfallen.

    Gruß
    Rolf

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    naja wenn ich

    Code:
    portb = 255
    mach, dann leuchten zumindest alle. das ist ja das was mich stutzig macht.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    29
    Beiträge
    470
    für mich ist der fehler klar: Das Programm macht was es soll nur du hast die LEDs an die Falschen Pins, somit stimmt die reihenfolge der LEDs nicht, Prüfe das nochmla nach

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    ich würde dir ja zustimmen, wenn ich das nicht schon einige male kontrolliert hätte..... aber nen vorschlag zur güte: ich werd mal nen schaltplan von meiner schaltung malen. das hilft meist. aber wenn da dann nen positives ergebnis bei rauskommt müsst ihr weiterrätseln!

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    26.01.2005
    Ort
    Neuburg / Donau
    Alter
    56
    Beiträge
    80

    Re: Tiny12-Lauflicht will nicht

    Hallo!, versuch doch mal den folgenden Code:
    Ist nur mal eine Idee, habs nicht getestet.


    Code:
    $regfile = "at12def.dat"
    $crystal = 1200000
    $tiny
    Config Portb.0 = Output  'Port setzt auf Augsgang
    Config Portb.1 = Output  'Pin setzt auf Eingang !
    Config Portb.2 = Output
    Config Portb.3 = Output
    Config Portb.4 = Output
    Eins:
    Portb = 1
    Waitms 200
    Portb = 2
    Waitms 200
    Portb = 4
    Waitms 200
    Portb = 8
    Waitms 200
    Portb = 16
    Waitms 200
    Goto Eins
    Viel Erfolg Bernd
    Gruß Bernd (Gandalf)

    Schrott im Keller macht das Erfinden schneller. ( Dietrich Drahtlos )

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    Hi!

    Hier der Schaltplan:



    @gandalf:

    Nö, kommt das gleiche raus. Schade

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    16.02.2005
    Ort
    D-98746
    Beiträge
    75
    Hi Gobblin,

    ich hatte das gleiche Problem, als ich mit meinem ersten Projekt anfing!

    Ich hab zwar einen 2313 eingesetzt aber mit etwas Modifikation geht das Prog ja auch für nen Tiny!

    Lass dich nicht von der Größe des Listings schocken, mein Lauflicht hat unseren Weihnachtsbaum vorm Haus geschmückt und da wollte ich mehrere Lauflichtvarianten durchlaufen lassen!

    Jetzt kommts:

    Code:
    '******************************************************************************
    'Name                : Lauflicht5x.bas
    'Purpose             : Lauflicht für Weihnachtsbaum
    'Version             : V0.02
    'Compiler            : Bascom AVR 1.11.7.4
    '
    'Hardware             (1) LED's bzw. Schaltverstärker
    '                         an PB0 bis PB5
    '                     (2) Schalttaster zur Hand/Auto- Steuerung
    '                         an PD0 und PD1
    '
    'Chiptyp             : AT90S2313
    '******************************************************************************
    
    $regfile = "2313def.dat"                                    'AT90S2313
    $crystal = 4000000                                          'Quarz-Frequenz
    
    
    
    Config Portb = Output                                       'PBx als Ausgänge
    Config Portd = Input                                        'PDx als Eingänge
    
    Dim W As Byte                                               'W= Werte in Lauflicht lesen
    Dim I As Byte                                               'I= Schleife für 1 Durchgang
    Dim J As Byte                                               'J= Vieviel mal Schleife
    
    Dim Z As Byte                                               'Z= Zählerwert
    Z = 1
    
    Dim D As Byte
    D = 20                                                      'D= Anzahl der Schleifen
    
    Dim T As Integer                                            'T= Taktzeit
    T = 200
    
    Portb = 63                                                  ' alle Ports EIN
    Wait 60                                                     ' 60 sec Vorheizen
    
    Auto:
    
    Do
    
    For J = 1 To D
        If Pind.1 = 1 Then
        Goto Hand:                                              'Hand/Auto- Ebene
        End If
      Restore Vor1
      For I = 1 To 5
        Read W
        Portb = W
        Waitms T
      Next I
    Next J
    
    For J = 1 To D
        If Pind.1 = 1 Then
        Goto Hand:                                              'Hand/Auto- Ebene
        End If
      Restore Rueck1                                            'Zeiger auf Beginn der Daten setzen
      For I = 1 To 5                                            'Lese nächsten Wert
        Read W                                                  'Setze Port
        Portb = W
        Waitms T
      Next I
    Next J
    
    For J = 1 To D
        If Pind.1 = 1 Then
        Goto Hand:                                              'Hand/Auto- Ebene
        End If
      Restore Neg1                                              'Zeiger auf Beginn der Daten setzen
      For I = 1 To 5                                            'Lese nächsten Wert
        Read W                                                  'Setze Port
        Portb = W
        Waitms T
      Next I
    Next J
    
    For J = 1 To D
        If Pind.1 = 1 Then
        Goto Hand:                                              'Hand/Auto- Ebene
        End If
      Restore Neg2                                              'Zeiger auf Beginn der Daten setzen
      For I = 1 To 5                                            'Lese nächsten Wert
        Read W                                                  'Setze Port
        Portb = W
        Waitms T
      Next I
    Next J
    
    For J = 1 To D
        If Pind.1 = 1 Then
        Goto Hand:                                              'Hand/Auto- Ebene
        End If
      Restore Add1                                              'Zeiger auf Beginn der Daten setzen
      For I = 1 To 10                                           'Lese nächsten Wert
        Read W                                                  'Setze Port
        Portb = W
        Waitms T
      Next I
    Next J
    
    For J = 1 To D
        If Pind.1 = 1 Then
        Goto Hand:                                              'Hand/Auto- Ebene
        End If
      Restore Wechs1                                            'Zeiger auf Beginn der Daten setzen
      For I = 1 To 12                                           'Lese nächsten Wert
        Read W                                                  'Setze Port
        Portb = W
        Waitms T
      Next I
    Next J
    
    For J = 1 To D
        If Pind.1 = 1 Then
        Goto Hand:                                              'Hand/Auto- Ebene
        End If
      Restore Kllauf1                                           'Zeiger auf Beginn der Daten setzen
      For I = 1 To 3                                            'Lese nächsten Wert
        Read W                                                  'Setze Port
        Portb = W
        Waitms T
      Next I
    Next J
    
    For J = 1 To D
        If Pind.1 = 1 Then
        Goto Hand:                                              'Hand/Auto- Ebene
        End If
      Restore Ende                                              'Zeiger auf Beginn der Daten setzen
      For I = 1 To 2                                            'Lese nächsten Wert
        Read W                                                  'Setze Port
        Portb = W
        Wait 1
      Next I
    Next J
    
    Loop
    
    End
    
    
    
    
    '+++++++++++++++++++++++++++++++++++++++++++
    ' Daten für verschiedene Lauflichtfunktionen
    '+++++++++++++++++++++++++++++++++++++++++++
    
    
    Vor1:
    Data 33 , 34 , 36 , 40 , 48,                                '6  12345 einzenl vorwärts
    
    Rueck1:
    Data 48 , 40 , 36 , 34 , 33,                                '6  54321 einzeln rückwärts
    
    Neg1:
    Data 62 , 61 , 59 , 55 , 47,                                '6  12345 negiert einzeln
    
    Neg2:
    Data 47 , 55 , 59 , 61 , 62,                                '6  54321 negiert einzeln
    
    Add1:
    Data 32 , 33 , 35 , 39 , 47 , 63,                           '6  12345 addierend
    Data 62 , 60 , 56 , 48 ,                                    '6  12345 subtrahierend
    
    Wechs1:
    Data 32 , 33 , 49 , 51 , 59 , 63,                           '6  1-15-152-1524-15243
    Data 32 , 63 , 32 , 63 , 32 , 63,                           '6  3xalle
    
    Kllauf1:
    Data 37 , 42 , 52,                                          '6  13-24-35
    
    Ende:
    Data 31 , 32,                                               '6  12345 im Wechsel
    
    
    
    Hand:
    
    If Pind.1 = 0 Then
       Goto Auto:
    End If
    
    If Pind.0 = 0 Then
       Z = Z * 2
    End If
    
    If Z > 32 Then
       Z = 1
    End If
    
    Portb = Z
    
    Wait 1
    
    Goto Hand:

    Such Dir halt das Stück raus, welches Du für die einfach Funktion brauchst!
    Wenn Du Fragen hast, meld Dich halt noch mal!

    P.s.: Cooles Video!!!

    Schönes Wochenende noch!

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    16.02.2005
    Ort
    D-98746
    Beiträge
    75
    Ähhh, noch was!

    Hab hier noch ein vereinfachtes Listing gefunden, was ich mal in einer XBox verbaut habe!

    Hat 8 Kanäle (kannste ja auf 4 reduzieren) und läuft nur vorwärts und rückwärts mit der Random Funktion (also zufällig)

    Code:
    '************************************************************
    'Name                : X-Box Logo.bas
    'Purpose             : Beleuchtung Lauflicht um das Logo
    'Version             : V0.01
    'Compiler            : Bascom AVR 1.11.7.4
    'Hardware            : LED's an PB 0-7
    'Chip type           : AT90S2313
    'History
    '************************************************************
    $regfile = "2313def.dat"                                    'AT90S2313
    $crystal = 4000000
    Ddrd = &B1111111                                            '7 Ausgänge PortD auf Masse
    
    
    Config Portb = Output                                       'Pin PB0-7 Ausgang
    Dim A As Byte
    Dim I As Byte
    Dim J As Byte
    Dim K As Integer
    
    Do
    K = Rnd(15)
    For J = 1 To K
    Restore Vor
      For I = 1 To 8                                            'Lese nächsten Wert
        Read A                                                  'Setze Port
        Portb = A
        Waitms 80
      Next I
    Next J
    K = Rnd(15)
    For J = 1 To K
    Restore Rueck
      For I = 1 To 8                                            'Lese nächsten Wert
        Read A                                                  'Setze Port
        Portb = A
        Waitms 80
      Next I
    Next J
    
    Loop
    
    
    Vor:
    Data 254 , 253 , 251 , 247 , 239 , 223 , 191 , 127,         '8  12345678 einzeln
    
    Rueck:
    Data 127 , 191 , 223 , 239 , 247 , 251 , 253 , 254          '8  87654321 einzeln
    So... mehr hab ich aber jetzt nicht dazu!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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