C언어에서...

어떤 기능이 잘 동작하고 있는지 감시하기 위해서 저는 종종 

static 변수를 사용합니다.


그 예를 한번  설명 드립니다.

다음과 같은 코드가 있습니다.  0.2초마다, 온도를 보고, 높은 온도가 되면 냉각 Fan을 돌립니다.

만약... 디버깅을 위해 print를 넣는다면 0.2초마다 프린트문이 나오는데, 

이 너무 빨리 자주  발생되는 디버깅은 ... 시스템을 느리게할 수 있고, 

프린트들이 추가로 더 들어갈 경우... 내용을 보기 매우 어려워집니다.


void main( void )

{

    int temperature =  0;

    while( 1 )

    {

        temperature = GetTemperature();

        if( temperature > 60)  // 온도가 60도를 넘으면, 냉각 Fan을 100 속도로 돌린다.

            SetFanSpeed( 100 ); 

        else  // 60도 이하에선 Fan을 Off ( 0 속도) 로 한다.

            SetFanSpeed( 0 );

        

      delay( 0.2); // 0.2 초 기다리고 다시 동작...

      printf(" Temp:%d \n", temperature);

    }

}


그래서 저는 아래와 같이 static 변수를 사용해서 디버깅을 합니다.

그러면... 보고자 하는 프린트문이... 아주 많이 찍히지 않고,

간간히 찍힙니다. 아래 빨간 내용 참고하세요.

특히나 CPU리소스가 작은 Embedded system에서는 아래와 같이

프린트문이 너무 많이.. 빨리.. 찍히지 않도록 하는 것이 중요합니다.


void main( void )

{

    int temperature =  0;

    while( 1 )

    {

        temperature = GetTemperature();

        if( temperature > 60)  // 온도가 60도를 넘으면, 냉각 Fan을 100 속도로 돌린다.

            SetFanSpeed( 100 ); 

        else  // 60도 이하에선 Fan을 Off ( 0 속도) 로 한다.

            SetFanSpeed( 0 );

        

      delay( 0.2); // 0.2 초 기다리고 다시 동작...

     {

         static int count = 0;

         if( (count%50 ) == 0)   // 0.2 초 * 50 = 10초에 한번 온도값을 본다.

         printf(" Temp:%d \n", temperature);

    count ++; // count 증가

     }

    }

}





Posted by 함지 고무함지

Auto Hot Key 라는 프로그램이 있습니다.


키보드 키를 특정 ... 동작하도록 하는 프로그램입니다.


사용 방법은. 프로그램 실행하고.   파일이름.ahk  라는 파일에

동작할 동작을 스크립트로 작성합니다.


다운로드 : https://autohotkey.com/


스크립트 예 : 

앞에 ; 를 넣으면 주석이 됩니다. (주석: 동작과 무관한 설명문)


; 1) 캡스락 키를 마우스의 왼쪽 클릭 동작이 되도록 

CapsLock::LButton


; 2) 개발용 디버깅 프린트 넣기

; F8 키를 누르면 다음 상용구가 타이핑됨   printf("%s:%d\n",__FUNCTION__,__LINE__); 

; + 는 Shift 키 {5} 는 숫자 5... 그러므로 % 가 나온다.

F8::

Send printf("

Send +{5}   

Send s:

Send +{5}

Send d 

Send \n",__FUNCTION__, __LINE__);

return


; F7키를 누르면 문자열 붙여넣기 ( 컨트롤 V )

F7::

Send ^v

return


; F6을 누르면 문자열 복사 ( 컨트롤 C )

F6::

Send ^c

return


Posted by 함지 고무함지

저는 5개월전에 중고로 아이폰 6를 구매했습니다.

액정이 들 떠있는 제품(원인은 바닥에 떨굼)을 저렴하게 샀습니다.


초반엔 사용에 문제가 없었느나, 요즘들어 간헐적으로 터치가 잘 안되는 문제가 있어서 조사를 해보고 있습니다.

증상은... 터치가 잘 되다가, 화면 잠금후 다시 켜면, 터치가 잘 안되어 수차래 터치하면 먹거나,

아애 터치가 안됩니다. 이경우 한두번 다시 폰을 잠궜다 다시 화면을 풀면 동작합니다.

그래서 아에 쓰지 못할 수준은 아니긴 합니다. ㅜㅜ


1 차 추정 ) 아이폰이 휘어 있습니다. 네.... 그 유명한 '밴드게이트' 입니다. 

아이폰 6는 알류미늄의 내구성이 약해서 잘 휘더라구요.

구매후 자가 분해 해서 살짝 다시 원상복귀시켰는데, 아마도 이런 과정에서 휘어졌다. 다시 펴지면서... 

터치 IC가 휘어진 메인보드에서 살짝 들 떠서, 터치 센싱을 잘 못하는 것으로 보입니다.

( 사진 출처 : http://appleeducate.com/index.php/2016/12/05/how-to-fix-touch-disease-on-the-iphone-6-plus/ )


2 차 추정 ) 아이폰의 액정과 메인보드 컨넥터 체결 문제

이것은 얼마전 사설 업체에서 배터리 교체후 좀 수리전문가님께 문의 드려서 체결을 잘 해주셨는데도

문제가 발생하니 저는 해당하지 않는 것 같습니다.

참고 사이트 : https://m.blog.naver.com/disk9017/220801095057


3차 추정 ) 페널 문제

패널을 교체해보면 알겠지만, 패널 가격이 비싸기에 무턱대고 진행할 수는 없네요.

그리고 패널에 금이 가거나, 화면 불량이 있지는 않아서 불량 원인으로의 가능성은 가장 낮아보입니다.



현재로는 1차 원인으로 보고 있습니다. ( 터치 IC 불량 또는 터치 IC 접촉 불량 )

이를 위해선 터치 IC를 열풍기로 가열하여 분리하고, 새로운 터치 IC를 납땜해야합니다.

이는 일반인이 열풍기, 납을 볼에 골고루 넣기 위한 스크린판, 그리고 아이폰 풀 분해 능력이 필요하므로

저는 절대 할 수 없네요.



해결책 1) 우선은 터치 IC수리 비용을 문의해보고 5만원 이하라면 진행하려 합니다. 

(이것이 가장 안전합니다. 초보자가 분해할 경우 분해과정에서 다른 부품이 손상될 수 도 있습니다.)

아이폰 6의 중고 가격이 요즘 20만원 이하 정도던데, 수리비용이 25%를 넘지 않는 선이였으면 좋겠네요.

( 추가 : 알아보니 10만원 이상이네요. 15 ~ 12 만원 사이... )


해결책 2) 아이폰의 터치 IC를 꾹 눌러두기 위해, 내부에 tape를 여러번 접은 것을 사이에 넣고  다시 조립하는 방법이 있습니다.

이 경우엔 중급 이상의 아이폰 분해 능력이 있어야 합니다. 전용 공구도 필요합니다.(별 랜치)

https://www.youtube.com/watch?v=yUUfTzagkpo


해결책 3) .... 많은 사람들이 원하는... ^^

새로운 아이폰을 구매하는 것입니다. 그러나... 새로나온 아이폰 8을 살까 했는데,

베터리가 부풀어 오르는 문제가 발생했네요. (애플 주가 하락 하려나?)

그래서 대안으로... 아마도 아이폰 7 중고폰을 구매하는 것이 방법일 것 같네요.

( 돈만 있다면 .... ㅜㅜ )


번외 해결책 4) ... ( 성공 )

( 10월 10일 오후 6시 추가)

iCloud 서비스를 아이폰에서 Off 하면 개선된다고 하는 사용자 보고도 있네요.

저도 일단 이것을 먼저 적용하고서, 4시간 이상 사용했는데, 문제가 감쪽같이 사라지네요. ㅎㅎ

그렇지만, 클라우드 서비스와 터치와의 연관성은... 전혀 이해가 되지 않네요. ...

하지만 분명, 클라우드 끄자마자 개선됨은 사실 같습니다.


( 10월 13일 오후 7시 추가 : 아직 까지 터치 불량이 없네요. 다행입니다. ^^)

출처 : http://www.clien.net/service/board/cm_iphonien/9238423




Posted by 함지 고무함지