1. LED 오른쪽으로 2칸씩 가면서 켜졌다 다시 2칸씩 꺼지면서 돌아오기
/*
* 240912.cpp
*
* Created: 2024-09-12 오전 10:14:39
* Author : kccistc
*/
#include <avr/io.h>
#include <util/delay.h>
#include <string.h>
int main(void)
{
DDRD = 0xff;
uint8_t ledData = 0x03;
while(1){
PORTD = ledData;
_delay_ms(5000);
if (ledData == 0xff){
for (int i = 0; i < 8; i += 2){
ledData = (ledData >> 2);
PORTD = ledData;
_delay_ms(5000);
}
}
else if (ledData == 0x03){
for (int i = 0; i < 8; i += 2){
ledData = (ledData << 2) | ledData;
PORTD = ledData;
_delay_ms(5000);
}
}
}
}
2. sw[1] 누르면 모든 led on
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
// sw[1] 누르면 모든 led on
// sw[2] 누르면 모든 led off
int main(void)
{
DDRD = 0xff; // led init
DDRA = 0b11111100; // button init
uint8_t buttonState; // unsigned 8bit int data
// A port에서 받는 입력값을 저장 , 버튼 눌리면 0이 입력된다.
// 111111110
while (1)
{
buttonState = PINA;
if ((buttonState & (1<<0)) == 0){
PORTD = 0xff;
}
if ((buttonState & (1<<1)) == 0){
PORTD = 0x00;
}
}
}
'하만 세미콘 아카데미 8기 > 임베디드 시스템을 위한 sw 구조설계' 카테고리의 다른 글
atmega128a - simple traffic system_v2 (+driver) (0) | 2024.09.22 |
---|---|
atmega128a - led machine (+ driver) (0) | 2024.09.22 |
atmega128a - simple traffic system (0) | 2024.09.22 |