자꾸 문의 드려 죄송합니다.
하나만 더 여쭙겠습니다.
#include <iom8.h>
#include <ina90.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define CR 0x0d
#define BV(bit) (1<<(bit))
#define cbi(reg,bit) reg &= ~(BV(bit))
#define sbi(reg,bit) reg |= (BV(bit))
#define EERIE 3
#define EEMWE 2
#define EEWE 1
#define EERE 0
#define BIN 0x56
#define DEC 0x57
char count_buf[8];
void Serial_init(void)
{
DDRD = 0xfe;
UCSRA = 0x00;
//UCSRB = 0x18;
UCSRB = 0x98;
UCSRC = 0x06;
UBRRH = 0x00;
UBRRL = 0x0b;
}
void TX_Data(unsigned char data)
{
while(!(UCSRA & 0x20));
UDR = data;
}
void TX_String(char *p)
{
while(*p != '\0') TX_Data(*p++);
}
void main(void)
{
int count = 0;
int starttime = 0;
int endtime = 0;
DDRB=0xf3;
DDRD=0xfe;
DDRC =0xc0;
PORTB =0;
MCUCR = 0x0f;
GICR = 0xc0;
Serial_init();
count = (endtime - starttime)/1000;
count_buf[count];
TX_String(count_buf);
_SEI();
while(1){}
}
#pragma vector = INT0_vect
__interrupt void INT0_interrupt(void)
{
int starttime = 0;
starttime = TCNT0;
}
#pragma vector = INT1_vect
__interrupt void INT1_interrupt(void)
{
int endtime = 0;
endtime = TCNT0;
}
이렇게 프로그래밍 하면 하이퍼터미널에서 볼 수 잇을까요?
잘못된 부분이 많겠지만 ... 알려주시면 감사드리겟습니다.
1.
count = (endtime - starttime)/1000; 는
while(1) 안에 있어야 계속 체크할 수 있을거 같은데요...
2.
while(1)
{
// endtime, starttime이 모두 0 이 아닐때만 송신
// 즉, INT0, INT1 이 인터럽트 걸렸을 때만 실행..
if( 0 != endtime && 0 != starttime)
{
count = (endtime - starttime)/1000;
TX_String("RX OK.");
starttime = endtime=0; // 작업을 끝냈으니 새로운거 받을 준비를 하자.
}
}