회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
1827 자유주제 HOT가입 한시간만에 정회원 달기 프로젝트~~!!12 KoBi 3272 2010.08.29
1826 자유주제 HOT유용한 자료들이 많은것 같은데.. ㅠ.ㅠ9 KoBi 3667 2010.08.29
1825 자유주제 HOT납아~~~9 하늘저아래 3180 2010.08.28
1824 자유주제 HOT잡스와 빌 게이츠의 대화18 푸켓 1624 2010.08.27
1823 자유주제 HOT납 학인 어떻게 해요..5 dmz1723 3504 2010.08.27
1822 자유주제 HOT실시간 광고?;;4 사티로스 3522 2010.08.26
1821 자유주제 HOT흠 정회원되기 힘드네요 ㅠ6 강경식 14585 2010.08.26
1820 자유주제 HOT고군분투에 적힌글 답변 win7이 설치안될때 이야기2 부끄럽꾸로 2952 2010.08.26
1819 자유주제 HOT가입 한시간만에 100납 채우기 성공17 부끄럽꾸로 4712 2010.08.26
1818 자유주제 HOT복학 3일차 어깨가 매일 아파요ㅠㅠ4 온니무 3389 2010.08.25
1817 자유주제 HOT납확인 방법?6 abba291 3708 2010.08.25
1816 자유주제 HOTPCB 패턴폭 10A 정도 흘려야 하는데 크기가 어느정도 되어야 하는지 ?2 당당 7375 2010.08.25
1815 자유주제 HOT자산의 납 확인 어디서 하나요?4 봉만이 4373 2010.08.24
1814 자유주제 HOT시스템 업그레이드..13 아크마 4649 2010.08.22
1813 자유주제 HOT확인했습니다2 절대초보 9137 2010.08.18
1812 자유주제 HOT후...납100...힘드네요ㅡㅠ21 KIAPEK 11523 2010.08.17
1811 자유주제 HOTzigbee를 이용한 자율 주행 로봇2 졸뿌 4897 2010.08.16
1810 자유주제 HOT잠시 쉬어갑시다27 졸뿌 1699 2010.08.16
1809 자유주제 HOT오실로 스코프에 프로브를 접촉하면 동작을 하고4 만년필 3988 2010.08.16
1808 자유주제 HOT정보를 검색하고 들어왔는데... ㅎㅎ6 만년필 3650 2010.08.16
Prev 1 ... 39 40 41 42 43 44 45 46 47 48 ... 135 Next
  • 행복을 사치 속에서 구하는 것은 마치 태양을 그림에 그려놓고 빛이 비치기를 기다리는 것이나 다름없다.
    - 나폴레옹
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.