회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
296 전기전자 아무거나 HOTRC 서브모터 HS-311 제어질문입니다~!3 으갸갸 2731 2010.05.08
295 전기전자 아무거나 HOT펌웨어.. 커널.. 정확히 무슨뜻인지요3 피빛눈물 2062 2010.05.07
294 전기전자 아무거나 HOTrms관련3 kime 835 2010.05.06
293 전기전자 아무거나 HOTsmps4 김준영입니다~ㅜ 1109 2010.05.06
292 전기전자 아무거나 HOTmosfet 증폭기 회로를 구현해야 하는데1 냥냥 1920 2010.05.05
291 전기전자 아무거나 HOT경관용 LED BAR 제작에 관하여...6 쓰나미 1087 2010.05.03
290 전기전자 아무거나 HOTAVR을 배워 보려 하는데요 ㅜ5 저탱 1007 2010.05.03
289 전기전자 아무거나 HOTAVR을 어떻하면 빨리 배울 수 있을가요?8 쓰나미 895 2010.05.03
288 전기전자 아무거나 HOT산업공학 쪽에서 일하려면 어떤분야를 미리 좀 배우는게 좋을까요 ?1 조민제조민제 794 2010.05.02
287 전기전자 아무거나 HOTatmega128 UART 통신 공부를 하다가....1 blurlink 1770 2010.04.28
286 전기전자 아무거나 HOTdatasheet 보는 방법을 알고 싶습니다.3 우기우기 3174 2010.04.27
285 전기전자 아무거나 HOT전기/전자 기초부터 다시 하려면 어떤방법이 좋을까요?14 붉은하늘악마 1254 2010.04.26
284 전기전자 아무거나 HOT여러분의 도움이 절실히 필요합니다. 간단한자동점멸기회로에요4 딘재 2379 2010.04.26
283 전기전자 아무거나 HOT[논리회로] 브레드보드로 만들수 있는것좀 알려주세요1 ㅇ1ㅇ 1535 2010.04.26
282 전기전자 아무거나 HOT트랜지스터에 관하여 질문드릴게요4 딘재 1091 2010.04.22
281 전기전자 아무거나 HOT안녕하세요 다이액과 트라이액 관련해서 회로도 질문좀할게요1 딘재 2339 2010.04.22
280 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(5)8 tiantian 1036 2010.04.21
279 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(4)1 tiantian 836 2010.04.21
278 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(3)1 tiantian 1040 2010.04.21
277 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(2)1 tiantian 949 2010.04.21
Prev 1 ... 20 21 22 23 24 25 26 27 28 29 ... 39 Next
  • 천재란 인내에 대한 위대한 자질 이외에는 아무것도 아니다.
    - 뷰퐁
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.