What is the purpose of bit masking?
Bit masks are used to access specific bits in a byte of data. This is often useful as a method of iteration, for example when sending a byte of data serially out a single pin. In this example the pin needs to change it’s state from high to low for each bit in the byte to be transmitted.
What does the function digitalWrite do?
digitalWrite() Write a HIGH or a LOW value to a digital pin. If the pin has been configured as an OUTPUT with pinMode() , its voltage will be set to the corresponding value: 5V (or 3.3V on 3.3V boards) for HIGH , 0V (ground) for LOW .
What is bit mask in C?
A mask defines which bits you want to keep, and which bits you want to clear. Masking is the act of applying a mask to a value. This is accomplished by doing: Bitwise ANDing in order to extract a subset of the bits in the value. Bitwise ORing in order to set a subset of the bits in the value.
What language is a typical Arduino code based on?
C++
Arduino code is written in C++ with an addition of special methods and functions, which we’ll mention later on. C++ is a human-readable programming language. When you create a ‘sketch’ (the name given to Arduino code files), it is processed and compiled to machine language.
What do you need to know about bitmasking?
We are talking of BitMasking here. We first keep in mind that an integer is just a bunch of bits stringed together. In Bitmasking, the idea is to visualize a number in the form of its binary representation. Some bits are “set” and some are “unset” , “set” means its value is 1 and “unset” means its value is 0.
Why do you need a bitmask for boolean flags?
Bitmasks are a very useful way to compress multiple boolean flags in a single variable. It can reduce memory usage and operations on bits are basically as fast as they can get. In practice, any time you want to have multiple flags describing something in your application, a bitmask could be the right tool for the job.
What do set and unset mean in bitmasking?
We first keep in mind that an integer is just a bunch of bits stringed together. In Bitmasking, the idea is to visualize a number in the form of its binary representation. Some bits are “set” and some are “unset” , “set” means its value is 1 and “unset” means its value is 0.
How many flags can be in a 32 bit bitmask?
The 32-bit integer will allow for 32 different flags in a single bitmask. To surpass this limitation you would have to move bits into another variable and have a solution that would keep track of your flags across multiple variables.