BASIC4MCU | 질문게시판 | 답변 : Atmega8 센서 및 타이머 코드 좀 봐주세요...
페이지 정보
작성자 master 작성일2022-05-31 13:34 조회1,290회 댓글0건본문
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 16000000UL
#include <util/delay.h>
#include <stdio.h>
#include <string.h>
//
volatile char sec=0;
volatile int ms=0,pulsecount=0;
volatile float calibrationfactor=4.5,flowrate=0;
//
ISR(TIMER1_COMPA_vect){ // 1ms
if(++ms>=1000){ ms=0; // 1sec
if(sec<6){
if(++sec>=6)PORTC=0x05; //6sec이후 // pump1(PC3) Off, pump2(PC2) on, valve(PC1) On
}
//
flowrate=pulsecount/calibrationfactor; //L/min
if(flowrate==0)PORTD|= 2; //PD1 High Output (Water flow signal)
else PORTD&=~2; //PD1 Low Output
pulsecount = 0;
}
}
//
ISR(INT0_vect){ pulsecount++; }
//
int main(void){
PORTC=0x08; DDRC=0x0F; // pump1(PC3) On, pump2(PC2) off, valve(PC1) Off
PORTD=0x04; DDRD=0x02; // PD2 Pull-up // PD1 출력
TCCR1B=0x0B; OCR1A=249; TIMSK=(1<<OCIE1A); // 1ms
MCUCR=1<<ISC01; GICR=1<<INT0; //INT0 falling edge
sei();
while(1){}
}
댓글 0
조회수 1,290등록된 댓글이 없습니다.