회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
376 드론/로봇/라인트레이서 HOT아크마라인트레이서 회로도 질문입니다~2 천년동안 1981 2010.09.03
375 전기전자 아무거나 HOTAvr 모듈 어떤것이 좋을까요.2 라하힘 890 2010.08.31
374 드론/로봇/라인트레이서 HOT아크마 라인트레이서 회로도의 의문점 질문입니다!1 천년동안 1281 2010.08.30
373 전기전자 아무거나 HOT전류모드 cmos 회로 관련질문 (꼭좀도와주세요..);;; 리봉가오 1119 2010.08.28
372 드론/로봇/라인트레이서 HOTMB라인마우스 회로도좀 구할수없을까요..2 오고고 1344 2010.08.27
371 드론/로봇/라인트레이서 HOTMB 라인마스우 SENSOR CON20 질문요 ~1 천년동안 1172 2010.08.26
370 전기전자 아무거나 HOT광센서와 모터연결쪽 관련 공부할려면 머부터해야하나요..3 온니무 900 2010.08.25
369 전기전자 아무거나 HOTRC저역통과 필터와 파이형 필터의 차이점1 내이름32 3843 2010.08.21
368 드론/로봇/라인트레이서 HOT라인트레이서 여기 올라와 있는 소스 컴파일을 했는데 오류가 떠요..1 vorcot 1391 2010.08.20
367 전기전자 아무거나 HOTLED를 100개를 배터리로 구동하려면...2 jjogi 1160 2010.08.19
366 전기전자 아무거나 HOT스피커 단선 경보회로좀 부탁드립니다2 너구리한마리 1337 2010.08.17
365 전기전자 아무거나 HOT전자회로수리2 핸섬 1448 2010.08.16
드론/로봇/라인트레이서 HOT라트소스를 짜는데요 실제 구동은 좀 이상하네요 Mirel 1489 2010.08.16
363 전기전자 아무거나 HOTIBM 하드웨어 이론 핸섬 868 2010.08.15
362 전기전자 아무거나 HOT초보자 질문2 별헤는 밤 874 2010.08.13
361 드론/로봇/라인트레이서 HOTAVR초음파 센서 관련입니다... 칠흑광자 2344 2010.08.11
360 Analog & Mixed-Signal 설계 HOTcan통신관련 문의 드립니다.2 우가우가 2668 2010.08.10
359 전기전자 아무거나 HOT자신 있는 사람...!8 kiki 812 2010.08.10
358 전기전자 아무거나 HOTCSIEDA 을 사용해야 하는데요..2 풍림화산 1124 2010.08.10
357 드론/로봇/라인트레이서 HOT많은 도움 부탁드립니다!!!1 피터팬 1082 2010.08.09
Prev 1 ... 16 17 18 19 20 21 22 23 24 25 ... 39 Next
  • 모든 양서를 읽는다는 것은 지난 몇 세기 동안에 걸친 가장 훌륭한 사람들과 대화하는 것과 같다.
    - 데카르트
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.