Operácie

AVR Bit Magic: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Nová stránka: ==== Bit Magic ==== * [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=37871 Bit manipulation (AKA "Programming 101")] * [http://www.atmel.com/dyn/resources/prod_d...
 
Balogh (diskusia | príspevky)
Riadok 1: Riadok 1:
==== Bit Magic ====
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=37871 Bit manipulation (AKA "Programming 101")]
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=37871 Bit manipulation (AKA "Programming 101")]
* [http://www.atmel.com/dyn/resources/prod_documents/doc1497.pdf AVR035: Efficient C Coding for AVR]
* [http://www.atmel.com/dyn/resources/prod_documents/doc1497.pdf AVR035: Efficient C Coding for AVR]


* Uvedomte si, ako pristupujeme k bitom
V assembleri existuje pre manipuláciu s bitmi dostatok inštrukcií. V prvom cvičení sme napríklad na test stlačenia
tlačidla mohli použiť inštrukciu
  sbis PINB,3 ; sbis = Skip if Bit Is Set,  preskoc ak je PINB.3 nastaveny (=1)
V jazyku C ale typ bit neexistuje (hoci niektoré kompilátory takýto typ zaviedli), preto môžeme pracovať len s bajtmi, a musíme si nejako vypomôcť. Pri rozumnom zápise však kompilátor rozpozná, že chceme pracovať s bitom a preloží našu konštrukciu správne.
 
[[Obrázok:MMP_Cvicenie2_Input.png|center|250px]]
 


[[Obrázok:MMP_Cvicenie2_Input.png]]


[[Obrázok:MMP_Cvicenie2_Output.png]]
[[Obrázok:MMP_Cvicenie2_Output.png]]

Verzia z 06:18, 1. október 2010

V assembleri existuje pre manipuláciu s bitmi dostatok inštrukcií. V prvom cvičení sme napríklad na test stlačenia tlačidla mohli použiť inštrukciu

 sbis PINB,3		; sbis = Skip if Bit Is Set,  preskoc ak je PINB.3 nastaveny (=1)

V jazyku C ale typ bit neexistuje (hoci niektoré kompilátory takýto typ zaviedli), preto môžeme pracovať len s bajtmi, a musíme si nejako vypomôcť. Pri rozumnom zápise však kompilátor rozpozná, že chceme pracovať s bitom a preloží našu konštrukciu správne.