본문 바로가기

ATMEGA

LED제어 깜빡이기


#include<avr/io.h>


void Delayms(unsigned int ms) //딜레이 함수..
{
  volatile unsigned int count, countmax = (16000000/1000) * ms;
 for(count = 0; count < countmax; count++);
}


/*int main(void)
{
 (*(volatile unsigned char*)0x61)=0xFF;
      //DDRF=0XFF; //F포트 의 IO 
(*(volatile unsigned char*)0x62)=0xFF;
      //PORTF=0xFF;
  for(;;)// 무한루프
  {
     asm("NOP");//동기화를위한 NOP명령      
     //PORTF = PINC //PINC는 버튼입력 값이 포트 F로 저장?
     (*(volatile unsigned char*)0X62)=0X33;
      // PORTF 는 LED 출력값이 저장딜 변수
      //입력 값을 바로 출력 변수 대입
  }
  return 1;
}*/

int main(void)
{
 //(*(volatile unsigned char*)0x61)=0xFF;
 DDRF=0xFF;
// (*(volatile unsigned char*)0x62)=0xFF;
  
  
  for(;;)// 무한루프
  {
  unsigned int i
  asm("nop");
  
  for(i=0;i<16000000;i++)
   {
    PORTF = ~PINC;
    /*F포트의 출력이 HIGH 로 나오고 잇으므로
  PINC(LOW) 의~(NOT) 붙여 전위차 가 없음으로
  LED 스위치를 눌렀을때 불이 들어오지 않게 된다.  */
    Delayms(5000);
    PORTF = PINC;
    Delayms(5000);
    
   
   }
    
  }
 return 1; 
}