Forum: Mikrocontroller und Digitale Elektronik Lauflicht Atmega8 Unter C


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ludwig (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das lauflicht ist mit dem ATMEGA 8   Gebaut worden
Es gibt auch ein Code für das Lauflicht

Ich würde mich sehr freuen wenn wer sich den Beitrag einer Annimmt oder 
wenn Fragen hat



Ein Gruß Ludwig63

von E...... B. (ludwig63)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das lauflicht ist mit dem ATMEGA 8   Gebaut worden
Es gibt auch ein Code für das Lauflicht

Ich würde mich sehr freuen wenn wer sich den Beitrag einer Annimmt oder
wenn Fragen hat



Ein Gruß Ludwig63

: Bearbeitet durch User
Beitrag #4999231 wurde vom Autor gelöscht.
Beitrag #4999233 wurde von einem Moderator gelöscht.
Beitrag #4999236 wurde von einem Moderator gelöscht.
von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Na gut:

1. es ist sinnvoll die Pins am Atmega zu beschriften und nicht einfach 
nur durch zu nummerieren, denn nicht jeder holt jetzt das Datenblatt 
hervor

2. die Dioden sind falsch herum

3. wer liefert 5V Batterien?

4. wir wissen jetzt das du PortD beschreiben kannst und den delay kennst

5. wenn du es besser machen willst, nimm Schleifen und Arrays

6. es bringt nicht viel anonym aufzutreten und seinen Namen in den 
Quelltext zu schreiben ;)

von Patrick J. (ho-bit-hun-ter)


Bewertung
0 lesenswert
nicht lesenswert
Hi

Als 'Hello world' nicht schlecht, kostet aber doch einiges an Speicher.
Weiter bist Du so recht unflexibel.

Ok, wenn der µC erst Mal 'in the wild' ist und eh nur sein Programm 
abspult, ist's egal, wie das Programm aussieht, aber Das geht auch 
schöner.

Mir ist nicht bekannt, ob der Aufruf 'delay(20)' jedes Mal einen 
Codeblock generiert, oder ob in den Tiefen der Includes eine Funktion 
aufgerufen wird - bei Erstem wäre Platz einzusparen, wenn man das Delay 
selber in eine Funktion packt.

Sofern die LEDs in eine Richtung laufen, kann man Das mit 
Bit-Manipulation machen.
So lässt der Assembler-Befehl 'LSL' die Bits eine Position nach links 
wandern (ein einfaches x2 tut das Gleiche und wird vom Compiler wohl in 
ein LSL ersetzt).
Wenn dabei die Reihe aufgefüllt werden soll, kommt ein +1 dazu und das 
rechte Bit wird gesetzt.

Wenn über mehrere Ports verschoben werden soll, kann man das Carry-Flag 
dafür benutzen.
LSL r0
ROL r1
schiebt die Bits in r0 um eine Position nach links.
Wenn dabei ein Bit links raus fällt, landet Das im CF.
Mit ROL wird 'über das Carry' geschoben - also das CF wird rechts rein 
geschoben, wenn links ein Bit raus fällt, landet Das wieder im CF.
Mit weiteren ROL könnte man weitere Ports in das Lauflicht involvieren.

Für 'nach Rechts' wäre :2 das Mittel meiner Wahl (bzw. LSR/ROR in 
Assembler).
Zum Setzen des linken Bit des linkesten Port käme nach dem :2 noch ein 
+128 (Bit7 setzen) dazu, um die Reihe aufzufüllen.

So kannst Du Dir verschiedene Leuchtmuster konstruieren, Die Du 'frei 
Schnauze' im Programm aufrufen kannst.

Diese Bitschiebereien kannst Du dann auch 'nur 1x' ausführen und so eben 
nur um eine Stelle verschieben.

Da an Deinem ATmega noch nen paar Pinne frei sind, kannst Du ja noch 
weitere Sensoren/Taster/whatever anbauen und ins Programm integrieren.

Ändere aber immer nur EINE Kleinigkeit.
Wenn dann ein Problem auftritt, hast Du nur EINEN Punkt, wo Du ansetzen 
musst.

Weiterhin viel Spaß mit den Lauflichtern :)

MfG

PS:
https://vid.me/UxLv
(von 20.8°C auf 20.9°C, DS18B20)

: Bearbeitet durch User
von Hubert G. (hubertg)


Bewertung
0 lesenswert
nicht lesenswert
Der Mega8 ist für max. 16MHZ mit Quarz spezifiziert. Da kein Quarz 
vorhanden ist, läuft der interne Oszillator default mit 1MHz.
Wie kommst du auf #define F_CPU 20000000UL
Das AVCC und AGND mit versorgt werden sollen und ein 100n Kondensator 
zwischen VCC und GND und AVCC und AGND gehört sei nur am Rande erwähnt.

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]
  • [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.