Ik deze opdracht voor geschoteld:
Maak een EXOR functie waarbij 8 inputs direct gekoppeld zijn aan de 8 outputs. Een oneven aantal keren inschakelen geeft een uitgang hoog en een even aantal keren geeft een uitgang laag. Dit is een zogenaamde toggle functie.

De opdracht moet in C programmeert worden.
Nu kan al een beetje C. Begin het steeds leuker te vinden.

Maar ik snap de opdracht niet is snap niet wat ze willen bereiken met deze functie?

Mijn optie dit ik dacht:

1. Ik dacht eerst als er een even aantal inputs hoog zijn, worden de outputs hoog. En als oneven inputs hoog zijn, worden de outputs laag.

2. input één keer (oneven) hoog geweest, output hoog. input voor de tweede keer hoog (even aantal), output laag. Bij drie keer hoog geweest weer aan, bij vier keer hoog geweest (4 pulsen) weer uit, etc...

En dan nog wat een EXOR in C, was toch een ^ (dakje) toch?

alvast bedankt voor jullie reacties

mvg

Ja, XOR is ^ in C. Ik denk dat ze willen dat als een pin een even aantal keer hoog is geweest moet de bijbehorende output laag zijn bij een even aantal hoog. Zou je in max 5 regels moeten kunnen doen.

Ik stel me bij een toggle wat anders voor, maar goed...

Wat bedoel je met 'inschakelen'? Als je elke keer de spanning van die schakeling af haalt en weer inschakelt... Dat bedoel je vast niet.

Als het om simpelweg inputs tellen gaat, zou ik het aantal 'hoog' telen. De som AND je met 1. Houd je een 1 over dan was het oneven, houd je 0 over dan was het even.

OUTPUTnieuw = OUTPUToud XOR ( INPUTnieuw XOR INPUToud)

INPUToud     0001001
INPUTnieuw   0001100 (bit 0 en 2 gewijzigd)
             ------- XOR
XOR          0000101
OUTPUToud    0010011
             ------- XOR
OUTPUTnieuw  0010110 (bit 0 en 2 getoggled)

Ik mis toch echt de link met elektronica...
Dit is basic C.

Slotje.