C# Lyskryds - Hjælp

Tags:    .net

Hej Alle her inde.

Jeg sidder her med en opgave hvor der skal programmeres et lyskryds. Jeg er så nu nået til det pungt, at hvis der bliver trykket på en kontakt, som er forbundet fra computer til en boks via paralelporten, skal der lyses grønt.

Jeg har leget med koden nu i over fire dage, og selve problemmet ligger i at jeg skal bruge et if-else statement, men kan simpelthen ikke få dne til at virke ?

"Når du skal løse fra lyskrydset, skal du først sende koden for kontaktens nr. til lyskrydset ud på addresse 378 Hex. Så sendes en puls til bit 0 på addresse 73A Hex, som bevirker at addressen bliver aktiveret. Så læses kontaktens værdi fra addresse 379 Hex."

int kontakt;


//Først vælges adressen på kontakt nr 4.
Output(0x378, 0x04);
strobe();

//Så læses kontakten
kontakt = Input(0x379);

//Hvis kontakten er aktiveret læses tallet 120.
//Hvis den ikke er aktiveret læses tallet 248.

if (kontakt == 120) // de grønne i nr 4 tændes;
{
Output(0x378, 0x40); //Nulstiller den aktive kontakt
strobe(); //så den er klar til næste gang
Output(0x378, 0x84);
strobe();

}
else //de røde tændes
{
Output(0x378, 0x81);
strobe();
}


Men, i stedet for at blive grøn, efter jeg har trykket, ja så bliver den bare ved med at blive rød ?

håber der er nogle der kan give en hjælpende hånd! :bounce:



Indlæg senest redigeret d. 06.08.2010 00:45 af Bruger #15964
2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Har du prøvet at debugge i linen "if (kontakt == 120) og set hvad værdien reelt er fra din input(0x379)? Jeg tror ikke du får værdien 120 tilbage som du tror.



Det har jeg så prøvet nu, og den gav faktisk 126, når jeg har trykket på knappen, og 254 når den ikke var trykket ;)..

Nu er jeg på rette spor igen :)

Tusinde tak for hjælpen.!



t