unsigned간 연산

2019. 8. 24. 15:21임베디드/ATmega128

unsigned간 독특한 연산이 가능하다. 큰수-작은수 = 양수가 나온다는 것은 공공연한 사실이다

그런데 작은수-큰수를 해도 그 차이가 양수로 나온다는 것이다. 따라서 이 점을 이용해서 인터럽트 내부에서 TCNT를 초기화하지 않아도 TCNT연산을 가능케 할 수 있다.

 

#include <stdio.h>

int main(void) {
	unsigned char a, b, c;
	a = 2;
	b = 250;
	c = a - b;
	printf("%d\n", c);
	return 0;
}

 

해당 연산의 결과는 8=(256+2)-250이 나온다