LuckyFace's Systems Lifescience
int, unsigned long 본문
//// Task related variables
int nTrial = 200; // total trial number
int nCue = 2; // cue number (1, 2, 4)
unsigned long valveDuration = 130;
unsigned long duration[7] = {500000,1000000,500000,500000,130000,2370000,2000000}; // epoch duration
unsigned long rewardProbability[4] = {100, 0, 100, 0}; // unit: percent
unsigned long rewardAmount[11] = {0, 30000, 42000, 53000, 64000, 77000, 86000, 92000, 100000, 107000, 116000};
unsigned long rewardDuration = 42000;
unsigned long punishDuration = 10000;
int state = 9;
// state 0: base
// state 1: cue
// state 2: delay 1
// state 3: delay 2
// state 4: reward
// state 5: intertrial interval
// state 9: stand-by
int select = 0; // serial input (w for water, t for trial number, s for start, e for end...)
int iTrial = 0; // current trial
int inivalveDuration = 100; // water valve open duration
int itiDuration = 2;
int delayDuration = 1;
int prob = 0;
int cueChoice = 0;
int cue = 0; // current cue
int prevCue = 0; // previous cue
int nRepeat = 1; // current repeat number
const int maxRepeat = 3; // maximal repeat number
int addCue = 0;
int ratio = 1;
ARDUINO에서 변수 설정하는 방법에는 크게 4가지 방법이 있다고 한다.
1. int
2. unsinged int
3. long
4. unsigned long
차이를 두자면 int는 2바이트 메모리, long은 4바이트 메모리를 사용한다고 함.
간단히 그 차이를 표현해보자면
<네이버 잼두이노 블로그 펌>
따라서 6만이 넘는 큰 수를 정의할때는 (양수인 경우) unsigned long을 쓰는 것이 바람직 하고, 그에 비해 작은 정수를 정의하는 데는 int를 쓰는게 더 낫다고 할수 있다. 귀찮은데 다 long 함수로 넣으면 안되나? 이럴수 있지만 쓰는 메모리를 최소하는 것이 좋기 때문에 각각 범위에 맞게 사용하는 것이 좋겠다.
추가로 const int maxRepeat = 3
이렇게 정의된 함수는 추후에 값을 바꾸지 못한다.
특이한 점은
unsigned long duration[7] = {500000,1000000,500000,500000,130000,2370000,2000000}
이렇게 정의된 함수다. matlab에서 cell형 함수 지정할때랑 비슷한데 함수뒤에 [7] 이렇게 숫자를 지정한 것은 왜일까?
'Systems Neuroscience > ARDUINO functions' 카테고리의 다른 글
Serial 통신(2) (0) | 2017.04.19 |
---|---|
void setup과 Serial 통신 (0) | 2017.04.18 |
boolean and String, char (0) | 2017.04.18 |
#define (0) | 2017.04.18 |
ARDUINO function 정리 (0) | 2017.04.18 |