회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
2427 자유주제 HOT게시판이 뜸해서..4 사탄 25549 2012.09.29
2426 자유주제 HOT정모 언제..5 세사조 24494 2012.08.23
2425 자유주제 HOT흔한 부부들의 대화........9 rightstone 35548 2012.08.23
2424 자유주제 HOT치열한 생존의 현장(2)5 견우7 1472 2012.08.21
2423 자유주제 HOT치열한 생존의 현장(1)1 견우7 1527 2012.08.21
2422 자유주제 HOT날씨가 사람을....잡네요4 아크마 23931 2012.08.03
2421 자유주제 HOT많이 덥네요.2 마이코 23855 2012.07.24
2420 자유주제 HOT안녕하세요! 기계항공 전공생입니다.4 Hermis 25406 2012.07.18
2419 자유주제 HOT신고 - 쪽지 광고글4 슈팅 23553 2012.07.17
2418 자유주제 HOT직장인입니다.1 은빛거리 22649 2012.07.14
2417 자유주제 HOT최신 공학에 대하여8 형길동 22888 2012.07.10
2416 자유주제 HOT쓸데없는 이야기4 빛나는 영혼 22861 2012.07.08
2415 자유주제 HOT성차별의 냄새는 어디든 지 나는 듯...4 견우7 22917 2012.07.07
2414 자유주제 HOT재미삼아 데빌 21006 2012.06.23
2413 자유주제 HOT정확치 않은 자료는 정보가치가 적다.4 견우7 21729 2012.06.23
2412 자유주제 HOT땜납시 안전보건자료입니다.6 견우7 22446 2012.06.23
2411 자유주제 HOT저항읽기 방법13 경나미 22449 2012.06.22
2410 자유주제 HOT납냄새의 기본9 경나미 21346 2012.06.22
2409 자유주제 HOT뭐를 해야 될지 모르겠지만...5 마니주리 19197 2012.06.12
2408 자유주제 HOT이런 카페를 이제야..3 또랑이 19817 2012.06.12
Prev 1 ... 9 10 11 12 13 14 15 16 17 18 ... 135 Next
  • 인간은 생각하는 것이 적으면 함부로 지껄인다.
    - 몽테스키외
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.