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)
Henry S.
Moderator
Confucius says chà bù duo. Deze post is niet door ChatGPT gegenereerd. De 2019 CO labvoeding.