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


von sebezahn (Gast)


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

von sebezahn (Gast)


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

von Henning (Gast)


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

von sebezahn (Gast)


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

von thkais (Gast)


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 ;)

von Henning (Gast)


Lesenswert?

mail mit testprogramm ist draussen

von sebezahn (Gast)


Lesenswert?

Vielen Dank! Es klappt!!! Auf Dauer werde ich wohl auf Assembler
umsteigen...

Gruß
Sebezahn

von Henning (Gast)


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

von sebezahn (Gast)


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

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.