회원가입 ID/PW 찾기
AA

AVR128을 이용한 LED구동 소스에 관한 질문입니다
#include <avr/io.h>
void Delay_us(unsigned char time_us)
{
 register unsigned char i;
 for(i=0;i<time_us;i++)
 {
  asm volatile(" PUSH R0 ");
  asm volatile(" POP R0 ");
 }
}
void Delay_ms(unsigned int time_ms)
{
 register unsigned int i;
 for(i=0;i<time_ms;i++)
 {
  Delay_us(250);
  Delay_us(250);
  Delay_us(250);
  Delay_us(250);
 }
}
int main(void)
{
 DDRB = 0xff;
 unsigned char dFlag = 'L';
 unsigned int led=1;
 while(1)
 {   
  if(dFlag == 'L')   led <<= 1;    
         else                   led >>= 1; 
  
         if(led == 0x80)     dFlag = 'R'; 
        else if(led == 1)  dFlag = 'L';   
 }
return 0;
}
BAR LED를 좌우로 움직이는 프로그램입니다. 근데 불이 다 들어오더라구요-_-;;;
이게 딜레이를 작게 줘서 다 켜져있는 것 처럼 보이는건지...음...잘모르겠습니다.
일단 회로는 128 PORTB에 LED 를 연결하고 그뒤에 어레이저항을 연결하구 GND에 물려놨습니다.

2. 스위치를 이용한 LED회로 소스인데요...
어떤 분이 짠것을 제가 제꺼에 맞게 나름 바꾸어봤는데...-_-;; 이녀석도...동작이 잘 안되더라구요
#include <avr/io.h>


#define PIN_KEY PIND

int main(void)
{
DDRB = 0xFF; // LED와 연결된 포트를 출력(Output) 모드로 설정
PORTB = 0x00; // LED 초기화
DDRD = 0x00; // KEY와 연결된 포트를 입력(Input) 모드로 설정
PIN_KEY = 0XFF; //KEY 버튼의 초기화
 
for (;;)
{
PORTB = PIN_KEY; // 입력 받은 KEY값을 LED에 출력한다.
}
return 1;
}
/* PIND는 보기 쉽게 하기 위해 #define를 걸어 이름을 재설정하였고 DDRB는 FF일때 출력값
   이 나오게 하기 위해 즉 +5V가 흘러들어갈 때 LED가 들어가도록 설정. LED는 평소에는
   -단자에 연결이 되므로 PORTB는 평소에는 0V가 흐르다가 5V 즉...FF일때 불이 들어오도록
   설정하기 위해 LED의 초기값은 00으로 잡는다. kEY 버튼의 초기화 FF는 PORTB에 5V가 들
   어 가도록 하기 위해 스위치의 그라운드를 +5V로 잡고 스위치는 0으로 잡아 스위치를 눌
   렀을 경우에만 작동하도록 만들어져있다. */

LED물려놓은건 위에 말씀드린거랑 똑같구요. 스위치 입력은 PORTD입니다.
스위치는 +에다가 물려놨는데... 안되길래 GND에다가 물려봐도 안되더군요.
스위치 입력설정에 관해서 소스가 문제가 있는걸까요?

프로그래밍이 하드웨서 설정보다 더 중요하다고 생각하는데...
프로그래밍은 어렵고 하기도 힘들더라구요 ㅡㅜ 잘하고 싶은데....
가르침을 부탁드리겠습니다. 열심히 배울께요.

댓글 2

  • 첫번째 꺼는 딜레이가 없는데 무엇을 주셨다는건지 모르겠네요. 너무 빨라서 다 켜져 있는것 처럼 보일 겁니다.

    두번째는 얼핏 봐서는 문제가 없는것 처럼 보이는데요

    실험을 스위치에 물리지 말고 포트 D포트중 1번째 꺼 , PORTD.0 을 GND 혹은 VCC에 직접 물리시고... 프로그래밍을

    while(1)
    {
        if ( PIND.0 )
       {
          PORTB = 0x11 ;
        }
        else
           PORTB = 0x18
     
       while(1);
    }

    이렇게 해보세요.

    즉, 포트 D의 0번이 그라운드이면 0x18이 출력될겁니다.

    만약 안된다면 뭔가 문제가 있는듯 한데요. 마이컴 불량이던가 등등.

    소스를 너무 의미 있게 볼 필요는 없고 그냥 의미만 아시면 됩니다.

    그리고 마이컴 프로그래밍은 가장 중요한게 하드웨어 이고 그 기반위에 프로그램이 되어야 합니다.

    즉, 하드웨어를 직접 테스터기나 등등으로 검증을 한 다음 마이컴으로 직접 하나씩 제어해 보면서 되는지를 확인해야 합니다.

    우선 회로를 그리시고, 회로를 이해하시고 검증한다음 마이컴을 하나씩 검증해 나가야 합니다.

    가장 오래 걸리는 일이 가장 빠른 지름길 입니다.

    마이컴 프로그램이 어려운 이유는 하드웨어라는 변수와 함께 마이컴 셋팅이라는 변수 그리고 컴파일러의 문법적 특성등이 있어서

    일반 프로그래밍방법으로 접근 하시면 안됩니다.

    그럼 파이팅
  • No Profile
    글쓴이 천청심 08.10.12 08:58 댓글 좋아요 0 싫어요 0
    꺼이 꺼이....친절하게 자세히 갈켜주셔서 감사합니다 ㅡ..ㅜ

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
14 구인구직 HOT사람인 - 월급 1000만원 프로젝트, 프로그래머 모집 쭈니닷 5057 2012.06.18
13 구인구직 HOT(주)엑스큐어넷 - 소프트웨어 개발자(프로그래머) 채용 쭈니닷 4923 2012.06.12
12 구인구직 HOT(주)시뮬라인 - 기술개발본부 소프트웨어 팀 신입/경력사원 채용공고 쭈니닷 5486 2012.06.11
11 구인구직 HOT㈜엔써즈 - 시스템엔지니어 신입사원 모집 쭈니닷 6360 2012.06.08
10 구인구직 HOT㈜고우넷 - unix 엔지니어 채용 콘마개마 3844 2012.06.05
9 구인구직 HOT전액무료 자바(java)기반 하이브리드 프레임웍개발 안드로이드 개발교육과정 cocoa13 3410 2012.05.14
8 구인구직 HOT[교육부담 0%] 이공계 전액무료 하이브리드 앱 개발자 취업확정자 교육연수과정 cocoa13 4075 2012.05.01
7 구인구직 HOT[전액무료교육] 구로디지털 단지 자바개발 업체 채용확정자 취업교육” 안드로이드 개발 및 프로젝트 과정 cocoa13 3637 2012.04.30
6 구인구직 HOT[전액무료과정] 웹디자이너 양성교육 비주얼 컨텐츠 디자인 과정 안내 cocoa13 4627 2012.04.26
5 구인구직 HOTPOWER설계 및 하드웨어 경력자 찾아요. 박우종 5001 2012.03.07
4 구인구직 HOT회로수리 및 수땜, ECO작업등 필요하시면 연락주세요. 세윤파파 8665 2012.01.27
3 구인구직 HOT실력있는 펌웨어 엔지니어를 모집합니다. JamesHan 8125 2011.12.27
2 구인구직 HOT(주)로벤 연구소에서 연구원을 모집합니다. maddog 6503 2011.11.10
1 구인구직 HOT[급구] PCB 설계 경력자 & H/W 및 펌웨어 엔지니어 모집 용가리3 13458 2010.12.23
Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
  • 전쟁에선 어느 편이 스스로를 승자라고 부를지라도 승리자는 없고 모두 피해자뿐이다.
    - 챔벌린
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.