waarom vaak "omgekeerde" logica

Op 10 juni 2019 18:33:40 schreef trix:
[...]

nee ik bedoelde inderdaad negatieve logica,....die term kwam toen even niet bij mij op :+

zat ik toch op het goede spoor.

denk nog even na over het volgende: een OR is een OR voor de nullen maar werkt als (N)AND voor de enen. Een AND was moeilijker te maken, maar evenzeer gewenst. Aangezien je van een OR een AND kan maken door het zaakje om te keren.. de rest is geschiedenis.

@Arco: de E(eprom)cel heeft op zich inderdaad niets met negatieve logica vandoen, maar men brengt ze ongeacht of een lege cel op celniveau 0 of 1 is, wel als een 1 naar buiten.

Voor mij is negatieve logica iets heel anders. Heeft niets te maken met de toestand van een gewist geheugen maar alles met logica.

Positieve logica:

code:


if (Pin1 == HIGH)
{ ..
}

Negatieve logica:

code:


if ( ! Pin1 == LOW)
{ ..
}

Beide ifs doen precies hetzelfde maar om een of andere reden zie ik de tweede veel vaker en dat kan erg ingewikkeld worden als er meerdere condities worden gecombineerd.

Op 10 juni 2019 19:45:39 schreef deKees:
Negatieve logica:

code:


if ( ! Pin1 == LOW)
{ ..
}

Dit zie ik ook veel te veel. Wat een ramp is dat. Het ontaardt meestal in een onbegrijpelijke brei code. Vooral als er ook nog kwistig met haakjes en accolades rondgestrooid wordt.
Ruim 40 jaar terug was bij mij op het werk 0V een logische "1" en -24V een logische "0". Alle logica werd toen gebouwd met (soms germanium) transistoren, weerstanden, dioden en condensatoren. Tijden werden ingesteld met potentiometers en tantaalcondensatoren. De "clock"-frequentie was 50Hz.

Bezoek mijn neefjes' site: www.tinuselectronics.nl

Op 10 juni 2019 19:45:39 schreef deKees:
Voor mij is negatieve logica iets heel anders. Heeft niets te maken met de toestand van een gewist geheugen maar alles met logica.

Juistem. Dat memory zet het hele topic op scherp. Heeft niks met pos/neg.logica te maken.
En je code snippet heeft ook niks met neg.logica van doen, sorry :-) Nogmaals, neg logica is alleen de codering van '0' en '1'. Wat noem je wat. Daar zal kris wel gelijk hebben, als je het slim kiest kun je met minder hardware toe.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Hoe zou je dit soort if construkties dan noemen?

Hoe zou je dit soort if construkties dan noemen?

We zien steeds meer dat de betekenis van allerlei termen mee verandert met de context.

Dus dan kun je 'negatieve logica' in een software context aanders definieren dan 'negatieve logica' in een hardware context.

Spanning in de bioscoop heeft ook niks te maken met spanning op een stopcontact.

Negatieve logica is voor mij logica die niet (goed) werkt... ;)

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com
EricP

mét CE

Manager-logic? :)

Wat TS natuurlijk bedoelt is dan in zijn beleving een logische 'true' een 1 of een hoog spanningsniveau zou moeten betekenen. Als je iets 'aan' zet, zou je er dan een '1' naar moeten schrijven.
Zeker bij fuses, is het nog wel eens andersom: als de bit clear is, dan is de functie 'actief' (in ene poging het eenduidig te verwoorden).
Maar het is ook niet ongebruikelijk om een (low power)LED aan een 8051 bijvoorbeeld aan de '+' te hangen. Je moet dus de betreffende output pin laag trekken om er licht uit te krijgen. En er dus een '0' naar schrijven.

We zijn inderdaad gewend geraakt dat fabrikanten de uitgangsstroom van de microcontrollers "symmetrisch" maakt (de uitgangen kunnen dan even goed sourcen als sinken), maar in werkelijkheid hebben NPN/N-kanaals transistoren betere geleidingseigenschappen, dus de meeste logica kan beter sinken dan sourcen, en dan heeft het zin gebruikers zo aan te sluiten.

Maar omdat de P-FETs groter en lomper moeten zijn (zo'n 5x als ik het goed heb) om de prestaties van de N-fet te benaderen, kan ie eventuele warmte over een groter oppervlak dissipieren dan z'n N-broertje... :-)

Tip: niet moeilijk over doen. Doe alsof het symmetrisch is. Dus als je happy wordt van postieve logica, maak dan gewoon hoog = led aan.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 16 juni 2019 10:47:13 schreef deKees:
Hoe zou je dit soort if construkties dan noemen?

Jouw voorbeeld van negatieve logica zou ik "krom programmeren" noemen. Je doet nl precies hetzelfde in beide gevallen. Je hebt nog het geval waarin je een pin test of ie '0' is waarbij er dan iets actief is. Bv een chip-enable van een memory, of het voorbeeld vd led hierboven. Dan heet zo'n signaal "laag-actief". Maar geen negatieve logica.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein