회원가입 ID/PW 찾기
AA

ADC로 적외선 센서값을 받아서 스텝모터를 구동하는 소스를 짜는중인데요
제 생각으로는 지금 소스라면 분명히 선을따라서 이동을해야하는데
제대로된 구동을 하지 않네요 ㅠㅠ... 실제로 작동을 시키면 바퀴가 덜컥덜컥거리면서
뭔가 불안해요 바닥에 내려놓으면 천천히 굴러가긴하는데 그냥 스텝모터 구동처럼
깨끗한 모양새는 아니더라구요 아래 소스 첨부하구요 뭐가 잘못됫는지 혹은 좀 수정할 곳이 있는지
조언좀해주세요 ㅠㅠ.. 처음만드는건데 여기서 막혀갖구

#include <mega128.h>
#asm
   .equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
#include <stdio.h>
#include <delay.h>
#include <stdlib.h>

unsigned char Rstep[4]={0x05,0x06,0x0a,0x09};
unsigned char Lstep[4]={0x90,0xa0,0x60,0x50};
unsigned int sensor_input[6];
unsigned int i=0,j,k;
unsigned char num[6];
interrupt [ADC_INT] void adc_isr(void)
{
 sensor_input[i]=ADCW;  
 i++;
 switch(i)
 {
   case 0:  ADMUX = 0x00; break;
   case 1:  ADMUX = 0x01; break;
   case 2:  ADMUX = 0x02; break;
   case 3:  ADMUX = 0x03; break;
   case 4:  ADMUX = 0x04; break;
   case 5:  ADMUX = 0x05; break;
   default: i=0; break;
   delay_ms(50);
 }                
}
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
 if(sensor_input[0]||sensor_input[1]>400)
 {
 TCNT2=1;
 if(j>3){
 j=0;}
 else{
 PORTA=Lstep[j];
 j++;
 }
 }
 else{
 TCNT2=237;
 if(j>3){
 j=0;}
 else{
 PORTA=Lstep[j];
 j++;
 }
 }
}


interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
 if(sensor_input[4]||sensor_input[5]>400)
 {
 TCNT0=0;
 if(k>3){
 k=0;}
 else{
 PORTA=Rstep[k];
 k++;
 }
 }
 else{
 TCNT0=235;
 if(k>3){
 k=0;}
 else{
 PORTA=Rstep[k];
 k++;
 }
 }
}
 
void main(void)
{
DDRF=0x00;
PORTF=0x00;
DDRD=0xff;
PORTD=0xff;
DDRA=0xff;
PORTA=0xff;

TIMSK=0x41;
TCCR0=0x07;
TCNT0=0xff;
TCCR2=0x05;
TCNT2=0xff;

ADMUX=0x00;
ADCSRA=0b11101111;
lcd_init(16);
 
#asm("sei")

while (1)
      {
      lcd_clear();
      lcd_gotoxy(0,0);
      sprintf(num,"%3d",sensor_input[0]);
      lcd_puts(num);
      lcd_gotoxy(4,0);
      sprintf(num,"%3d",sensor_input[1]);
      lcd_puts(num);
      lcd_gotoxy(8,0);
      sprintf(num,"%3d",sensor_input[2]);
      lcd_puts(num);
      lcd_gotoxy(0,1);
      sprintf(num,"%3d",sensor_input[3]);
      lcd_puts(num);
      lcd_gotoxy(4,1);
      sprintf(num,"%3d",sensor_input[4]);
      lcd_puts(num);
      lcd_gotoxy(8,1);
      sprintf(num,"%3d",sensor_input[5]);
      lcd_puts(num); 
      delay_ms(500);
      };
}

댓글 0

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

search
번호 분류 제목 글쓴이 조회 수 날짜
14 구인구직 HOT사람인 - 월급 1000만원 프로젝트, 프로그래머 모집 쭈니닷 5052 2012.06.18
13 구인구직 HOT(주)엑스큐어넷 - 소프트웨어 개발자(프로그래머) 채용 쭈니닷 4920 2012.06.12
12 구인구직 HOT(주)시뮬라인 - 기술개발본부 소프트웨어 팀 신입/경력사원 채용공고 쭈니닷 5481 2012.06.11
11 구인구직 HOT㈜엔써즈 - 시스템엔지니어 신입사원 모집 쭈니닷 6355 2012.06.08
10 구인구직 HOT㈜고우넷 - unix 엔지니어 채용 콘마개마 3839 2012.06.05
9 구인구직 HOT전액무료 자바(java)기반 하이브리드 프레임웍개발 안드로이드 개발교육과정 cocoa13 3397 2012.05.14
8 구인구직 HOT[교육부담 0%] 이공계 전액무료 하이브리드 앱 개발자 취업확정자 교육연수과정 cocoa13 4068 2012.05.01
7 구인구직 HOT[전액무료교육] 구로디지털 단지 자바개발 업체 채용확정자 취업교육” 안드로이드 개발 및 프로젝트 과정 cocoa13 3632 2012.04.30
6 구인구직 HOT[전액무료과정] 웹디자이너 양성교육 비주얼 컨텐츠 디자인 과정 안내 cocoa13 4625 2012.04.26
5 구인구직 HOTPOWER설계 및 하드웨어 경력자 찾아요. 박우종 4998 2012.03.07
4 구인구직 HOT회로수리 및 수땜, ECO작업등 필요하시면 연락주세요. 세윤파파 8662 2012.01.27
3 구인구직 HOT실력있는 펌웨어 엔지니어를 모집합니다. JamesHan 8117 2011.12.27
2 구인구직 HOT(주)로벤 연구소에서 연구원을 모집합니다. maddog 6498 2011.11.10
1 구인구직 HOT[급구] PCB 설계 경력자 & H/W 및 펌웨어 엔지니어 모집 용가리3 13454 2010.12.23
Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
  • 한 번 실패와 영원한 실패를 혼동하지 마라.
    - F.스콧 핏제랄드
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.