회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
15 Software & IDEs HOT어셈블리 프로그래밍에서 질문이 있습니다.1 strongman 1151 2009.08.07
14 Software & IDEs HOT데이터 전송 모듈... 류짜장 1039 2008.12.16
13 Software & IDEs HOT8051 신호등 만들때 헤더파일 문제.1 마모루 1488 2008.11.16
12 Software & IDEs HOT길찾기 알고리즘3 인조사람 1197 2008.10.20
11 Software & IDEs HOTMFC로 길찾기 구현 남뉴 1680 2008.10.05
10 Software & IDEs HOT완전초보입니다. 잘부탁드립니다.4 초보민 991 2008.09.19
9 Software & IDEs HOTMatlab 시리얼통신을 통한 그래프만들기..;;1 GreatSSang 3703 2008.09.16
8 Software & IDEs HOT검색엔진의 문자열 논리연산 구현! 도와주세요 ㅡㅜ1 델리트 1094 2008.08.13
7 Software & IDEs HOT윈도우 상에서 비주얼 2005를 이용한 시리얼 포트 프로그래밍2 .ㅇㅈㅇㅈ 1074 2008.07.04
6 Software & IDEs HOTLCMS, DirectX SDK, Visual Studio 6, Platform SDK 호환성 문제 아크마 2246 2008.04.19
5 Software & IDEs HOT칼씨 사용법은 없나요??2 돌격대장 1079 2008.04.13
4 Software & IDEs HOT비쥬얼비튜디오 20057 あさひ 998 2008.02.02
3 Software & IDEs HOTapi 관련해서 물어봅니당..ㅠ2 화언 734 2008.02.01
2 Software & IDEs HOT8051도트입니다1 판도라 1092 2008.01.30
1 Software & IDEs HOT나누미질문이요...4 악당 1035 2007.10.12
  • 누구도 자기가 하는 말이 다 뜻이 있어서 하는 것이 아니다. 그럼에도 자기가 뜻하는 바를 모두 말하는 사람은 거의 없다.
    - H.애덤즈
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.