17.07.2004, 20:22
Ich verstehe das nicht mein Code funktioniert nicht. Es soll ein Codeschloss werden. Hier ist die simple Form, die auch nicht funktioniert:
#include <io.h>
typedef unsigned char BYTE;
typedef unsigned int WORD;
WORD i,f;
BYTE d=0,s1=0,s2=0;
int main (void)
{
DDRB =0x1f;
DDRD=0x00;
PORTD = 0x01;
sbi(TCCR1B,2);//counter
for (;;)
{
cbi(PORTB,3);
cbi(PORTB,4);
if (d==1)
{
sbi (PORTB, 2);
f=inw(TCNT1) - 1;
do
{
i=inw(TCNT1);
}while(i!=f);
cbi(PORTB,2);
s1=0;
s2=0;
d=0;
}
if (bit_is_clear(PIND, PIND2))//wenn Taste gedrückt
{
sbi (PORTB, 4);
s1=s1 +1;
if(s2==25)
d=1;
}
if (bit_is_clear (PIND,PIND3))
{
sbi (PORTB, 3);
if((s1 > 2) && (s1 < 6)) //hier liegt der Fehler, wieso geht das nicht?
s2=25;
}
}
}
#include <io.h>
typedef unsigned char BYTE;
typedef unsigned int WORD;
WORD i,f;
BYTE d=0,s1=0,s2=0;
int main (void)
{
DDRB =0x1f;
DDRD=0x00;
PORTD = 0x01;
sbi(TCCR1B,2);//counter
for (;;)
{
cbi(PORTB,3);
cbi(PORTB,4);
if (d==1)
{
sbi (PORTB, 2);
f=inw(TCNT1) - 1;
do
{
i=inw(TCNT1);
}while(i!=f);
cbi(PORTB,2);
s1=0;
s2=0;
d=0;
}
if (bit_is_clear(PIND, PIND2))//wenn Taste gedrückt
{
sbi (PORTB, 4);
s1=s1 +1;
if(s2==25)
d=1;
}
if (bit_is_clear (PIND,PIND3))
{
sbi (PORTB, 3);
if((s1 > 2) && (s1 < 6)) //hier liegt der Fehler, wieso geht das nicht?
s2=25;
}
}
}