정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

TCS230 컬러센서 모니터플로우 오류좀 봐주세요~~ㅠㅠ
이재환 | 2016-03-17

프로그램은 예제로 돌렸습니다 우노를 사용하였구요

int s0=6,s1=5,s2=4,s3=3;

int out=2;

int flag=0;

byte counter=0;

byte countR=0,countG=0,countB=0;

 

 

void setup()

{

Serial.begin(115200);

pinMode(s0,OUTPUT);

pinMode(s1,OUTPUT);

pinMode(s2,OUTPUT);

pinMode(s3,OUTPUT);

 

}

void TCS()

{

flag=0;

digitalWrite(s1,HIGH);

digitalWrite(s0,HIGH);

digitalWrite(s2,LOW);

digitalWrite(s3,LOW);

attachInterrupt(0, ISR_INTO, CHANGE);

timer0_init();

 

}

void ISR_INTO()

{

counter++;

}

void timer0_init(void)

{

TCCR2A=0x00;

TCCR2B=0x07; //the clock frequency source 1024 points

TCNT2= 100; //10 ms overflow again

TIMSK2 = 0x01; //allow interrupt

}

int i=0;

ISR(TIMER2_OVF_vect)//the timer 2, 10ms interrupt overflow again. Internal overflow interrupt executive function

{

TCNT2=100;

flag++;

if(flag==1)

{

countR=counter;

Serial.print("red=");

Serial.println(countR,DEC);

digitalWrite(s2,HIGH);

digitalWrite(s3,HIGH);

}

else if(flag==2)

{

countG=counter;

Serial.print("green=");

Serial.println(countG,DEC);

digitalWrite(s2,LOW);

digitalWrite(s3,HIGH);

}

else if(flag==3)

{

countB=counter;

Serial.print("blue=");

Serial.println(countB,DEC);

Serial.println("\n");

digitalWrite(s2,LOW);

digitalWrite(s3,LOW);

 

}

else if(flag==4)

{

flag=0;

}

counter=0;

}

void loop()

{

TCS();

while(1);

}

 

그리고 네모칸이 무한반복됩니다.

ed=1
e4
blue=13


red=32
31
green=218
blue=12


red=25
green=218
blue=15


red=22
green=216
blue=14


red=27
green=214
blue=13


red=32
g�o��;��)�������/��� �����//��!/��+���/��������/'��)��;�

이전글   |    아두이노 gps 질문 2016-03-17
다음글   |    Dot Matrix 소스 방법 질문이요!! 2016-03-17