mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik bin am verzweifeln meine LED blinkt nicht


Autor: A.erwin W. (der_neugierige)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten morgen

Ich bin am verzweifeln, ich habe einen AT8 in einem Evaluationsboard von 
pollin, einen AT8 hab ich schon zerfused, nun hat´s mit dem fusen 
wenigstens geklappt.
Allerdings versuche ich schon die ganze zeit eine LED zum blinken zu 
bringen.
Sie leuchtet nur

das hier ist mein zusammengeschnipselter code

$regfile = "m8def.dat"
$crystal = 1600000
Ddrd = &B01100000
Portd = &B01100000
Config Portd = Output
Do

Portd.6 = 0
Waitms 1000
Portd.6 = 1

Loop
End

Bitte nicht steinigen, ich weiß das es total simpel ist, aber ich werd 
gleich cholerisch ;-)
Vielen dank im vorraus.
Der neugierige

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Portd.6 = 0
>Waitms 1000
>Portd.6 = 1

Du musst nicht nur nach dem Einschalten der LED, sondern auch nach dem 
Ausschalten warten:

Do

Portd.6 = 0
Waitms 1000
Portd.6 = 1
Waitms 1000   <-- !

Loop

Autor: A.erwin W. (der_neugierige)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo AVRFan

Das habe ich gerade mal probiert, aber sie leutet trotzdem nur :-(

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für das Programm war es unnötig an den Fuses rumzuspielen. Das hätte 
auch mit dem internen Takt von 1 MHz gut funktioniert.

Wie wäre es hiermit? Wechselblinker der beiden LEDs

Do
  Toggle Portd.5
  Waitms 500
  Toggle Portd.6
Loop

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$crystal = 1600000

Hast Du hier nicht ne Null vergessen?

Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

handelt es sich hier um den Standardfehler, dass die LED einfach zu 
schnell blinkt, Stichwort PWM? Dann wäre sie nur gedimmt.
Gruß

Fred

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fred wrote:
> Hi,
>
> handelt es sich hier um den Standardfehler, dass die LED einfach zu
> schnell blinkt, Stichwort PWM? Dann wäre sie nur gedimmt.
> Gruß

Bei den Zeiten eher unwahrscheinlich.
Wenn er aber tatsächlich eine 0 bei $crystal vergessen
hat, dann blinkt die LED nicht alle 1 Sekunde sondern alle
10 Sekunden. Wenn er nicht geduldig genug war, dann
übersieht man das schon mal. 10 Sekunden können laaaang sein.

Autor: M. V. (-_-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn er aber tatsächlich eine 0 bei $crystal vergessen
>hat, dann blinkt die LED nicht alle 1 Sekunde sondern alle
>10 Sekunden. Wenn er nicht geduldig genug war, dann
>übersieht man das schon mal. 10 Sekunden können laaaang sein.

Andersrum wird 'n Schuh draus. Wenn er eine Null zu viel hätte, würde 
sie alle 10 s blinken.
Wenn er ne Null zu wenig hat, blinkt sie alle 100 ms.

Ich versteh zwar nicht viel von Bascom, aber wieso konfigurierst du den 
Port mehrmals als Ausgang?

Autor: bcc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
probiers mal hiermit:

$regfile = "m8def.dat"
$crystal = 1600000
Config Portd.6 = Output

Do
Portd.6 = 0
Waitms 1000
Portd.6 = 1
waitms 1000
Loop
End


oder mit

$regfile = "m8def.dat"
$crystal = 1600000
Config Portd.6 = Output

Do
toggle Portd.6
Waitms 1000
Loop
End

Autor: Christoph S. (mixer) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bei Pollin gibt es da schon ein fertiges Testprogramm für das Board zum 
runterladen, ist auch in bascom. Probier mal das aus, und wenn das 
funktioniert kannst du es ja umbauen.

MFG Mixer

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$regfile = "m8def.dat"
$crystal = 16000000
'entweder Port D so komplett als Ausgang konfiguriren
Ddrd = &B11111111
'oder so
Config Portd = Output
Do

Portd.6 = 0
Waitms 1000
Portd.6 = 1
Waitms 1000

Loop
End

So müßte es mit 0,5Hz blinken WENN der Mega8 tatsächlich mit 16Mhz
getaktet ist.Sonst probiere mal, den Wert $Crystal auf 1Mhz zu setzen,
nicht daß Dir die Fuse-Einstellungen mißlungen sind und er nicht wie
erwartet getaktet wird.

MfG Paul

Autor: Marc Meise (bytewood) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lass mal die Compilerdirektiven $.. weg und stelle unter 
"Options/Compiler/chip" den Controller und unter 
"Optins/Compiler/Communications" die Taktrequenz ein.

Hat denn die Programmübertragung zum M8 hin?

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marc Meise wrote:
> Lass mal die Compilerdirektiven $.. weg und stelle unter
Was soll das bringen?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.