C C: Bitmanupulation funktioniert nicht

MrPepi

Neues Mitglied
11. Jan. 2014
10
0
0
Sprachen
Hallo Forum,

ich bin ein Neuling, also habe ich mich im Internet ein kleines C-Programm gesucht, womit ma eine kleine LED blinken lassen kann.

Das sieht dann so aus:
Code:
#define F_CPU 20000000
#define LEDPIN 6

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	DDRD = 0xff;

    while(1)
    {
		PORTD |= (1 << LEDPIN);
		
		_delay_ms(250);
		
		PORTD &= ~(1 << LEDPIN);
		
		_delay_ms(250);
	}
}

allerdings, wenn ich das Programm auf den uC lade, dan Schaltet sich die LED ein, aber nicht mehr aus.
wenn ich dass allerding so mache, dann funzt es wunderbar.
Code:
#define F_CPU 20000000
#define LEDPIN 6

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	DDRD = 0xff;

    while(1)
    {
		PORTD = 0b10000000;
		
		_delay_ms(250);
		
		PORTD = 0x00;
		
		_delay_ms(250);
	}
}

Könnt ihr mir da helfen?

Meine Daten:
OS: Win7 Ultimate
Modul: Crumb644 mit mega644PA
Umgebung: Atmel Studio 6
Compiler: WinAVR
 
Hallo MrPepi,

im zweiten funktionierenden Beispiel änderst du PD7 (Bit Position 7). im Ersten Beispiel änderst du PD6 (Bitposition 6), da

#define LEDPIN 6

Du hast also wahrscheinlich die LED an PD7 angeschlossen.

Die LED schaltet im ersten Beispiel ein, da PORTD nach Reset 0 hat, und du den kompletten Port als Ausgang konfigurierst (DDRD=0xFF).

Dirk :ciao:
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)