본문 바로가기
과거에 공부했던 것들(저장용)/학부생

[AVR Studio](atmega 128) led shift control

by under_coverzzz 2015. 7. 23.
반응형

#include <avr/io.h>

#include <util/delay.h>



#ifndef __LED_H__

#define __LED_H__


void led_all_onoff(int num,int cycle);

void led_alternating_onoff(int num,int cycle);

void led_shift(int num,int cycle);


#endif


#define F_CPU 16000000UL


void led_all_onoff(int num, int cycle)

{

int i=0;

for(i;i<num;i++)

{

PORTA = 0xFF;

PORTB = 0xFF;

_delay_ms(cycle);

PORTA = 0x00;

PORTB = 0x00;

_delay_ms(cycle);

}

}

void led_alternating_onoff(int num,int cycle)

{

int i=0;

for(i=0;i<num;i++)

{

PORTA = 0xC3;

_delay_ms(cycle);

PORTA = 0x3C;

_delay_ms(cycle);

}

for(i=0;i<num;i++)

{

PORTA = 0xF0;

_delay_ms(cycle);

PORTA = 0x0F;

_delay_ms(cycle);

}

}

void led_shift(int num,int cycle)

{

int i=0;

int temp=0;


while(1)

{

        for(i=0;i<num;i++)

{

PORTA=~(0x01<<i); 

temp = (0x01<<i);

_delay_ms(cycle);

}

        for(i=0;i<num;i++)

{

PORTA=~(temp>>i); 

_delay_ms(cycle);

}

    }

}


int main(void)

{

    DDRA=0xFF; // LED

    led_shift(8,1000);

}


반응형