Einfache Blinkschaltung für ATTiny13
Ich brauche mal wieder eure Hilfe:
Also zum Realen Problem
Ich will bei meine 1:87 Modellautos elektrifizieren. Für die Blinklichter will ich mir Flipfloppschaltung usw. sparen und das ganze über AVRs lösen. Es solle recht einfach werden, so bald ich Strom gebe soll alles Blinken was eine LED dahinter hat. Natürlich gibt es unterschiedliche Blinkfolgen, deshalb müssen mehrere Ausgänge des Tinys parallel den Strom aussenden.
Die einzelnen Ports sollen nach folgendem Muster Strom geben:
Einleitung
Code:
$regfile "attiny13.dat"
'Angabe der Taktfrequenz (1Mhz)
$crystal = 1200000 'die Taktfrequenz musst Du noch richtig setzen
$hwstack = 16
Dim A As Byte
Dim B As Integer
Dim C As Byte
Dim Zaehler As Byte
Dim Zeit2 As Byte
Dim Zeit3 As Byte
Dim Zeit4 As Byte
A = 50
B = 500
C = 35
Zeit2 = C * 2
Zeit3 = C * 3
Zeit4 = C * 4
Config Portb = &B01111
Blinkfrequenz für den PortB1
Code:
Do 'Doppelblitz
Portb.1 = 1
Waitms A
Portb.1 = 0
Waitms A
Portb.1 = 1
Waitms A
Portb.1 = 0
Waitms B
Loop
Blinkfrequenz für den PortB2
Code:
Do 'Blaulicht Port.b2!
Portb.2 = 1
Waitms A
Portb.2 = 0
Waitms B
Loop
Blinkfrequenz für den PortB3
Code:
Do 'Warnblink
Portb.3 = 0
Waitms B
Portb.3 = 1
Waitms B
Loop
Blinkfrequenz für den PortB4
Code:
Do 'Triblitz 1.Strobo
Portb.4 = 0
Waitms B
Portb.4 = 1
Waitms C
Portb.4 = 0
Waitms C
Portb.4 = 0
Waitms C
Portb.4 = 0
Waitms C
Portb.4 = 0
Waitms C
Portb.4 = 0
Waitms C
Loop
Blinkfrequenz für den PortB5
Code:
Do 'Triblitz 2.Strobo
Portb.5 = 0
Waitms B
Portb.5 = 0
Waitms C
Portb.5 = 0
Waitms C
Portb.5 = 1
Waitms C
Portb.5 = 0
Waitms C
Portb.5 = 0
Waitms C
Portb.5 = 0
Waitms C
Loop
Blinkfrequenz für den PortB6 (Wegen Reset nicht aktiv während des Testens)
Code:
Do 'Triblitz 3.Strobo
Portb.6 = 0
Waitms B
Portb.6 = 0
Waitms C
Portb.6 = 0
Waitms C
Portb.6 = 0
Waitms C
Portb.6 = 0
Waitms C
Portb.6 = 1
Waitms C
Portb.6 = 0
Waitms C
Loop
Da es ja alles Do-Loop-Schleifen sind wird das Script ja nur bis zum ersten Loop abgespielt und alles weitere nicht berücksichtigt. Ich habe leider recht wenig Ahnung vom Programmieren, bin so ein richtiger Anfänger. Nun will ich ja dass an allen Pins entsprechend des Scripts Strom gegeben wird, ich weiß nur nicht wie man das macht.
MfG O:)
Jannes
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
wie versprochen sende ich das Programm,
wohl für den Tiny15, aber ich denke wenn man die tn15def.inc gegen tn13def.inc wechselt
und neu assembliert sollte es ohne Problemme klappen.
Ich hab kleine Änderungen vorgenommen damit das in etwa so geht, wie Du das vor hattest.
Das Programm könnte man noch was optimieren, ich hab es vor einem Jahr geschrieben, aber es klappt gut
Ich hatte es schnell auf dem STK500 aufgebaut, HIER ein kurzes Video davon
(Ja, ja meine Frau hat Ihre Leidenschaft für Videobearbeitung entdeckt :-b )
Wenn du Fragen Hast, her damit.
Ach ja noch ein Wort zu Hardware,
die LED's sind gegen VCC geschaltet, man muß bei dem wegprogrammiertem Reset Pin aufpassen,
er kann nur etwa 15 mA abführen, also entweder LED's die weniger brauchen, oder Treiber Transistoren davorschalten,
und naja, wenn Du kein STK500 oder etwas in der Art hast hast Du nur einen Versuch :-)
Gruß Sebastian
P.S.
Zitat:
Aber 1kB Flash wird da auch bald voll sein.
#-o