BASIC4MCU | 질문게시판 | 답변 : H브리지회로에서 코딩 질문입니다.
페이지 정보
작성자 master 작성일2018-10-29 06:50 조회12,189회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=3978
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-10-29 오전 6:48:45// by Ok-Hyun Park//#include "AT89S51.H"//void Delay_ms(unsigned int ms){ unsigned int i,j; for(i=0;i<ms;i++)for(j=0;j<38;j++); }//void main(){while(1){if(!(P1_0)){ //좌측에 태양 있으면..P3_5=1; P3_7=0; //좌로 회전.}else if(!(P1_1)){ //우측에 태양 있으면..P3_5=0; P3_7=1; //우로 회전.}else{ //중앙에 태양 있으면..P3_5=0; P3_7=0; //정지}Delay_ms(100); //지연.}}
void Delay_ms(unsigned int ms){unsigned int i,j;for(i=0;i<ms;i++){for(j=0;j<38;j++);}}어떤 코드라도 실행 시간이 있습니다.
일반적인 명령어 들의 실행 시간이 짧기 때문에 루프문을 사용해서 긴 시간을 만드는겁니다.
#define U_C unsigned char#define U_I unsigned int#define U_L unsigned longc언어 define <-- 구글 검색하면 설명글이 나옵니다.
코드에서는 사용하고 있지 않으니 삭제하면 됩니다.
if else if 구조로 변경했으며
else에 정지 명령을 추가했습니다.
딜레이 100ms는 없어도 큰 지장 없습니다.
딜레이가 너무 길면 모터가 이동하는 시간이 길어서
센터(태양추적)를 맞추기 어려워집니다.
이 때는 딜레이를 줄이거나 없애면 됩니다.
댓글 0
조회수 12,189등록된 댓글이 없습니다.