회원가입 ID/PW 찾기
AA

제가짠 모터제어 소스인데 조금 봐주세요ㅜㅜ(안되내)

신호는 포트3에 모두다 들어 가는데 각도1도정도 천천히 움직이는거에요ㅜㅜ

나름 해볼려고 했는데 몇시간째 삽질만 했어요 ㅠㅠ

어디가 문젠지점 가르켜 주세요 ㅠ타이머 부분이 이론으론 이해가 됬나 했는데;;

막상 소스 써서 쓸라니까 막연해요 ㅠ

#include <at89x52.h>


#define servo_left
#define servo_cent
#define servo_reft

unsigned char motor=0;
unsigned int out[1][9];
 int one=0;


void delay (unsigned int min)
{
 unsigned int i;
    for(i = 1; i <= min; i++);

}

int M[]={6444,7366,8288,9210,10132,11054,11976,12898,13820,14742,15664,16586,17508,18430,19352,
           20274,21196,22118,23040};  //1도부터 180도까지    
  //FFFF=65535

void moter(unsigned m1,unsigned m2,unsigned m3,unsigned m4,unsigned m5,unsigned m6,unsigned m7,unsigned m8)
{
 out[0][1]=M[m1];
 out[0][2]=M[m2];
 out[0][3]=M[m3];
 out[0][4]=M[m4];
 out[0][5]=M[m5];
 out[0][6]=M[m6];
 out[0][7]=M[m7];
 out[0][8]=M[m8];

}

           
void timer_interput(void) interrupt 1
{
 
  
 if(one == 1)
 {
  P3 = 0x01<<motor;
  TH0 = out[0][motor]>>8;
  TL0 = out[0][motor] & 0x00FF;
  one = 0;
 }

  else
 {
  P3=0;
  TH0 = 65535-out[0][motor]>>8;
  TL0 = 65535-out[0][motor]& 0x00FF;
 
    
  motor++;
  motor&=0x07;
  
  one=1;
 }


}

/*void timer()//초기화
{
 
 TMOD=0x01;
 ET0=1;
 EA=1;
 IP=0x02;
 TCON=0x01;


 TH0 = 65535-out[0][motor]>>8;
 TL0 = 65535-out[0][motor]&0xff;
 

} */


void main()
{
 TMOD = 0x01;  // Timer 0, mode 1
 TCON = 0x10;  // TR0=1
 TH0 = 42495 >> 8; // initial Timer 0 value
 TL0 = 42495 & 0x00FF; //             <요기가 문젠지?? 초기값도너보고 이것저것 해봤는데돋 잘모르겟어용어디가 문제지.ㅠㅠ

 IP = 0x02;  // interrupt priority
 IE = 0x82;  // EA=ET0=1 

   
for(;;)
  {
 
   moter(1,1,1,1,1,1,1,1);             //0~180에 있는 값을 넣어주면 모터는 -90도에서 +90도로 동작한다.
   delay(2000);                    
   moter(9,9,9,9,9,9,9,9);              //0:-90도(왼쪽)  90:0도(중앙)  180: +90도(오른쪽)
   delay(2000);
   
  }
}

댓글 3
  • No Profile
    TH0 = 65535-out[0][motor]>>8;
     TL0 = 65535-out[0][motor]&0xff;


    TH0 = 65535-out[0][motor]>>8;
      TL0 = 65535-out[0][motor]& 0x00FF;


    일단 여기부터 문제가 보여보이는군요

    65536 값에서 해당 시간을 얻기 위해 빼주는데 그 후에 HIGH BYTE, LOW BYTE로 쉬프트해서 집어 넣는것입니다


    님 소스에 가로를 넣어주셔야 계산순서가 맞겠지요

    TH0 = (65535-out[0][motor])>>8;
     TL0 = (65535-out[0][motor)]& 0xFF;
  • No Profile
    글쓴이 mgcjjang 07.09.10 17:26 댓글 좋아요 0 싫어요 0

    아 바본갑다... 이런 기초적인.. 한번 돌려보고 글남길게요.. ㅋ

  • No Profile
    글쓴이 볼매(승훈) 07.09.13 02:52 댓글 좋아요 0 싫어요 0

    음...  포트로 8개다 신호가 들어가기는한대 ,... 정확한 펄스값이 제대로 들어가지가 않아요 모토가 제어가 안되요..

    클럭주기를 잘못 계산했나...

    소스를 잘못짯나...

    근본적인 전체적으로 소스에 문제 가있나.. 다시 짜서 해봐야겠당. ㅜㅜ

    대강 길점 자바주세요 ㅠ

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

search
번호 분류 제목 글쓴이 조회 수 날짜
26 개발용역 HOT제작의뢰입니다4 wons 4326 2008.11.24
25 개발용역 HOT개발의뢰1 열심이 3877 2008.09.20
24 개발용역 HOT제작의뢰 부탁한 kit 설명( 회로도 첨부) 띠앙 7135 2008.09.11
23 개발용역 HOTUSB용 ISP Programmer용 제작 의뢰4 띠앙 4330 2008.09.01
22 개발용역 HOT풍력을 이용한 빨래 건조대 똘이 4964 2008.07.31
21 개발용역 HOT물체감지 선별 제작의뢰 입니다. 진도령 4823 2008.06.16
20 개발용역 HOT윈도우 디바이스 드라이버 강의건3 빛나는 영혼 5580 2008.05.21
19 개발용역 HOTMCU 개발 마니아 11220 2008.05.16
18 개발용역 HOTRF를 이용한 도어락을 제작3 프리스타일 4890 2008.03.30
17 개발용역 HOT마이컴 동영상 강좌(임베디드)6 마이컴넷 7848 2008.03.26
16 개발용역 HOT저렴하게 개발해드립니다. 한올 5140 2008.01.08
15 개발용역 HOTled마이컴 의뢰드립니다 완전문외한이라 ....1 차예준 5085 2007.12.30
14 개발용역 HOT간단한 10진 카운터 PCB 제작의뢰요1 대구동이 8264 2007.12.02
13 개발용역 HOT로봇 mcu개발 의뢰1 정모양ㅋㅋ 4724 2007.11.21
12 개발용역 HOT온도센서 질문입니다.1 Genesis 5241 2007.11.19
11 개발용역 HOT엔지니어 구함 열씨미 아버지 4818 2007.11.07
10 개발용역 HOT디지털도어락 질문입니다.5 얼룩이리 5650 2007.11.06
9 개발용역 HOTLED 제어 가능 하신분..2 shin 4977 2007.10.29
8 개발용역 HOT기기제작 가능하신분??1 AK 4829 2007.10.25
7 개발용역 HOTRGB 컨트롤러 문의드립니다..3 섬세한샛다 5667 2007.10.12
Prev 1 ... 3 4 5 6 7 8 9 10 11 12 Next
  • 왕이건 농부건 자신의 가정에 평화를 찾아낼 수 있는 자가 가장 행복한 자다.
    - 괴테
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.