ifrook napisał(a):
matw napisał(a):
@ifrook, zobacz to
http://mirekk36.blogspot.com/2012/01/av ... stawy.html jest to uzupełnienie wiedzy z niebieskiej książki w tym zakresie, powinno Ci się sporo wyjaśnić

Czemu sterując masą muszę użyć iloczynu a nie sumy logicznej? wiem czym one się różnią ale z czego to wynika
Wynika to ze sposobu w jaki sterujesz. Mirek to ladnie wyjasnil zarowno w BB jak i na blogu.
1) jesli dioda jest podciagnieta przez rezystor do masy - to aby ja zapalic na porcie musi byc stan wysoki, jak jest niski to nie swieci.
2) jesli dioda jest podciagnieta przez rezystor do VCC - to aby ja zapalic na porcie musi byc stan niski, jak jest wysoki dioda nie swieci.
Jesli mowiac "sterujac masa" masz na mysli sytuacje nr 2 - to aby dioda swiecila musi byc zero - a zeby ustawic na konkretnym bicie zero trzeba uzyc operacji REJESTR &= !(maska)
Krotko mowiac - aby "zapalic" jedynke na odpowiedniej pozycji w bajcie wykorzystujemy odpowiednia maske i operacje OR czyli |
Aby zgasic - czyli ustawic zero na odpowiedniej pozycji w bajcie wykorzystujemy odpowiednia maske i operacje & (AND) i !(NOT)
Dlaczego tak ? Bo wynika to z tablicy prawd dla tych operacji. Idea jest taka aby maska tak dzialala aby zmienialy sie tylko te bity ktore chcemy zmienic. No i mamy miec mozliwosc ustawienia albo 0 albo 1 na tych bitach. No i dzieki dokladnie takim operacjom logicznym to osiagamy. Takim a nie innym
Tak jak koledzy powyzej polecam przesledzic tablice prawd dla OR, AND i NOT. Nastepnie rozpisac sobie bajt, rozpisac sobie jakas maske, przeprowadzic operacje logiczne i przesledzic w jaki sposob pozostale bity w bajcie sa przeslaniane i dlaczego zmiana (na 0 lub 1) nastepuje tylko i wylacznie na bicie(bitach) dla ktorego(rych) w masce mamy 1.
Przeczytaj jeszcze raz dokladnie bluebooka i
http://mirekk36.blogspot.com/2012/01/av ... stawy.html