PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lauflicht



Eisingstone
10.01.2007, 13:40
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.


'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

Eisingstone
12.01.2007, 23:52
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

felack
15.01.2007, 18:19
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

Eisingstone
29.01.2007, 01:00
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