LED Blink Sequence on AVR using C
subratasarkar20
c_cpp
a year ago
888 B
8
Indexable
#include <avr/io.h>
#include <util/delay.h>
int main (void)
{
DDRB = 0xFF; // set all the pin from register B as i/p
PORTB = 0X00; // clear register initially
int bitPosition; // variable to count the bit/pin position
int direction = 0; // variable to keep track of the LED's direction
while (1)
{
if (direction == 0)
{
for (bitPosition = 0; bitPosition < 8; bitPosition++) // first loop to turn on all the LEDs from PINBO to PINB7
{
PORTB |= 1 << bitPosition; // to set the register pins
_delay_ms(100);
}
}
direction = 1;
if (direction == 1)
{
for (bitPosition = 7; bitPosition >= 0; bitPosition--) // second loop to turn off all the LEDs from PINB7 to PINB0
{
PORTB &= ~ (1 << bitPosition); // to reset the register pins
_delay_ms(100);
}
}
direction = 0;
}
}Editor is loading...
Leave a Comment