mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LEDs leuchten nicht so wie sie sollen


Autor: Hannes Häppi (hannesf)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich sitze an einem Skurilen Problem:
Ich habe eine sehr einfache Schaltung gebaut: einfach jeweils eine 
LED+Wiederstand an den Contorller (PortC). Die sollen einfach nur 
Leuchten. Das Programm dazu sieht folgendermaßen aus:
#include <avr/io.h> 

int main (void) { 
  DDRC  = 0xff;
  while(1) {
  }
  return 0;

}

Das Makefile ist im Anhang.
Das Problem ist jetzt, dass die LEDs an PC2, PC3 und PC5 NICHT 
leuchten!?! Der Rest des PortC funktioniert. WARUM? Ich habe das ganze 
mit 2 Controllern Getestet (mega16, mega32). Beide Male das gleiche 
Problem. Das Problem habe ich auch bei einer Anderen Schaltung 
(http://tinyurl.com/3az79t4 - ich hoffe das ist hier erlaubt).

Woran kann das bitte liegen?

ich programmiere im Texteditor, habe
ich schreibe das Programm mit einem "mysmartUSB MK2" auf den Controller. 
mysmartUSB hängt an einem Mac- und hat vorher auch nie Probleme 
gemacht.... Für den Transfer nutze
ich avrdude mit folgendem befehl: "avrdude -c avr911 -e -p m32 -P
/dev/tty.SLAB_USBtoUART -b 19200 -U flash:w:main.hex"

Die Ausgabe beim Programmieren ist hier zu finden: 
http://paste.ubuntuusers.de/398240/

hat jemand irgendeine Idee, warum sich diese Schaltung so komisch 
verhält!?

Liebe Grüße,

Hannes

Autor: Harry L. (mysth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JTAG bei den Fuses abgeschaltet?
(AtMega32 Datasheet S. 60)

Harry

Autor: C. S. (chrisdask8)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

bin mir nicht ganz sicher, aber beim mega32 muss man das JTAG-Fuse erst 
deaktivieren um PORT C normal zu benutzen soweit ich weiß.

probier das mal.

MfG
Christian

Autor: Hannes Häppi (hannesf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich bin etwas überfordert mit den ganzen Möglichkeiten.
Ich habe das hier gefunden, was die fuses berechnet: 
http://www.engbedded.com/fusecalc
Was muss ich da aktivieren bzw. deaktivieren? Also JTAG deaktivieren ist 
klar, aber der rest? Ich hab keine Lust, den Controller unprogramierbar 
zu machen
Müsste das dann beim avrdude so aussehen - -U lfuse:w:0xe1:m -U 
hfuse:w:0xd9:m ?

also der Komplette befehl sollte dann so aussehen oder -
avrdude -c avr911 -e -p m32 -P /dev/tty.SLAB_USBtoUART -b 19200 -U flash:w:main.hex  -U lfuse:w:0xe1:m -U hfuse:w:0xd9:m

Lg.

Hannes

PS.: trifft das problem auch bei einem MEGA16 zu?

Autor: C. S. (chrisdask8)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Harald L. schrieb:
> ich schreibe das Programm mit einem "mysmartUSB MK2"

das Teil habe ich auch.
Wurde bei dir die CD mit einigen Tools mitgeliefert?

Wenn ja benutze einfach myAVR_ProgTool.exe, stell unter "Hardware" den 
Atmega16 ein, dann geh auf "Brennen" und dann bei "Fuses" klick auf 
"Bearbeiten".

Dann auf Hardware auslesen -> wird darunter angezeit.
dann gehst du auf "high fuse" und machst den Haken bei Jtag Interface 
enabled weg.

dann auf "jetzt schreiben" und gut is ;-)

MfG

Autor: Hannes Häppi (hannesf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
mit exe dateien ist das so eine Sache auf dem Mac ;)
Als alternative hätte ich auch noch ne Linux Kiste hier rumstehen, aber 
leider kein Windows.

Grüße,

Hannes

PS.: eine CD habe ich dazu auch nicht...

Autor: Hannes Häppi (hannesf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe das jetzt einfach mal ausprobiert:

"avrdude -c avr911 -e -p m32 -P /dev/tty.SLAB_USBtoUART -b 19200 -U 
flash:w:main.hex  -U lfuse:w:0xe1:m -U hfuse:w:0xd9:m"

Als ausgabe bekomme ich soetwas an den Kopf geschmissen:

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xd9 != 0x99
avrdude: verification error; content mismatch

avrdude: safemode: hfuse changed! Was d9, and is now 99
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Das hat dann nichts geändert. Wenn ich mit Y bestätige, passiert einfach 
garnichts. Also das Programm bleibt scheinbar stehen (ich hab es dann 
einfach mal mit ctrl-c nach 5 min gekillt...)

Hab ich da was falsch gemacht?! Also beim setzen der Fuses?

Grüße,

Hannes

Autor: Hannes Häppi (hannesf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sooo, ich bin jetzt extra zu einem Freund gefahren, der einen 
Windowsrechner hat. Und siehe da!!!!! TATATATATAAAA, es lag an den Fuses 
;)


Vielen Lieben Dank für die Hilfe!


Grüße,

Hannes

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.