-         

Ergebnis 1 bis 4 von 4

Thema: Lauflicht

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.10.2005
    Beiträge
    9

    Lauflicht

    Anzeige

    Hallo,

    ich hoffe hier st mir jemand der mir bei meinem Problem helfen kann, da ich noch nicht so firm in der Programierung bin.
    Das Program funzt soweit, ich hab es schon etwas umgeschrieben, nur bin ich nun an einem Punkt angekommen wo ich nicht mehr weiter weiß.
    Der Timer0 gibt ein Signal auf Porta.0 raus, soweit so gut. Die Musteranzeige funzt auch auf Portb und Portd. Meine Frage ist nun, ist es möglich das Signal das Timer0 generiert auf die anderen Ports zu nutzen, so daß die LED´s die durch die Musteranzeige während dieser zeit schnell blinken??
    Bisher hab ich nur das Ergebnis gehabt das entweder das Blinksignal gar nicht geht oder die ganzen Ports blinken läßt und so die Musteranzeige überblendet.

    Code:
    'Drachenlicht mit ATtiny2313 Version 0.8
    'Zeitgesteuerte Musteranzeige
    'erstellt für www.attiny.de
    'von Bernhard Ritter
    
    $regfile = "attiny2313.dat"                                 'Definitionsdatei für ATtiny2313
    $crystal = 2000000                                           'Oszillatorfrequenz 0.5 MHz
    
    Config Porta.0 = Output                                     'Port A ist Ausgang für LEDs
    Config Portb = Output                                       'Port B ist Ausgang für LEDs
    Config Portd = Output                                       'Port D ist Ausgang für LEDs
    
    Porta.0 = 0                                                 'Alle Ausgänge Port A auf 0
    Portb = 0                                                   'Alle Ausgänge Port B auf 0
    Portd = 0                                                   'Alle Ausgänge Port D auf 0
    
    Dim Muster1 As Byte                                         'Muster1 als Byte dimensionieren
    Dim Muster2 As Byte                                         'Muster2 als Byte dimensionieren
    Dim Zeit As Byte                                            'Zeitzähler in 0.13-Sekundenschritten
    Dim Intzeit As Byte                                         'Interruptzähler für Zeitvergleich
    
    
    Config Timer0 = Timer , Prescale = 8                        ' Timer-0 Vorteiler auf 1024
    Timer0 = &H00                                               ' Timer-0 Startwert setzen
    Enable Timer0                                               ' Timer-0 Interrupt einschalten
    On Timer0 Trigger
    
    
    
    Config Timer1 = Timer , Prescale = 1                        'Prescaler auf 256
                                                                  'Interrupt alle 256 x 256 Takte : 2uS * 65536 = 131.072 ms
                                                                  '15 Zeiteinheiten ergeben 2 Sekunden Musteranzeigezeit
    On Timer1 Anzeige                                           'bei Timerüberlauf nach Anzeige springen
    Enable Timer1                                               'Timer0-Interrupt einschalten
    Enable Interrupts                                           'Interrupts global aktivieren
    
    
    Do                                                          'Hauptprogramm
    
     'nothing
    
    Loop
    
    End                                                         'End Hauptprogramm
    
    Anzeige:                                                    'Unterprogramm Anzeige
    
      Incr Intzeit                                              'Interruptzähler für Zeitvergleich erhöhen
        If Intzeit > Zeit Then                                  'Wenn Musterzeit abgelaufen ist neuen Datensatz holen
          Intzeit = 1                                           'Interruptzähler zurücksetzen
            If Zeit = 0 Then Restore Musterdaten                'Datenzeiger auf erstes Muster setzen
          Read Muster1                                          'Muster einlesen
          Read Muster2
          Read Zeit
    
          Portb = Muster1                                       'Daten anzeigen
          Portd = Muster2
    
        End If
      Return
    
    Trigger:
                                                                'Timer-0 Interruptroutine
       Timer0 = &H00                                            ' Timer-0 Startwert setzen
       Portb = &HFF - Portb                                     ' Ausgänge invertieren
    Return
    
    'Hier beginnt die Muster- und Zeitenliste
    'Aufbau: Data Muster1 , Muster2 , Zeit
    'Die Muster können binär(&Bxxxxxxxx), hexadezimal(&Hxx) oder dezimal eingegeben werden
    'Zeit=0 startet Programm neu
    
    Musterdaten:
    Data &B00000001 , &B00000001 , 10
    Data &H03 , &H03 , 10
    Data 7 , 7 , 15
    Data 15 , 15 , 1
    Data 31 , 31 , 1
    Data 63 , 63 , 1
    Data 127 , 127 , 1
    Data 255 , 255 , 1
    Data 1 , 254 , 1
    Data 3 , 252 , 1
    Data 7 , 248 , 1
    Data 15 , 240 , 1
    Data 31 , 224 , 1
    Data 63 , 192 , 1
    Data 127 , 128 , 1
    Data 255 , 0 , 1
    Data 0 , 0 , 0
    Bin für jeden Hinweis dankbar.

    Gruß
    Stefan

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    06.10.2005
    Beiträge
    9
    Hallo,

    bin mittlerweile soweit das ich mich diesem Problem eigentlich nicht mehr stellen möchte. Die Tendenz geht in Richtung die Schaltung so zu lassen, 2*ULN2803 mit je 7*8 LED Gruppen über den Porta.0 und einem Mosfet schnell ein und ausschalten zu lassen.
    Kann mir da jemand einen Mosfet empfehlen???? Möchte den gerne in die Leitung vom ULN2803 zum GND hängen.

    Gruß
    Stefan

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.04.2005
    Beiträge
    178
    Hallo Stefan,

    Als Feldeffekttransistor empfiehlt elektor die Typen BUZ10, BUZ100 oder IRL3705, je nach Belastung (siehe Bild unten).

    Es geht aber auch einfacher:

    Die Zeile

    DATA 0,0,1 'schaltet alle LEDs für 130ms aus,

    DATA 0,0,2 'schaltet alle LEDs für 260ms aus ..usw.....

    felack
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken fet_171.jpg  

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    06.10.2005
    Beiträge
    9
    Hallo,

    mal ein kurzer Zwischenbericht von mir, habe jetzt den IRL3705 in die Schaltung integriert und funzt wunderbar. Sobald ich alles fertig habe gibt es weitere Infos.
    Vielen Dank an Felak

    Gruß
    Stefan

Berechtigungen

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