LEDs leuchten nicht so wie sie sollen

OP #1703454
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:
1
#include <avr/io.h> 
2

3
int main (void) { 
4
  DDRC  = 0xff;
5
  while(1) {
6
  }
7
  return 0;
8

9
}

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
Angehängte Dateien:
OP #1703474
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 -
1
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?
#1703508
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
OP #1703565
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:
1
avrdude: verifying ...
2
avrdude: verification error, first mismatch at byte 0x0000
3
         0xd9 != 0x99
4
avrdude: verification error; content mismatch
5

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

10
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren