Forum: Mikrocontroller und Digitale Elektronik Kann einer helfen?


von Flo A. (flo_12345)


Lesenswert?

Hallo,


meine Microkontroller Zeit ist schon etwas her und ich probiere mich mal 
langsam wieder.

Jetzt habe ich mir mal ein stk 500 zugelegt und mal das erste Programm 
in meinen Atmega8 eingespielt.


Nur wundere ich mich, dass bei diesem kurzen Code die LED 0 angestuert 
wird, obwohl ich doch nur den Port C als Ausgang setze und noch keine 
weitere beschaltung vornehme.

Weiß einer was ich hier falsch mache?


#include <avr/io.h>
int main(void)
{

    DDRC = 0x01;

}


Danke!

: Verschoben durch Moderator
von Stefan S. (chiefeinherjar)


Lesenswert?

Edit: Verlesen.

Die LEDs sind Low-Aktiv. Das heißt, wenn der zugehörige Pin LOW ausgibt, 
geht die LED an.

Da du das Port-Register nicht angefasst hast, ist PORTC komplett auf 
0x00. Damit ist Pin C1 auf Ausgang (DDRC = 0x01) und gibt LOW (sprich, 
annähernd 0V) aus. Bei PORTC = 0x01 geht der Pin auf HIGH (nahezu 5 V) 
und die LED geht aus.

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Flo A. schrieb:

> Weiß einer was ich hier falsch mache?

Du hast dich in das falsche Unterforum verirrt.

Nach Projekte & Code gehören nur Sachen, die schon zumindest 
einigermaßen funktionieren. Nicht die Fragen von Leuten, die von garnix 
irgendeine Ahnung haben...

von Frank L. (hermastersvoice)


Lesenswert?

vergessen JTAG zu deaktivieren?

von N. M. (mani)


Lesenswert?

Wo ist denn deine while(1) ?

von c-hater (Gast)


Lesenswert?

Frank L. schrieb:

> vergessen JTAG zu deaktivieren?

Der Mega8 hat überhaupt kein JTAG-Interface.

Noch so ein Nixwisser im falschen Forum...

von Roland F. (rhf)


Lesenswert?

c-hater schrieb:
> Noch so ein Nixwisser im falschen Forum...

Gott sei Dank gibt es in diesem Forum ja Leute wie dich, die mit ihren 
überragenden Kenntnissen und ihrem messerscharfen Verstand die 
"Minderperformer" in ihre wohlverdienten Schranken zu weisen.
Wie hältst du es eigentlich tagtäglich aus hier diesen ganzen 
Diletantismus zu ertagen?

rhf

von Jack V. (jackv)


Lesenswert?

Flo A. schrieb:

> Nur wundere ich mich, dass bei diesem kurzen Code die LED 0 angestuert
> wird, obwohl ich doch nur den Port C als Ausgang setze und noch keine
> weitere beschaltung vornehme.

Ich habe vor kurzer Zeit Ähnliches bei einem 328p beobachtet (steige 
auch gerade erst ein): LED an einem nicht explizit gesetzten Ausgang hat 
geleuchtet. Kurze Recherche hat gezeigt, dass die Ausgänge in einem 
undefinierten Zustand sind, solange sie nicht explizit gesetzt wurden – 
kann also sein, dass der Ausgang high ist, kann aber auch anders sein. 
Lösung: mit dem gewünschten Zustand initialisieren.

Edit: der Threadtitel ist unglücklich gewählt, btw. – die meisten Leute, 
die’s wissen würden, werden gar nicht erst draufklicken. Was 
übrigbleibt, sind Selbstdarsteller, oder Noobs wie ich ;)

: Bearbeitet durch User
von EVAL board (Gast)


Lesenswert?

Flo A. schrieb:
> Weiß einer was ich hier falsch mache?

Ja, mit ner uralten Gurke angefangen. Schmeiss den Scheiss weg und nimm 
was Richtiges: STM32, MSP430, ...

von Jack V. (jackv)


Lesenswert?

> Schmeiss den Scheiss weg und nimm
> was Richtiges

… und wenn man das dann gemacht hat, kennt und weiß man auf wundersame 
Weise alles und hat keine Fragen mehr? Dann sollte ich vielleicht auch 
umsteigen …

[scnr – ich bleibe bei meinen kleinen ATmegas, bzw. bin sogar auf ’nen 
ATtiny zurückgefallen. Gerade deren Übersichtlichkeit/Schlichtheit 
macht’s zumindest mir leichter, das Ganze zu verstehen]

von Roland F. (rhf)


Lesenswert?

Hallo,
Jack V. schrieb:
> … und wenn man das dann gemacht hat, kennt und weiß man auf wundersame
> Weise alles und hat keine Fragen mehr?

Ja, genau so ist es. Wenn der Supercomputer in "Per Anhalter durch die 
Galaxis" aus STM32- oder MSP430-Prozessoren bestanden hätte, wäre die 
Frage „nach dem Leben, dem Universum und dem ganzen Rest“ statt in 
einigen Millionen Jahren in Sekundenbruchteilen berechnet worden (und 
mit der Antwort hätte man auch etwas anfangen können, trotz der vagen 
Fragestellung).

rhf

PS:
> [scnr – ich bleibe bei meinen kleinen ATmegas, bzw. bin sogar auf ’nen
> ATtiny zurückgefallen. Gerade deren Übersichtlichkeit/Schlichtheit
> macht’s zumindest mir leichter, das Ganze zu verstehen]

Ich weiß genau was du meinst.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

c-hater schrieb:
> Du hast dich in das falsche Unterforum verirrt.

Habe es verschoben.

Zum Thema:

Stefan S. schrieb:
> Die LEDs sind Low-Aktiv.

Das ist des Rätsels Lösung.

N. M. schrieb:
> Wo ist denn deine while(1) ?

Wenn main() verlassen wird, geht das Runtime-System der AVR-libc 
automatisch in eine Endlosschleife. It's not a bug, it's a feature.

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.