AVR Bit Magic: Rozdiel medzi revíziami
Zo stránky SensorWiki
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... |
|||
Riadok 1: | Riadok 1: | ||
* [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] | ||
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_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.