Keiner kann mir helfen? Oder ist die Frage einfach zu blöd?
Hallo!
Bringt mir folgendes Ergebnis: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
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!
-> MEIN PROJEKTBLOG <-
Keiner kann mir helfen? Oder ist die Frage einfach zu blöd?
-> MEIN PROJEKTBLOG <-
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
naja wenn ich
mach, dann leuchten zumindest alle. das ist ja das was mich stutzig macht.Code:portb = 255
-> MEIN PROJEKTBLOG <-
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
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!
-> MEIN PROJEKTBLOG <-
Hallo!, versuch doch mal den folgenden Code:
Ist nur mal eine Idee, habs nicht getestet.
Viel Erfolg BerndCode:$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
Gruß Bernd (Gandalf)
Schrott im Keller macht das Erfinden schneller. ( Dietrich Drahtlos )
Hi!
Hier der Schaltplan:
Bild hier
@gandalf:
Nö, kommt das gleiche raus. Schade
-> MEIN PROJEKTBLOG <-
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!
Viel Spaß im Forum
MfG Peter
Rechtschreibfehler sind geistiges Eigentum des Verfassers.... wer sie findet darf sie aber behalten
Ä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)
So... mehr hab ich aber jetzt nicht dazu!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
Viel Spaß im Forum
MfG Peter
Rechtschreibfehler sind geistiges Eigentum des Verfassers.... wer sie findet darf sie aber behalten
Lesezeichen