LED Running Animation in C
subratasarkar20
c_cpp
a year ago
1.2 kB
8
Indexable
/*
* runningLED2.cpp
*
* Created: 12-09-2024 12:59:06
* Author : subrs
*/
#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);
PORTB &= ~(1 << bitPosition); // to reset the register pins
_delay_ms(100);
}
}
direction = 1;
if (direction == 1)
{
for (bitPosition = 6; bitPosition > 0; bitPosition--) // second loop to turn off all the LEDs from PINB7 to PINB0 (ignoring PINB7 and last PINB0 in this case to avoid overlapping)
{
PORTB |= 1 << bitPosition; // to set the register pins
_delay_ms(100);
PORTB &= ~(1 << bitPosition); // to reset the register pins
_delay_ms(100);
}
}
direction = 0;
}
}
Editor is loading...
Leave a Comment