게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
아주 기초적인 AVR 프로그래밍 질분
게시물ID : programmer_16055짧은주소 복사하기
작성자 : bangwool3791
추천 : 0
조회수 : 570회
댓글수 : 3개
등록시간 : 2016/03/04 19:33:55
#include <util/delay.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/lcd4.h>

 

소스 파일을 아래와 같이 짯구요.win avr 환경에서 led와 스위치 연결하고 스위치를 눌를 때마다 led에 스위치에 해당하는 핀 번호 불이 들어 오도록 하는 소스 짜는중인데 핀이 5개이면 5!의 경우의 수를 스위치문에 써주면 되는거 아닌가요?프로그램 돌려도 실행이 이상하게 되네요...PING의 0,1,2,3을 눌르면 4개에 해당하는 LED에 불이 들어와야되는데 한개만 들어온다는지...수정좀 해주세요
int main ()
{
unsigned char buff;
 
 
   DDRG= 0X00;
   PORTG = 0XFF;
   PORTD=0XFF;
   DDRD=0XFF;
{
  
   while(1)
   {
     
   
      buff = PING;
      buff&= 0b00011111;
      _delay_ms(100);
     
      switch(buff)
      {
  case 0b00011110:
  _delay_ms(100);
         PORTD=0b11111110;
  break;
         case 0b00011101:
         _delay_ms(100);
         PORTD=0b11111101;
         break;
         case 0b00011011:
         _delay_ms(100);
        PORTD=0b11111011;
         break;
         case 0b00010111:
         _delay_ms(100);
         PORTD=0b11110111;
         break;
         case 0b00001111:
         _delay_ms(100);
         PORTD=0b11101111;
  break;
  case 0b00011100:
         _delay_ms(100);
         PORTD=0b11111100;
  break;
  case 0b00011010:
         PORTD=0b11111010;
  _delay_ms(100);
  break;
  case 0b00010110:
         _delay_ms(100);
         PORTD=0b11110110;
  break;
  case 0b00001110:
         _delay_ms(100);
         PORTD=0b11101110;
  break;
  case 0b00011001:
         _delay_ms(100);
         PORTD=0b11111001;
  break;
  case 0b00010101:
         _delay_ms(100);
         PORTD=0b11110101;
  break;
  case 0b00001101:
         _delay_ms(100);
         PORTD=0b11101101;
  break;
  case 0b00010011:
         _delay_ms(100);
         PORTD=0b00010011;
  break;
  case 0b00001011:
         _delay_ms(100);
         PORTD=0b11101011;
  break;
  case 0b00000111:
         _delay_ms(100);
         PORTD=0b11100111;
  break;
  case 0b00001010:
         _delay_ms(100);
         PORTD=0b00001010;
  break;
  case 0b00000110:
         _delay_ms(100);
         PORTD=0b00000110;
  break;
  case 0b00010000:
        
         PORTD=0b00010000;
  _delay_ms(100);
  break;
  case 0b00001000:
         _delay_ms(100);
         PORTD=0b00001000;
  break;
  case 0b00000100:
         _delay_ms(100);
         PORTD=0b00000100;
  break;
  case 0b00000010:
         _delay_ms(100);
         PORTD=0b00000010;
  break;
  case 0b00000001:
         _delay_ms(100);
         PORTD=0b00000001;
  break;
  case 0b11100000:
         _delay_ms(100);
         PORTD=0b11100000;
  break;
          case 0b00000111:
         _delay_ms(100);
         PORTD=0b00000111;
  break;
        default:
        _delay_ms(100);
        break;
      }
   }
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호