TWELITE에서 시간이 걸리는 처리를 설명했습니다

3945 단어 TWELiteTWE-Lite
"전자 용지를 TWELITE에 연결"
https://qiita.com/nanbuwks/items/be4f8125b686079e74d6
구문을 사용합니다.
이것은 cbappColdStart에서 설명했고 시작할 때 한 번만 그리기 처리했습니다.
이번에는 임의의 타이밍으로 그려보자.
eper의 타이밍
ePaper를 그리려면 초 단위의 시간이 필요합니다.이전 코드는 그리기 전에 처리를 되돌려주지 않기 때문에 직접 사용하면 시간 문제가 발생할 수 있습니다.
TWELITE의 예법
"TWENET 액션 프로세스"
https://sdk.twelite.info/tweliet-net-api-jie-shuo/twenet-fur
표시:
  • cbAppColdStart
  • 다른 프로세서로
  • cbAppWarmStart
  • cbToCoNet_vMain
  • cbToCoNet_vRxEvent
  • cbToCoNet_vTxEvent
  • cbToCoNet_vNwkEvent
  • cbToCoNet_vHwEvent
  • cbToCoNet_u8HwInt
  • 네.그 중
  • cbAppWarmStart
  • 수면 회복 시 호출.
  • cbToCoNet_vRxEvent
  • cbToCoNet_vTxEvent
  • cbToCoNet_vNwkEvent
  • 무선 통신에서 호출되다.
  • cbToCoNet_vHwEvent
  • cbToCoNet_u8HwInt
  • 타이머 등 하드웨어 인터럽트에서 호출된 것입니다.
  • cbToCoNet_vMain
  • cbToCoNet입니다.vRxEvent 및 cbToCoNetvHwEvent 등의 작업이 완료되면 호출됩니다.
    이러한 호출 트리거는 FIFO 버퍼 메모리에 저장된 것으로 어느 정도에 정해진 시간 처리를 파괴할 수 있으니 이런 것들에 적는 것도 괜찮을 것 같다
    'TWELET NET API 해설'-'TWENET 운영 프로세스'-'주 순환 흐름'
    https://sdk.twelite.info/tweliet-net-api-jie-shuo/twenet-fur/meinrpufur
    중간
    "각 호출 함수에서 비교적 긴 시간을 처리하면 다른 처리가 정체되어 처리가 간결하게 유지됩니다."
    이런 견해가 있다.
    확실히 위의 cbToCoNet****Event의 대부분은 플러그인 프로세서, cbToCoNetvHwEvent 정보
    외곽 중단 처리의 지연 집행부.처리를 중단하면 호출됩니다
    여기에 방치하는 데 시간이 걸리는 처리도 괜찮을 것 같아요.
    cf., https://sdk.twelite.info/twelite-net-api-rifurensu/krubakku
    cbToCoNetvMain도 시간이 걸리는 처리를 넣을 수 있나요?그렇게 생각하지만.
    "전자 용지를 TWELITE에 연결"
    https://qiita.com/nanbuwks/items/be4f8125b686079e74d6
    의 코드 cbToCoNetvMain에 처리를 적어도 실행되지 않은 것 같습니다.
    그래서 이번 cbToCoNet은vHwEvent 내에 처리를 배치해 보았습니다.
    또 상기 이외의 방법도 있는 것 같지만 아직 검증되지 않았다.
    cf., ToCoNet SDK 브로셔
    https://mono-wireless.com/download/SDK/TWESDK_201404/ToCoNet_SDK_manual_20140404.pdf
    95페이지 "시스템 컴파일 이벤트"
    cbToCoNet_vRxEvent()
    실행 내용
    e-Paper 드로잉은 분당 한 번씩 수정됩니다.
    cbToCoNet_vHwEvent
    몇 가지 트리거를 통해 호출된 거예요.
    
        case E_AHI_DEVICE_TIMER0:
    
    에서 타이머에 정기적인 호출에 기반한 처리를 쓸 수 있습니다.
    이 정기 호출은 초당 64번의 호출인 것 같다.
    글로벌 변수:
    - 2 미처리
    -1 처리 중
    - 0 처리 완료
    전역 변수 epaperreemaincount:
    - 초당 저장 카운트다운
    남은 시간을 분 단위로 표시합니다.
    
    // epaper処理
    static int epapertimer0count=0;
    epapertimer0count++;
    if ( 0 != epaperremaincount &&  2 == epaperstatus ){
            epaperstatus=1;
            ePaperDispMin((epaperremaincount +59 )/ 60 );
            epaperstatus=0;
    }
    if (0 == ( epapertimer0count % 64 ) ){  // 1秒おき
        epaperremaincount--;
        if (  0 == epaperremaincount % 60 ){ // 1分おき
            if (( 0 <= epaperremaincount ) && (0 == epaperstatus)) { // カウントが0以上でなおかつ処理中でなければ
                epaperstatus=1;
                // ePaper書き込み
                ePaperInit();
                ePaperDispMin((epaperremaincount +59) / 60 );
                epaperstatus=0;
            }
        }
    } 
    
    순조롭게 진행되었다.

    좋은 웹페이지 즐겨찾기