mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Externer Takt störend?


Autor: sebezahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

es ist zum Haare-grauwerden-und-dann-ausrupfen! Jetzt habe ich gerade
meinen ATMega128 programmieren können, und schon wieder taucht ein
wirklich nerviges Problem auf!

Ich habe (in Bascom, aber eigentlich irrelevant) ein kleines
Testprogramm geschrieben, was nichts weiter macht, als eine LED immer
ein- und wieder auszuschalten. Dazu ändere ich am Port C einfach die
Schaltzustände. Das scheint auch soweit zu funktionieren, denn:

1. Programm - LED nur ein - GEHT!
2. Programm - LED nur aus - GEHT!
3. Programm - Wechsel an aus - GEHT (LED leuchtet mit halber
Lichtstärke...)

Nun habe ich BASCOM-tyische Routinen benutzt, um zu warten (WAIT oder
DELAY), mit einem anderen uC (2313) geht das auch wunderbar, aber nicht
mit dem Mega128! Der scheint dann gar nichts mehr zu machen, sobald er
an diesem "Befehl" angelangt ist. Das gleiche Programm läuft aber an
einem 2313er.

Das einzige, was bei meinem Prozessor nicht so ganz zu stimmen scheint,
ist der externe Takt. Ich habe einfach einen Quarz mit zwei
Kondensatoren gegen Masse auf XTAL1 und XTAL2 gelegt. Da ich die
FuseBits aber gar nicht gesetzt habe, sollte der mit seinem internen
Takt laufen.

Oder kann es sein, dass der Quarz die Funktion "stört"? Ich könnte es
zwar einfach ausprobieren, aber dann müsste ich wieder rumlöten, und
ich weiss nicht, wie lange die Platine das noch mitmacht...

Irgend jemand eine Idee?

Gruß
Sebezahn

Autor: sebezahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, ich habs nun probiert und den Quarz ausgelötet, ebenso die
Kondensatoren. Gebracht hats nix.

Hat vielleicht irgendwer ein kleines Assembler-Programm, das den
kompletten Portc auf output schaltet und dann im Abstand von einer
Sekunde von High auf Low und umgekehrt setzt? HEX-Files bekomme ich
eingespielt, nur Assembler bekomme ich nicht hin...

Gruß
Sebezahn

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bevor man asm programme in den avr brennen kann müssen die compiliert
werden. das ist eine übersetzung der text symbole (mov call usw.) in
die Hexzahlen, die der avr dann erkennt. man macht sowas zB mit dem avr
Studio, den es for free bei www.atmel.com gibt.

programm kann ich dir schreiben, hab jetz aber keine zeit mehr (spät,
spät...)

hast du denn ein oszi, dann kannst du wenigstens die signale sehen, die
an den pins liegen, oder muss das wirklich 1ne sekunde sein, wegen
multimeter?

welchen tackfrequenz hast du, ich muss ja die wait-schleife berechnen

Autor: sebezahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich arbeite mit dem internen Takt, sprich 1MHz. Einen Oszi habe ich
leider nicht. Und ob der im Abstand von 3 Sekunden oder einer halben
Sekunde ein- und ausschaltet, ist mir völlig egal ;-)

Ich vertraue nur gerade meinem BASCOM nicht ganz.

Gruß und vielen Dank!
Sebezahn

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du denn überhaupt eine Verzögerung programmiert? Ich meine, es gäbe
einen "Wait" Befehl in Bascom. Dieses "halbhell" kommt daher, daß
die LED so schnell ein- und ausgeschaltet wird, daß Du es nicht sehen
kannst. Bedenke: Du hast kein Microsoft-Betriebssystem als Bremse im
Hintergrund ;)

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mail mit testprogramm ist draussen

Autor: sebezahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank! Es klappt!!! Auf Dauer werde ich wohl auf Assembler
umsteigen...

Gruß
Sebezahn

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann liegt es also an bascom.

>...auf assembler umsteigen
ich möchte ja nicht über die vor und nachteile streiten, aber:
...besser ist dat. :)

nun also feuer frei für das Menue?! auch schon in asm? müsstest dich ja
erstmal eingewöhnen

Autor: sebezahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

jo, auf gehts. Werde heute nacht mal ein wenig proggen. Allerdings
denke ich, ich bleibe vorerst bei BASCOM.

Das Problem war weniger die Programmiersprache als vielmehr die
Fusebits. Aus irgendeinem Grund war der eine Chip von Werk aus als
simulierter 103er geliefert worden, und da lief nix so wie es sollte.
Wahrscheinlich, weil BASCOM den Code für einen M128 aufbereitet hat.
Aber dein Programm und ein anderer Foreneintrag haben mich drauf
gebracht.

Also, ich werde dann mal offline gehen und mich in meine stille
Programmierecke verziehen. Wenn ich was brauchbares für ein Menü habe
(schätzungsweise morgen ;-)), poste ich es im Menü-Thread.

Gruß
Sebezahn

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.