Hallo
ik moet een programma schrijven in C waarbij pulsen van een reedcontact moeten geteld worden gedurende een paar seconden. en vervolgens moet een uitgang aangestuurd worden.
ik heb al wat geschreven maar de eerste uitgang wordt steeds gestuurd. Hij geeft dus altijd aan dat er 0 pulsen geteld worden.
hier mijn programma :
void main()
{
int i;
while(TRUE)
{
while ( delay_ms(3000) )
{
if ( input(PIN_A4) == TRUE )
{
i++;//als ingang A4 hoog wordt, integer i verhogen met 1
}
}
if (i == 0)
{
output_high(PIN_B0); //maak pin B0 hoog
output_low(PIN_B1);
output_low(PIN_B2);
output_low(PIN_B3);
output_low(PIN_B4);
output_low(PIN_B5);
output_low(PIN_B6);
output_low(PIN_B7);
delay_ms(2000);
}
if( i > 0 && i <= 2 )//als i een waarde heeft tussen 0en2
{
output_high(PIN_B0); //maak pin B0 hoog
output_low(PIN_B1);
output_low(PIN_B2);
output_low(PIN_B3);
output_low(PIN_B4);
output_low(PIN_B5);
output_low(PIN_B6);
output_low(PIN_B7);
delay_ms(2000);
}
if( i > 2 && i <= 4 )//als i een waarde heeft tussen 2en4
{
output_low(PIN_B0);
output_high(PIN_B1);//maak pin B1 hoog
output_low(PIN_B2);
output_low(PIN_B3);
output_low(PIN_B4);
output_low(PIN_B5);
output_low(PIN_B6);
output_low(PIN_B7); delay_ms(2000);
}
else output_b(0x00);
}
}
Enzovoort alle uitgangen af.
Echt al veel tijd ingestoken en er niet aan uitkomen