Forum: Mikrocontroller und Digitale Elektronik Probleme mit Takt in Bascom


von keineAhnung (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute!

Ich bin Anfänger in Bascom und komme bei folgendem Problem nicht zum 
Ziel.

Ich möchte eine LED an einem ATmega324P im Sekundentakt blinken lassen.
Allerdings blinkt die LED nicht in diesem Takt, sondern viel langsamer 
(ca. alle 2 Sekunden).
Der Controller benutzt einen externen 20 MHz Quarz. Die Fuses sollten 
eigentlich stimmen.
Hier der Code
1
$regfile = "m324pdef.dat"
2
$crystal = 20000000
3
$hwstack=32
4
$swstack = 32
5
$framesize = 32
6
7
Config Portb = Output
8
Do
9
   Pinb.0 = 1
10
   Wait 1
11
12
   Pinb.0 = 0
13
   Wait 1
14
Loop

Die Fuse-Settings habe ich nochmal ausgelesen und in der Anlage 
beigefügt.

Hat da jemand einen Tip für mich?

Beste Grüße

Andreas

von Wilhelm F. (Gast)


Lesenswert?

Das ich was in Basic machte, ist lang lang her. Kann es sein, das die 
Wait-Funktion nur für eine bestimmte Quarzfrequenz spezifiziert ist?

Funktionieren tut es ja bei dir grundsätzlich.

von Dietrich L. (dietrichl)


Lesenswert?

keineAhnung schrieb:
> blinkt die LED nicht in diesem Takt, sondern viel langsamer
> (ca. alle 2 Sekunden)
>
> Do
>    Pinb.0 = 1
>    Wait 1
>
>    Pinb.0 = 0
>    Wait 1
> Loop

Wieso, das stimmt doch: 1 Sekunde "1", 1 Sekunde "0" macht eine 
Periodendauer von 2 Sekunden :-))

Gruß Dietrich

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

keineAhnung schrieb:
> Ich möchte eine LED an einem ATmega324P im Sekundentakt blinken lassen.
> Allerdings blinkt die LED nicht in diesem Takt, sondern viel langsamer
> (ca. alle 2 Sekunden).

> Do
>    Pinb.0 = 1
>    Wait 1
>
>    Pinb.0 = 0
>    Wait 1
> Loop

das sind ja insgesamt 2s. Wenn die Led in 1s Takt blinken soll musst Du 
jeweils Waitms 500 schreiben.

von keineAhnung (Gast)


Lesenswert?

Na gut, ich meine schon 2 sek. an und 2 sek. aus. Das ist dann eine 
Periodendauer von ca. 4 sek. und dass passt eben leider nicht.
Andere Ideen?

Andreas

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Dann solltest Du Dich schon genau ausdrücken und nicht erst später damit 
rausrücken was Du wirklich meinst.

von keineAhnung (Gast)


Lesenswert?

Gut, dann genauer.
Die LED soll eine Sekunde eingeschaltet sein, gefolgt von einer Sekunde 
Aus-Zeit. Der Istzustand ist ca. 2 Sekunden ein und ca. zwei Sekunden 
aus.

Andreas

von konf (Gast)


Lesenswert?

Um den Pin high oder low zu schalten schreibt man PORTB.0 = 1 bzw. = 0
Bei manchen µc bedeutet Schreiben in das PIN Register ein Toggeln.

von keineAhnung (Gast)


Lesenswert?

Danke konf, das ist die Lösung!

Andreas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.