Sunstar
31.08.2007, 17:49
Hallo Leute,
ich bin Anfänger auf dem Mokricontrollergebiet. Ich habe ein STK500 Board und einen ATMega8 Controller drauf. Ich habe schon einiges hier und in anderen Foren gestöbert und mich bis hier durchgebissen. Jetzt wollte ich mal fragen ob man eine for Schleife unterbrechen kann, oder ob es eine bessere Lösung für mein Problem gibt. Wenn ich nämlich. Wenn ich PD3 drücke, gelange ich ja in die for-Schleife und die LEDs blinken. Jetzt muss ich ja warten bis diese durchlaufen ist, damit ich einen anderen Leuchtzustand hinbekomme.
#include <avr/io.h>
#define TAKT 2000000
int main (void)
{
// init Ports...
int i,j;
DDRD = 0xff; //alle 8 Portpins sind Input
PORTD = 0xff; //no pull-ups
DDRB = 0x00; //alle 8 Portpins sind Output
PORTB = 0x00; // High-Pegel setzen => STK500 LEDs aus
while (1)
{
if((PINB & ( 1<<PD1 )) ==0 ) PORTD = 0;
else if((PINB & ( 1<<PD0 )) == 0 ) PORTD = 0xFF;
else if((PINB & ( 1<<PD2 )) == 0 ) PORTD = 0xfb;
else if((PINB & ( 1<<PD3 )) == 0 )
for(i=0; i<1000;i++)
{
for(j=0; j<10000;j++)
{
if(i%8)
PORTD=0xFF;
else
PORTD=0x00;
};
}
}
}
Danke schon mal für die Hilfen.
ich bin Anfänger auf dem Mokricontrollergebiet. Ich habe ein STK500 Board und einen ATMega8 Controller drauf. Ich habe schon einiges hier und in anderen Foren gestöbert und mich bis hier durchgebissen. Jetzt wollte ich mal fragen ob man eine for Schleife unterbrechen kann, oder ob es eine bessere Lösung für mein Problem gibt. Wenn ich nämlich. Wenn ich PD3 drücke, gelange ich ja in die for-Schleife und die LEDs blinken. Jetzt muss ich ja warten bis diese durchlaufen ist, damit ich einen anderen Leuchtzustand hinbekomme.
#include <avr/io.h>
#define TAKT 2000000
int main (void)
{
// init Ports...
int i,j;
DDRD = 0xff; //alle 8 Portpins sind Input
PORTD = 0xff; //no pull-ups
DDRB = 0x00; //alle 8 Portpins sind Output
PORTB = 0x00; // High-Pegel setzen => STK500 LEDs aus
while (1)
{
if((PINB & ( 1<<PD1 )) ==0 ) PORTD = 0;
else if((PINB & ( 1<<PD0 )) == 0 ) PORTD = 0xFF;
else if((PINB & ( 1<<PD2 )) == 0 ) PORTD = 0xfb;
else if((PINB & ( 1<<PD3 )) == 0 )
for(i=0; i<1000;i++)
{
for(j=0; j<10000;j++)
{
if(i%8)
PORTD=0xFF;
else
PORTD=0x00;
};
}
}
}
Danke schon mal für die Hilfen.