www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik led's leuchten nicht


Autor: Michael Brinkman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich relativ unerfahren im Umgang mit C, hab mir jetzt einige C-Tutorials 
durchgelesen und wollte an einem Atmega32 am Port B eine Folge 10101010 
ausgeben, so das nur jede 2. led an ist. Nur leider funktioniert das 
nicht, habe ein Blink Programm aus dem internet geladen und es läuft 
auch. Also am Controller oder am LED modul kann es nicht liegen.
Kann mir vielleicht jemand einen tip geben was an meinem Programm nicht 
stimmt?

#include <avr/io.h>

// Initialisierung
void init(void)
{
  DDRB = 0xff;  // PortB als Ausgang deklarieren
  PORTB = 0x00;  // Ports auf LOW schalten
}
int main(void)
{
while (1)
{
 PORTB = 0b10101010;  //PortB
}
return 0;
}

Autor: The Slow (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst die Funktion init() auch aus deiner main Funktion aufrufen.

einfach ein 'init();' unmittelbar vor die Schleife.

Autor: Tüftler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Kenne mich jetzt nicht direkt mit Atmels aus, jedoch denke ich das dein 
0xff die Pins als Eingänge und nicht als Ausgänge deklariert!

"Hex ff" sind ja lauter einser und das sind eigentlich dann Eingänge.

Hoffe es stimmt ;-)

Gruß

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
steigt der nicht bei main ein? also müsstest du dort noch init aufrufen.

Autor: Michael Brinkman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Juhu es klappt jetzt.
Vielen Dank :-)
der code ist jetzt
#include <avr/io.h>

// Initialisierung
void init(void)
{
  DDRB = 0xff;  // PortB als Ausgang deklarieren
  PORTB = 0x00;  // Ports auf LOW schalten
}
int main(void)
{
init();
while (1)
{
 PORTB = 0b10101010;  //PortB
}
return 0;
}

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das return 0 brauchst Du nicht; es gibt ja nichts übergeordnetes, an den 
der ATMEL was zurückmelden könnte.

Stephan.

Autor: FBI (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Stephan:
'return 0' wird zwar eigentlich nicht gebraucht, verhindert aber, dass 
der Compiler meckert "control reaches end of non-void function".

CU

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.