회원가입 ID/PW 찾기
AA

안녕하세요?
아래와 같이 짜깁기 코딩을 했는데
PORTC의 0번 pin으로 분명히 CDS 센서값 high가 들어오는데 모터가 꼼짝을
안합니다...low에서도 반응없구요...
if 조건문에서 0x41로 준건 reset키 때문입니다.(PORTC 06번 reset은 평상시 high)
코딩 환경은 AVR GCC 입니다....
port로 입력을 정확히 받으려면 어떻게 해야할까요?


#define MOTOR_DDR DDRD
#define MOTOR_PORT PORTD
#define PWM1_ON (MOTOR_PORT|=0x01)
#define PWM1_OFF (MOTOR_PORT&=0xFE)
#define LED_ON (MOTOR_PORT|=0x02)
#define LED_OFF (MOTOR_PORT&=0xFD)
#define DIR1_ON (MOTOR_PORT|=0x02)
#define DIR1_OFF (MOTOR_PORT&=0xFD)
#define ENABLE1_OFF (MOTOR_PORT|=0x04)
#define ENABLE1_ON (MOTOR_PORT&=0xFB)
#define BREAK1_ON (MOTOR_PORT|=0x08)
#define BREAK1_OFF (MOTOR_PORT&=0xF7)

void Port_Init(void)
{
  //set Port B to output
  DDRB = 0xFF;
  //PORTB = 0x00;
  //set Port C to input
  DDRC = 0x3E;
  PORTC = 0x41;
  DDRD = 0xFF;
  PORTD = 0x00;
}


void DC_Motor(void)
{
 unsigned Tmp1;  
 int i, d, count=1;
 
 //Tmp1 = (PINC,0);
  if (PINC == 0x41){
     BREAK1_OFF;
     ENABLE1_ON;
     count++;
     DIR1_ON; // Ch1 정방향

     for(d=0; d<10; d++){ // 속도 조절
        for(i=0;i<100;i++){ // 10 번 PWM 발생
            PWM1_ON; // PWM1 신호 1
            delay(10-d);
            PWM1_OFF; // PWM1 신호 0
            delay(d);
            if(d==2) {BREAK1_ON; break;}
        } // 정지 (18200 Only)
    }
 }
    
    else if (PINC == 0x40){
           BREAK1_OFF;
           ENABLE1_ON;
           count++;
           DIR1_OFF; // Ch1 역방향

           for(d=0; d<10; d++){ //  속도 조절
              for(i=0;i<100;i++){ // 10 번 PWM 발생
                 PWM1_ON; // PWM1 신호 1
                 delay(10-d);
                 PWM1_OFF; // PWM1 신호 0
                 delay(d);
                 if(d==2) {BREAK1_ON; break;}
            }
         }
     }
}

int main(void)
{
 MCUCR = 0x00;
 Port_Init();  
 while(1){
    //LED_Control();   
    DC_Motor();
 }

댓글 2

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

search
번호 분류 제목 글쓴이 조회 수 날짜
2626 자유주제 HOT식당이름이..4 2S 1770 2010.04.23
2625 자유주제 HOT대략 표정이.....7 2S 1765 2010.04.23
2624 전기전자 아무거나 HOT트랜지스터에 관하여 질문드릴게요4 딘재 1191 2010.04.22
2623 전기전자 아무거나 HOT안녕하세요 다이액과 트라이액 관련해서 회로도 질문좀할게요1 딘재 2400 2010.04.22
2622 마이크로프로세서 HOTATMEGA128에 UC/OS2 포팅하려고 하는데요1 컴공대생ㅠㅠ 1565 2010.04.22
마이크로프로세서 HOTCDS를 이용한 모터제어(Atmega88)2 바다새 4666 2010.04.21
2620 자유주제 HOT비닐봉지 지존...5 쭈와니 1597 2010.04.21
2619 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(5)8 tiantian 1151 2010.04.21
2618 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(4)1 tiantian 905 2010.04.21
2617 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(3)1 tiantian 1099 2010.04.21
2616 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(2)1 tiantian 1045 2010.04.21
2615 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술3 tiantian 1497 2010.04.21
2614 전기전자 아무거나 HOTIC에 Absolute Maximum Ratings은 어떻게 정해지는 걸까요??4 히쟈 1135 2010.04.20
2613 Allegro & OrCAD HOTOrcad Layout 에서 자동배치에 관해서 질문드립니다.4 TreeOfDream 2930 2010.04.19
2612 자유주제 HOT노처녀 관상 특집?5 카레이야스 1774 2010.04.19
2611 자유주제 HOT캔통신을시작하려 하는데..5 카레이야스 10259 2010.04.19
2610 펌웨어 & 코딩언어 HOT왕초보 c언어 질문이요11 hshyo 1299 2010.04.19
2609 자유주제 HOT고기굽는 존슨9 hshyo 1883 2010.04.19
2608 자유주제 HOT[잡담] 윈도우 프로그래밍3 빛나는 영혼 4752 2010.04.18
2607 전기전자 아무거나 HOTPCB회로도 분석중입니다. 기호의 의미를 알수가 없네요..가르쳐 주세요._사진3 빛나는 영혼 1926 2010.04.17
  • 그 사람됨을 알고자 하면 그의 친구가 누구인가를 알아보라.
    - 터키 속담
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.