Bit-level operations – bit flags and bit masks

This article introduces to bit flags, bit masks and basic bit-level operations on them. In the world of microcontrollers, when you need to save a boolean values (true/false) then it can be useful to “pack” individual boolean values into a single integer value for storage efficiency purposes. This is done by using the bitwise and shift operators to set, clear, … Read more

Microcontrollers and basic bit-level operations

Why it’s so important to know how it works? Well, if you’re making a software for microcontrollers you have to use it in many places in the code to for example manipulate table of processor registers. It also helps to make the program smaller, much faster and allows to perform neat tricks (this isn’t always … Read more

How to install AVR assembler AVRA on Linux (Ubuntu)

In this article I’d like to show how to install AVRA – an opensource version of assembler for ATMEL (currently MICROCHIP) chips on Linux (Ubuntu). Please note that AVRA is not a part of AVR-GCC and uses different directives. 1. Install AVRA sudo apt-get install avra 2. Compile and flash example program (ATtiny13) Clone repository from GitHub cd $HOME git clone https://github.com/lpodkalicki/blog.git … Read more

ATtiny13 – TM1638 Library

This is tinyAVR (ATtiny13, ATtiny25, ATtiny45, ATtiny85, and other) library for LED controller modules based on TM1638 chip. Modules based on TM1638 provide three signal connections (CLK, STB and DIO) and two power connections (VCC and GND). Signal pins can be connected to any pair of digital pins of the AVR chip. Signal pins configuration is … Read more

Microcontrollers and pull-up / pull-down resistors

In case of GPIOs of microcontrollers, a pull-up resistor is a resistor connected between a signal conductor and a positive power supply voltage while a pull-down resistor is a resistor connected between a signal conductor and a ground. They are used on inputs to prevent floating lines, rapidly switching between high and low and a middle … Read more

What is Serial Peripheral Interface (SPI) ?

Serial peripheral interface (SPI) is a hardware/software communication protocol originally developed by Motorola and widely used by others in the industry. SPI is quite straightforward – it defines how to communicate in easy way between 2 digital devices – i.e. between AVR and devices, like other AVRs, external EEPROMs, DACs, ADCs, etc. SPI is a single-master … Read more