sloti
16.02.2008, 12:36
Hi,
ich hänge im Moment an einem eigentlich nicht schweren Problem fest. Ich will blos, dass nachdem ein Taster gedrückt wurde eine LED angeht. Das hab ich eigentlich schon oft geschrieben, aber irgendwie ist da der Wurm drin. Wahrscheinlich ist da ein blöder Denkfehler drin den ich nicht sehe. Drum bitt ich euch einmal den Code anzuschauen. Hier der Code:
//---------------------------------------------------------------------------
// Title :Kleines Test Programm
// Date :16.02.08
// Autor :Erik Schröder
//---------------------------------------------------------------------------
#define F_CPU 3686400
#include <avr\io.h>
#include <stdlib.h>
#define ON 1
#define OFF 0
void init (void)
{
DDRB |= (1<<PB1); // PORTB.1 als Ausgang für die LED
DDRC = 0b00000000; // PORTC als Eingang
PORTC = 0b00000001; // PORTC.0 Pull Up aktivieren
}
unsigned int Taster (void)
{
unsigned int x;
x=PINC; // Taster einlesen
if (!(x&0x00)) // wenn auf masse gezogen (= taster gedrückt)..
{
return 1; //... 1 zurück geben
}
else if (x&0x00) // wenn Pegel auf High ...
{
return 0; //.. 0 zurück geben
}
}
void LED (int param)
{
if (param==1)
{
PORTB |= (1<<PB1); // PORTB.1 einschalten
}
else
{
PORTB &= ~(1<<PB1); // PORTB.1 ausschalten
}
}
int main (void)
{
init(); // initialisieren
while (true)
{
if (Taster()) //wenn taste gedrückt
{
LED (ON); // LED einschalten
}
else //wenn nicht
{
LED (OFF); // LED ausschalten
}
}
return 0;
}
mfg
Erik
ich hänge im Moment an einem eigentlich nicht schweren Problem fest. Ich will blos, dass nachdem ein Taster gedrückt wurde eine LED angeht. Das hab ich eigentlich schon oft geschrieben, aber irgendwie ist da der Wurm drin. Wahrscheinlich ist da ein blöder Denkfehler drin den ich nicht sehe. Drum bitt ich euch einmal den Code anzuschauen. Hier der Code:
//---------------------------------------------------------------------------
// Title :Kleines Test Programm
// Date :16.02.08
// Autor :Erik Schröder
//---------------------------------------------------------------------------
#define F_CPU 3686400
#include <avr\io.h>
#include <stdlib.h>
#define ON 1
#define OFF 0
void init (void)
{
DDRB |= (1<<PB1); // PORTB.1 als Ausgang für die LED
DDRC = 0b00000000; // PORTC als Eingang
PORTC = 0b00000001; // PORTC.0 Pull Up aktivieren
}
unsigned int Taster (void)
{
unsigned int x;
x=PINC; // Taster einlesen
if (!(x&0x00)) // wenn auf masse gezogen (= taster gedrückt)..
{
return 1; //... 1 zurück geben
}
else if (x&0x00) // wenn Pegel auf High ...
{
return 0; //.. 0 zurück geben
}
}
void LED (int param)
{
if (param==1)
{
PORTB |= (1<<PB1); // PORTB.1 einschalten
}
else
{
PORTB &= ~(1<<PB1); // PORTB.1 ausschalten
}
}
int main (void)
{
init(); // initialisieren
while (true)
{
if (Taster()) //wenn taste gedrückt
{
LED (ON); // LED einschalten
}
else //wenn nicht
{
LED (OFF); // LED ausschalten
}
}
return 0;
}
mfg
Erik