회원가입 ID/PW 찾기
AA

#include <mega128.h>
#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>  
#include <delay.h>
#include <stdio.h>

#define sen_on()        PORTA = 0xff
#define sen_off()       PORTA = 0x00
#define SENSOR_MODE_ON  1
#define SENSOR_MODE_OFF  2

typedef  unsigned char byte;
typedef  unsigned int word;
typedef  unsigned long dword;

word  sensor_input[8];
byte sensor_mode;
int sensor_cnt = 0;
#define ADC_VREF_TYPE 0x00


// ADC interrupt service routine
interrupt [ADC_INT] void adc_isr(void)
{  
    sensor_input[sensor_cnt] = ADCW;
    sensor_cnt++;
   switch(sensor_cnt)
    {
        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;
        case 6:  ADMUX = 0x06;  break;
        case 7:  ADMUX = 0x07;  break;
        default: sensor_cnt=0; break;
    }                
   // ADMUX = 0x02; // adc cheannel select
   //if(sensor_cnt>=8) sensor_cnt=0;          
}

interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
   
    if(sensor_mode == SENSOR_MODE_ON)      //초기값은 sensor_mode 애  SENSOR_MODE_ON값이 들어가있음.
    {                         // 60us  
        sen_on();     //발광 on
        delay_us(3);  //2~3적당.
        ADCSRA|=0x40; 
        sensor_mode = SENSOR_MODE_OFF;     //스위칭 변수.                       
        TCNT3H = 0xff; //start timer     
        TCNT3L = 0xf1;
       
    }
    else if(sensor_mode ==  SENSOR_MODE_OFF)
    {  
                             // 180us  
        sen_off();     //발광 off
        sensor_mode = SENSOR_MODE_ON;      // 스위칭 변수.
        TCNT3H = 0xff;
        TCNT3L = 0xdd; //start timer         
    }
                              

}
void adc_init(void)
{   
  ADCSRA = 0x00; //disable adc
  ADMUX = ADC_VREF_TYPE;  // VRef
  ACSR  = 0x80;
  ADCSRA = 0x8E; // ADC Prescaler 128
}


void main(void)
{              
  char lcd_buf[16];
  DDRA = 0b11111111;
    
   
  DDRF = 0x00;

        lcd_init(16);
       
   TIMSK = 0x04;
   TCCR1A = 0x00;
   TCCR1B = 0x03; //start timer2, prescale 64   
   TCNT1H = 0x00;
   TCNT1L = 0x00;
  
   //ETIMSK = 0x40; //timer2  compare interupt
   sensor_mode = SENSOR_MODE_ON;
   adc_init();
   #asm("sei");
      
    while (1)
    {  
        lcd_clear();
        lcd_gotoxy(0,0);
        sprintf(lcd_buf, "%d",sensor_input[3]);
        lcd_puts(lcd_buf);
        lcd_gotoxy(4,0);
        sprintf(lcd_buf, "%d",sensor_input[1]);
        lcd_puts(lcd_buf);
        lcd_gotoxy(8,0);
        sprintf(lcd_buf, "%d",sensor_input[2]);
        lcd_puts(lcd_buf); 
        lcd_gotoxy(0,1);
        sprintf(lcd_buf, "%d",sensor_input[7]);
        lcd_puts(lcd_buf);
        lcd_gotoxy(4,1);
        sprintf(lcd_buf, "%d",sensor_input[6]);
        lcd_puts(lcd_buf);
        lcd_gotoxy(8,1);
        sprintf(lcd_buf, "%d",sensor_input[5]);
        lcd_puts(lcd_buf);
       
       
        delay_ms(500); // 0.5초 지연
      };
}

 

이렇게소스코드를짜보았는데 수광부쪽테스트를해봐도 반응이없네요... 소스쪽문제일까요 ㅠㅠ?

JHJ
댓글 0

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

search
번호 분류 제목 글쓴이 조회 수 날짜
394 ECAD 아무거나 HOTorcad 16.3 설치 중 에러1 patto 3488 2012.09.29
393 ECAD Simulation oracad 라이브러리 질문입니다.1 웨라러브 347 2012.09.26
392 Allegro & OrCAD HOTmentor -> OrCAD PCB Editor TSP 555 2012.09.24
391 ECAD 아무거나 HOTorcad 설치 질문인데요 하하하하히 532 2012.09.17
390 ECAD 아무거나 orcad usb 관련 질문인데요 하하하하히 290 2012.09.08
389 PADS HOTPADS Verify design 질문이여2 미미이르 704 2012.09.08
388 Allegro & OrCAD HOTORCAD초보인데요ㅠㅠ 고수분들 ORCAD좀 질문할게요ㅠ1 하하하하히 2573 2012.09.02
387 PADS HOT■ PADS 기초 구조 문의3 막보드 1028 2012.08.29
386 Allegro & OrCAD HOTcadence allegro 크랙 파일 찾습니다.. 쉬리 811 2012.08.28
385 PADS pads logic 에러체크가 보고서가 안생깁니다.. (용장군님답변보고 수정)1 고기 394 2012.08.22
384 Allegro & OrCAD PCB editor는 빈페이지 같은거 없나요?1 아둘란 274 2012.08.17
383 Allegro & OrCAD HOTOrCAD 10.x version layout 관련 질문입니다..2 열혈공학도 603 2012.08.14
382 PADS HOTPads 9.3.1 설치파일 가지고 계신분 있으세요?ㅠㅠ1 돼지토끼 950 2012.08.13
381 ECAD 아무거나 HOTMentorGraphics (pads) 실행시 에러가 뜨는데요ㅠ3 하하하하히 2663 2012.08.06
380 PADS HOTPADS 9.3.1 셋팅창등 잘린모양으로 보이는 문제점 문의 건 sunbeelove 918 2012.07.27
379 PADS 회로 이동 관련 질문1 웨라러브 268 2012.07.26
378 ECAD Simulation HOTorcad 소자 edit 하려는데요^^2 웨라러브 510 2012.07.26
377 PADS pads20051 오라이 392 2012.07.07
376 PADS HOTpads20072 오라이 466 2012.07.05
375 PADS import_시 단위선택1 오함마 306 2012.07.04
Prev 1 ... 8 9 10 11 12 13 14 15 16 17 ... 32 Next
  • 인간의 교육은 태어났을 때부터 시작된다.
    - 루소
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.