Ampelschaltung funktioniert nicht,

Gast #480963
Lesenswert?

Guten Abend alle,

Ich hab mal dieses Programm auf mein Attiny 2313 drauf geladen.
Und 3 LED's an PB0, PB1 und PB2 dran gemacht.

Zuerst soll die Rote LED leuchten an PB0, 20 Sek lang,
dann soll sie ausgehen, die Orange soll leuchten 3 sek
dann soll die Orange ausgehen und die Grüne leuchten.

Aber irgendwie leuchtet nur die rote ^^.

Hier ist mal mein Code:
 $regfile = "2313def.dat"
 $crystal = 12000000
 Config Pinb.0 = Output
 Config Pinb.1 = Output
 Config Pinb.2 = Output

 Do
 Toggle Portb.0

 Wait 20
 Toggle Portb.0
 Toggle Portb.1

 Wait 3
 Toggle Portb.1
 Toggle Portb.2


 Loop

MfG,
Tugrul Ö.
Gast #480971
Lesenswert?

Hallo A.K,

Ich hab eben bei der gelben LED falsch gesteckt, jetzt leuchtet die Rote 
20 Sek und danach die Gelbe 3 Sek aber die Grüne nicht.

Und was du da geschrieben hast, versteh ich nicht so, ich bin neu in 
diesem Element und bitte bei Hilfen um vollständige Sätze (SPO = 
Subjekt, Prädikat und Objekt)

Danke

MfG,

Tugrul Ö.
Gast #480974
Lesenswert?

> $regfile = "2313def.dat"

Falsche Controller-Beschreibung ausgewählt. Ist zwar möglicherweise 
nicht die Ursache des Problems, aber trotzdem falsch.

Wäre noch nützlich zu wissen, wie die Hardware aussieht.
Gast #480987
Lesenswert?

Wenn dein Controller ATTiny2313 heisst, warum suchst du dann so 
hartnäckig nach einer Beschreibung von einem anderen Controller, dem 
AT90s2313? Wie ich schon andeutete, heisst das korrekte File 
ATtiny2313.DAT.
Gast #481017
Lesenswert?

Hallo,

Danke für eure Antworten. Ja das mit dem 100nF hab ich übersehen, auf 
meiner anderen Platine (IgorPlug-USB) hab ich einen drauf. Ich werde 
morgen einen mal dazu packen.

MfG,

Tugrul Ö.
Gast #481424
Lesenswert?

Hallo,

Ich hab diesen Code ausprobiert, aber es geht nicht ! Also die dritte 
LED geht nicht an. Der Port ist net beschädigt oder so...hab ich 
getestet.


 $regfile = "ATtiny2313.DAT"
 $crystal = 12000000
 Config Pinb.0 = Output
 Config Pinb.1 = Output
 Config Pinb.2 = Output

 Do
 Toggle Portb.0

 Wait 20
 Toggle Portb.0
 Toggle Portb.1
 Toggle Portb.2

 Wait 3
 Toggle Portb.1
 Toggle Portb.2

 Wait 10

 Loop

Hab echt keine Ahnung.
Gast #481428
Lesenswert?

>Hab echt keine Ahnung.

Schalte doch einfach mal alle an.
Wenn dann auch alle leuchten, weisst du, dass die Hardware in Ordnung 
ist.
Und dann solltest du die LEDs lieber einschaltet statt umschalten 
(togglen).
Gast #481753
Lesenswert?

Hallo,

Ich hab den PB2 getestet in dem ich da mal ne LED ran gemacht und sie 
leuchtet. Ich glaube aber das ich das Problemkind schon gefunden habe, 
es liegt an einem Kabel.

Nochmal zu deinem "einschalten und umschalten"

Der Befehl toggle ist ja umschalten.

Kann ich mit diesem Befehl die Ports ein-und auschalten ?

Config Portc.0 = Output
Portc.0 = 1
Portc.0 = 0

Danke
Gast #481800
Lesenswert?

ziemlich krude Sache mit dem Toggeln ... es wird einfach immer der
Zustand gewechselt, 1 -> 0 und 0 -> 1 mit set und reset oder
1 und 0 sind die sachen oft übersichtlicher, von wegen was wann wo
ein und ausgeschaltet wird.
Gast #481809
Lesenswert?

>Kann ich mit diesem Befehl die Ports ein-und auschalten ?

Solche Fragen beantwortet in der Regel das Handbuch / die 
Referenzübersicht zur Programmiersprache...

[mal wieder OffTopic]
Wieso verfallen eigentlich so ziemlich alle BASCOM-"Programmierer" immer 
diesem Wahn, sich hier im Forum diese Sprache beibringen lassen zu 
müssen?

[/mal wieder OffTopic]
Gast #482524
Lesenswert?

@Tugrul

versuch es mal mit diesem Code, bei mir funzt es zumindest so.

$regfile = "attiny2313.dat"
$crystal = 1000000

Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output

Do
Toggle Portb.0

Wait 20
Toggle Portb.0
Toggle Portb.1

Wait 3
Toggle Portb.1
Toggle Portb.2

Wait 10
Loop
#482534
Lesenswert?

Hab den Code noch etwas umgeschrieben:

$regfile = "attiny2313.dat"
'Definition des MC
$crystal = 1000000
'Quarz einstellen, Sekunden im Programm Ablauf sind nicht wirklich 
Sekunden sondern etwas weniger, also nicht wundern!!

Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
'die Ports werden auf Ausgang gesetzt

Do
Portb.0 = 1      'grün wird geschaltet

Wait 10          'warte 10 Sekunden

Portb.0 = 0      'grün wird ausgeschaltet
Portb.1 = 1      'gelb wird eingeschaltet

Wait 5           'warte 5 Sekunden

Portb.1 = 0      'gelb wird ausgeschaltet
Portb.2 = 1      'rot wird eingeschaltet

Wait 5           'warte 5 Sekunden

Portb.1 = 1      'gelb wird eingeschaltet
Portb.2 = 1      'rot wird eingeschaltet

Wait 5           'warte 5 Sekunden

Portb.0 = 1      'grün wird eingeschaltet
Portb.1 = 0      'gelb wir ausgeschaltet
Portb.2 = 0      'rot wird ausgeschaltet

Loop             'von vorne beginnen


Man kann das bestimmt auch kürzer machen, aber dazu habe ich jetzt im 
Moment keine Lust mehr. Hauptsache es funktioniert.

Gruß
Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren