PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit AVR ... Help



ShadowPhoenix
20.03.2004, 22:51
Hallo!
Mein Programm sieht so aus:

Config PortB = Output
PortB.0 = 1

An PortB.0 hängt eine Led.
Nun starte ich das Programm und die Led leuchtet. OK

Das zweite Programm sieht so aus:

Config PortB = Output
PortB.0 = 0

Das Programm wird wieder gestartet doch die Led leuchtet weiterhin!
Ich verstehe das nicht!
Wenn ich den ROM wieder lösche, geht die Led aus.
Also irgendwas mit PortB.0 = 0 stimmt nicht!

Könnt ihr mir weiterhelfen??

Und mein zweites Problem ist:
Ab und zu, wenn die Led leuchtet, also Portb.0 = 1 dann passiert folgendes:

Die LED fängt nach zufall an zu "!! flackern !!". Sie geht aus, gleich wieder an, wieder aus...
Ein wackelkontakt ist es nicht, denn ich habe den AVR dann auf einer anderen Platine mit anderer Stromversorgung gehängt, und das selbe Problem!
Der Ausgang scheint zu variieren, der AVR ist neu!
Was kann ich tun??

Bitte helft mir doch, ich kann nicht ruhig schlafen wenn etwas nicht funktioniert ;-)
Also die Profis sind gefragt ;-)

Mit freundlichen Grüßen,
ShadowPhoenix

20.03.2004, 23:24
Kann es sein das du das JTAG-Fusebit nicht ausgeschaltet hast?

ShadowPhoenix
20.03.2004, 23:29
Was ist das JTAG-Fusebit??
Jedenfalls ist es aus...
Komisch, kennt sich da keiner aus :-(

Mit freundlichen Grüßen,
ShadowPhoenix

recycle
21.03.2004, 05:07
Was ist das JTAG-Fusebit??
Jedenfalls ist es aus...
Komisch, kennt sich da keiner aus


Ich kenn mich leider nicht wirklich damit aus.
Aber soweit ich weiss, kann man einige AVRs mit einem JTAG-Adapter online debuggen,
Mit den Fusebits kann man in den Controller einige Dinge konfigurieren, z.B. ob der interne oder ein externer Quarz genutzt werden soll usw.

Daher würde ich mal vermuten, dass die JTAG-Fusebits dafür da sind dem Controller mitzuteilen, dass irgendwie ein JTAG-Adapter angeschlossen ist.



Jedenfalls ist es aus...


Ich bin mir nicht ganz sicher, aber ich meine ich hätte irgendwo mal gelesen, dass Häkchen gesetzt = AUS und kein Häkchen = EIN bedeutet.
Aber guck da lieber mal in der Beschreibung von dem dem Programm das du zum lesen/setzen der Fusebits benutzt nach.

Per Fusebits/Lockbits kann man den Controller übrigens auch so sperren, dass man ihn nícht mehr lesen und schreiben kann, deswegen würde ich lieber nicht einfach alle Einstellungen ausprobieren.

Kjion
21.03.2004, 08:28
@ShadowPhoenix
Was ist das überhaupt für ein AVR ?? AT90 oder Mega ??

Bei den Megas sollte man auf jeden Fall die Fusebytes einstellen bevor man ihn wirklich verwenden kann. Womit programmierst du denn deinen AVR ?? Hast du schon was an den Fusebits geändert ??
Ansonsten läuft dein AVR mit einer Frequenz von 1 Mhz ( interner Quarz ), aktiviertem JTAG Interface, maximaler Bootloadergröße und längster Start-Up Zeit.

Trotzdem sollte damit dein Programm funktionieren, da das JTAG-Interface auf PortC liegt.

Ist das

Config PortB = Output
PortB.0 = 1
dein komplettes Programm ?? Wenn ja solltest du auf jeden Fall noch eine Endlosschleife dahinter hängen. Es ist nämlich nicht so, dass der AVR das Programm beendet wenn er mit dem Code durch ist, sondern versucht weitere Befehle aus dem Speicher zu holen. Das kann dazu führen, dass dein AVR "spinnt".
Also irgendwie sowas :

ende:
goto ende

MfG Kjion

ShadowPhoenix
21.03.2004, 09:33
Also ich betreibe den ATmega8 (der von yaap auch richtig erkannt wird)
und verwende einen Quarzoszillator mit 4Mhz, habe die Fusebits auch gemäß microkontroller.net richtig eingestellt.
Nun habe ich dieses Programm:

Config Portb = Output
Portb.0 = 0
End

Das ich auf den Chip lade, aber die Led auf Portb.0 leuchtet weiter!!!
Das kann doch nicht sein!
Was mache ich falsch?

Mit freundlichen Grüßen,
ShadowPhoenix

EDIT: Beim rüberschicken von dem Programm geht die Led kurz aus und dann gleich wieder an....hmpf

trickTronic
23.03.2004, 09:35
Hallo!
Kannst du uns mal dein ganzes Programm zeigen?
MFG Alex

Frank
23.03.2004, 10:23
Probier es mal so

Config Portb = Output
Portb.0 = 0
do
loop

ShadowPhoenix
23.03.2004, 13:01
Danke für die Tipps ;-)
Es funktioniert jetzt wieder alles!

Mit freundlichen Grüßen,
ShadowPhoenix