1. Home
  2. /
  3. Embedded-c-cpp
  4. /
  5. Read Button Input (Embedded C)

Read Button Input (Embedded C) - Embedded-c-cpp Typing CST Test

Loading…

Read Button Input (Embedded C) — Embedded-c-cpp Code

Reads a push button connected to a GPIO and toggles an LED accordingly on an AVR MCU.

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	DDRB |= (1 << PB0); // LED output
	DDRD &= ~(1 << PD0); // Button input
	while(1)
	{
		if(PIND & (1 << PD0)) PORTB |= (1 << PB0);
		else PORTB &= ~(1 << PB0);
		_delay_ms(50);
	}
}

Embedded-c-cpp Language Guide

Embedded C/C++ refers to using the C or C++ programming languages for programming embedded systems. These are resource-constrained devices like microcontrollers, IoT devices, automotive controllers, and real-time systems where direct hardware control and performance are critical.

Primary Use Cases

  • ▸Microcontroller firmware
  • ▸Real-time operating systems (RTOS) tasks
  • ▸IoT devices and sensors
  • ▸Automotive ECU programming
  • ▸Industrial automation and robotics

Notable Features

  • ▸Direct memory and register access
  • ▸Low-level I/O control and peripheral interfacing
  • ▸Deterministic and high-performance execution
  • ▸Supports modular and object-oriented designs
  • ▸Rich ecosystem of compilers, toolchains, and RTOS libraries

Origin & Creator

C was created by Dennis Ritchie at Bell Labs in the 1970s, and C++ was developed by Bjarne Stroustrup in the 1980s. The embedded variant evolved as developers adapted these languages for low-level, resource-constrained systems.

Industrial Note

Embedded C/C++ dominates industries like automotive (ISO 26262), aerospace (DO-178C), industrial automation, and consumer electronics where memory, speed, and reliability are critical.

More Embedded-c-cpp Typing Exercises

Blink LED (Embedded C, AVR microcontroller)Embedded C++ Class for LED ControlPWM LED Brightness (Embedded C, AVR)UART Transmit (Embedded C)ADC Read and LED Control (Embedded C)Timer Interrupt Toggle LED (Embedded C)Embedded C++ Motor Control ClassSPI Send Byte (Embedded C)I2C Master Send (Embedded C)

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher