Countdown- 7 Segment Anzeige

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 29 11 2024  13:35:22      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Countdown- 7 Segment Anzeige

    







BID = 554035

DaveWagner

Neu hier



Beiträge: 25
Wohnort: Mühldorf
 

  


Hallo

Da mein Freund ein Board zum Programmieren hat will ich gleich einmal ein Programm auf einen Atmega8 laden.Das Programm soll die Zahlen 10 bis 0
im Sekundentakt anzeigen. Bei jeder Sekunde soll auch ein Piepston der Länge 250ms ausgegeben werden. Wenn null angezeigt wird, wird ein Motor durch einen FET angesteuert.An PortD.16 soll ein Taster angeschlossen werden der das Programm startet.An PortD.3 wird ein Taster angeschlossen der das Programm wieder von vorne anfangen lässt.An PortD.17 kommt der Piepser
An PortD.18 kommt der Motor über den FET.

Jedoch wird mir ein Fehler angezeigt bei Bascom.

Also hier das Programm :

$regfile = "m8def.dat"

$crystal = 1000000

Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.2 = Output
Config Pind.10 = Output
Config Pind.11 = Output
Config Pind.12 = Output
Config Pind.13 = Output
Config Pind.14 = Output
Config Pind.15 = Output
Config Pind.16 = Input
Config Pind.3 = Input
Config Pind.17 = Output
Config Pind.18 = Output






If Portd.16 = 1 Then Do


Portd.5 = 1
Portd.6 = 1
Portd.2 = 1
Portd.10 = 1
Portd.11 = 1
Portd.12 = 1
Portd.13 = 1
Portd.14 = 1
Portd.17 = 1
Waitms 250
Portd.17 = 0

Waitms 1000

Portd.5 = 0
Portd.6 = 0

Portd.2 = 1
Portd.10 = 1
Portd.11 = 1
Portd.12 = 1
Portd.13 = 1
Portd.17 = 1
Portd.14 = 0

Waitms 250
Portd.17 = 0

Waitms 1000

Portd.2 = 1
Portd.10 = 1
Portd.11 = 1
Portd.12 = 1
Portd.13 = 1
Portd.14 = 1
Portd.15 = 1
Portd.17 = 1
Waitms 250
Portd.17 = 0

Waitms 1000

Portd.2 = 1
Portd.10 = 1
Portd.11 = 1
Portd.15 = 1
Portd.17 = 1
Portd.13 = 0
Portd.14 = 0

Waitms 250
Portd.17 = 0

Waitms 1000

Portd.2 = 1
Portd.11 = 1
Portd.12 = 1
Portd.13 = 1
Portd.14 = 1
Portd.15 = 1
Portd.17 = 1
Portd.10 = 0
Waitms 250
Portd.17 = 0

Waitms 1000

Portd.2 = 1
Portd.11 = 1
Portd.12 = 1
Portd.14 = 1
Portd.15 = 1
Portd.17 = 1
Portd.13 = 0
Waitms 250
Portd.17 = 0

Waitms 1000

Portd.10 = 1
Portd.11 = 1
Portd.14 = 1
Portd.15 = 1
Portd.17 = 1
Portd.2 = 0
Portd.12 = 0
Waitms 250
Portd.17 = 0

Waitms 1000

Portd.2 = 1
Portd.10 = 1
Portd.11 = 1
Portd.12 = 1
Portd.15 = 1
Portd.17 = 1
Portd.14 = 0
Waitms 250
Portd.17 = 0

Waitms 1000


Portd.2 = 1
Portd.10 = 1
Portd.15 = 1
Portd.13 = 1
Portd.12 = 1
Portd.17 = 1
Portd.11 = 0
Waitms 250
Portd.17 = 0

Waitms 1000

Portd.10 = 1
Portd.11 = 1
Portd.2 = 0
Portd.12 = 0
Portd.13 = 0
Portd.14 = 0
Portd.15 = 0
Portd.17 = 1
Waitms 250
Portd.17 = 0


Waitms 1000


Portd.2 = 1
Portd.10 = 1
Portd.11 = 1
Portd.12 = 1
Portd.13 = 1
Portd.14 = 1
Portd.17 = 1
Waitms 250
Portd.17 = 0

Portd.18 = 1


End If Portd.3 = 1


If Portd.16 = 1 Then LOOP

Fehlermeldung = Bei der Zeile " End If Portd.3 = 1 " ist der Fehler
Error : 31 Invalid Datatype [[0011]0]

Was habe ich falsch gemacht ?

Danke im Voraus

David Wagner

BID = 554041

Her Masters Voice

Inventar


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 5308
Wohnort: irgendwo südlich von Berlin

 

  

End If Portd.3 = 1 sind 2 Zeilen. Wenn nicht, gibts eben einen Fehler. Wie wärs mal mit Handbuch lesen? RTFM hilft oft weiter.



BID = 554078

PhyMaLehrer

Schriftsteller



Beiträge: 911
Wohnort: Leipzig

Ich habe jetzt einmal spaßeshalber diesen Quelltext in die BASCOM-Umgebung kopiert und kompilieren lassen. Tatsächlich wird mir nur dieser eine Fehler angezeigt. Das wundert mich sehr. Ich kann nämlich z. B. mit Pind.10 und Pind.18 nichts anfangen. Woher kommen diese großen Zahlen? Sind das Pin-Nummern? An Pin 10 beispielsweise liegt Bit 7 des Ports B, an Pin 18 liegt Bit 4 von Port B. (Im Datenblatt nachsehen, welche Port-Bits an welchen IC-Pins anliegen!)
Es müßte also nach meinem Verständnis nicht Pind.10 heißen, sondern Pinb.7 und nicht Pind.18, sondern Pinb.4 (analog bei den anderen Deklarationen und beim Setzen der Port-Bits).

Wenn ich die "angezählte" Zeile in zwei aufteile, kommt aber wieder ein Fehler, da nach If Portd.3 = 1 kein Befehl folgt, der in diesem Falle auszuführen wäre!

Die Programmierung genauerer Zeitabstände mittels Timer-Interrupt kommt vielleicht später mal noch. Für jetzt möchte ich aber darauf aufmerksam machen, daß die darzustellenden Zahlen im Abstand von etwa 1,25 s (und nicht 1 s) erscheinen, da pro Ziffer 1 s gewartet wird und pro Piepston 0,25 s!

BID = 554154

DaveWagner

Neu hier



Beiträge: 25
Wohnort: Mühldorf

Hallo

Hab jetzt einen Teil gelöscht und die Pins umbenannt.
Der Einfachheit halber habe ich jetzt einen Abstand von 1,25sec gewählt, da ich mich mit Interrupts noch nicht auskenne.

Mfg

David Wagner

BID = 554158

PhyMaLehrer

Schriftsteller



Beiträge: 911
Wohnort: Leipzig

... oder du machst die "große Pause" eben nur 0,75 s lang, dann stimmt's doch wieder!


Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag       heute wurden bisher 13 Beiträge verfasst
© x sparkkelsputz        Besucher : 182423260   Heute : 2302    Gestern : 5459    Online : 453        29.11.2024    13:35
3 Besucher in den letzten 60 Sekunden        alle 20.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0230441093445