회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
532 마이크로프로세서 HOTATMEGA 128과 센서의 연결은 무엇을 보고 어떻게 하나요?4 우기우기 1872 2010.04.27
531 마이크로프로세서 HOT소스 짜는 방법 좀 알려주세요~ ㅠㅡㅠ3 엔젤루피님 910 2010.04.26
530 펌웨어 & 코딩언어 HOT어셈블 도와주세요 ㅠㅠ1 마왕님 1024 2010.04.26
529 마이크로프로세서 HOTwin8051 프로그램좀.. 좀8051해보자 1580 2010.04.26
528 마이크로프로세서 HOT프로테우스로도 hex파일 넣어서 돌릴수 있나요?1 좀8051해보자 1432 2010.04.25
527 마이크로프로세서 HOT프로테우스 에 관해서요 질문좀..2 좀8051해보자 1024 2010.04.25
526 마이크로프로세서 HOTATMEGA128에 UC/OS2 포팅하려고 하는데요1 컴공대생ㅠㅠ 1483 2010.04.22
마이크로프로세서 HOTCDS를 이용한 모터제어(Atmega88)2 바다새 1939 2010.04.21
524 펌웨어 & 코딩언어 HOT왕초보 c언어 질문이요11 hshyo 1047 2010.04.19
523 펌웨어 & 코딩언어 HOT마이컴 제어하는 C언어 학습이 어디까지 이루어져야 할까요?8 봄날 1427 2010.04.17
522 펌웨어 & 코딩언어 HOT액세스 지정자에 대해서 궁금한 점이 있습니다. TreeOfDream 900 2010.04.17
521 마이크로프로세서 HOTat90can128 모터제어 문의드립니다!1 꼬막소녀 1262 2010.04.14
520 펌웨어 & 코딩언어 HOT조이스틱 관련 Firmware,Driver 관련 조언 부탁드립니다.2 루키키 1086 2010.04.14
519 마이크로프로세서 HOT8051명령어집합에대해서알고싶어요!!2 hanfx 1078 2010.04.13
518 마이크로프로세서 HOTAVR 학습에 있어 AVR 선택에 관한 질문 드립니다.7 BMTD 945 2010.04.12
517 마이크로프로세서 HOTLED 스위치 제어 소스인데 해석좀 도와주세요3 8051초입기 2228 2010.04.12
516 마이크로프로세서 HOT이제 막 시작한 학부생입니다.6 no.206 940 2010.04.11
515 마이크로프로세서 HOT3가지정도 질문하고 싶습니다.3 marin_blues 1183 2010.04.11
514 Software & IDEs HOT지그비 ZBS-200 프로그램 질문입니다!!2 소울 1723 2010.04.11
513 마이크로프로세서 HOT인터럽트1 밀향 1102 2010.04.10
Prev 1 ... 27 28 29 30 31 32 33 34 35 36 ... 58 Next
  • 인간이 패배하였을 때 끝나는 것이 아니다. 포기했을 때 끝나는 것이다.
    - 닉슨
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.