All the code are found at : Github .

# A beginners guide to embedded programming with AVR microcontroller

This guide is for getting started in embedded programming with AVR microcontroller . If you have been involve in the embedded programming and to uplift your skill , this course can be beneficial for you .

This course is developed for beginners and focus in basic understanding of various component which constitute of embedded system and practical use of it .So,you would have solid base for future learning and implementation.

# Syllabus

This Course syllabus is designed as follows :

  1. Detail of AVR microcontroller :

Brief introduction of AVR , it's classification , types and features Detail of AVR microcontroller

  1. Basic development tools setup:

Step by Step guide for creating AVR program in proteus Download.Basic development tools setup

  1. Basic program structure (Hello World Program):

As in any programming language the basic program is to print Hello World, the basic program in embedded system is to blinking led.Hello World Program

  1. Digitally Programming The Pin:

Learn how to program pins to accepts the input from switch or on led . Digitally Programming The Pin

  1. Interrupt in AVR:

Interrupt are the powerful signal that interfere the main process being done inside the system .IT perform events that require immediate attention by the microprocessor. Learn how to use them.Interrupt in AVR

(adsbygoogle = window.adsbygoogle || []).push({});
  1. Counter/Timer in AVR:

The counters are basically what they sound like—they keep on count of how many times some event happens and event in term of embedded is a pin or internal source has changed its voltage level. Learn how too use them Counter/Timer in AVR

  1. ADC in AVR :

Learn how to work with external signal such as light , sound . ADC in AVR

  1. EEPROM in AVR: Learn how to store data inside AVR permanently .EEPROM in AVR


This A beginners guide to embedded programming with AVR microcontroller course is a getting start with embedded programming with AVR microcontroller using c language so , we can develop more intelligence machine to assist human race in future.

I hope to collaborate with you

Santosh Dahal

# Requirement and Resource

This guide requires basic understanding of c . You can check yourself at Learn C Programming for Beginners

All the code are found at : Github .

# What is Embedded System

Embedded system is the combination of software and hardware that is designed to perform a particular task in a certain period of time.

Video game consoles, industrial machines, household appliances, mobile devices, medical equipments, digital cameras, GPS, are some possible locations where embedded systems are used. Looking for the diversity of the applications and potential for production of highly innovative products, embedded system can be considered as the primary technology of future.


Learning the embedded system is simply learning to use its component and peripheral .

# Embedded Programming Skill

Embedded Programming skill is the multi-diciplinery skill and is build upon the three basic skill

  1. Programming Skill : You must be well versed with the programming language and it's construct.
  2. Computer Architecture : You must understand the architecture of microcontroller upon which the micro controller is built on.
  3. Working of Microcontroller and Peripherals : You must have the knowledge of how the different device inside the microcontroller works and interects with eachother.

# Pathways of Embedded System

There are four pathways for embedded system.

  1. ARDUINO: Arduino is an open source platform used for building electronic projects. It consists both physical programmable board (like Arduino UNO) and software (Arduino IDE). Arduino board are capable of taking inputs from sensors, message and button and convert it into output as moving the robots in a line, turning on an led, publishing a message. You can tell your board what to do by giving the instructions to the board.

  2. AVR: AVR stands for Alf Vegard RISC which is a microcontroller designed by Atmel and now owned by Microchip. The AVR was one of the first microcontrollers families to use on-chip flash memory for program storage, as opposed to OTP ROM, EPROM or EEPROM used by other microcontrollers at that time.

  3. ARM: ARM stands for Advanced RISC Machine which is one of the family of CPU based on RISC ( Reduced instruction Set Computer) architecture. ARM processors are microprocessors that are widely used in mobile devices, smartphones, tablets. ARM makes 32-bit and 64-bit RISC multi core processors.

  4. FPGA: FPGA stands for Field Programmable Gate Arrays. They are devices that can be used to build our own digital circuits.At its core, an FPGA is an array of interconnected digital subcircuits that implement common functions while also offering very high levels of flexibility. But getting a full picture of what an FPGA is requires more nuance.

# Basic Terms

# Micro controller

A microcontroller is a small computer on a single integrated circuit. In modern terminology, it is similar to, but less sophisticated than, a system on a chip; an SoC may include a microcontroller as one of its components.

# Proteus

The Proteus Design Suite is a proprietary software tool suite used primarily for electronic design automation. The software is used mainly by electronic design engineers and technicians to create schematics and electronic prints for manufacturing printed circuit boards.

# Microprocessor

A microprocessor is a computer processor that incorporates the functions of a central processing unit on a single integrated circuit, or at most a few integrated circuits.

# Interrupt

In system programming, an interrupt is a signal to the processor emitted by hardware or software indicating an event that needs immediate attention.

# Computer Architecture

In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer systems.

# Peripherals

A peripheral or peripheral device is "an ancillary device used to put information into and get information out of the computer".


A printed circuit board (PCB) mechanically supports and electrically connects electronic components or electrical components using conductive tracks, pads and other features etched from one or more sheet layers of copper laminated onto and/or between sheet layers of a non-conductive substrate.


A light-emitting diode (LED) is a semiconductor light source that emits light when current flows through it. Electrons in the semiconductor recombine with electron holes, releasing energy in the form of photons.


In electronics, an analog-to-digital converter (ADC, A/D, or A-to-D) is a system that converts an analog signal, such as a sound picked up by a microphone or light entering a digital camera, into a digital signal.


A read-only memory whose contents can be erased and reprogrammed using a pulsed voltage.