타이머 때문에 arduino에 문제가 있습니다. 먼저 내가 알고있는 것을 설명하겠습니다. 일반적인 타이머로이 문제를 해결할 방법이 있는지 모르겠습니다. 때문에 타이머 기능 :타이머에서 원치 않는 토글 방지
1) 그들은 항상 0에서 시작,
2) 그들은 각각의 타이머는 두 비교 레지스터가)
3, 업 카운트 또는 UP-DOWN 카운트 타이머로 작동합니다.
내 프로젝트는 샘플링 된 시간 (기간)으로 작업하는 경우를 포함합니다. 즉 타이머는 샘플링 된 시간 동안 실행되며 비교 레지스터의 값을 토대로 TIOA 및 TIOB 출력이 전환됩니다. 업 모드에서 작업 중입니다. 이제 문제는 전체 기간 동안 제로 출력 (TIOA 및 TIOB)을 기대하는 비교 레지스터에 0이있을 때입니다. 그러나 타이머는 제로 비교를 위해 출력을 토글합니다. 즉, 항상 제로를 얻는 대신 시간 주기로 (2 * 마침표)가있는 구형파가 나타납니다. 다른 타이머에서도 이와 같은 공통적 인 문제가 있습니까?
혹시이 문제의 해결 방법을 제안 해 주시겠습니까?
미리 감사드립니다. 사용
#include <AdvaDueTC.h>
int default_clock = 1;
int RCcntS = 2187*2;
int period0 = 65536;
int a = 2180;
int b = 0;
void subrtn()
{
changeTC_TC3_Period(RCcntS); // loading sampler TC3 with RCcntS
changeTC_TC0_Period(RCcntS/2,a,b); // loading timer TC0 with RCcntT
}
void setup() {
setupTC3_Interrupt(period0,default_clock ,subrtn);//setup sampler interrupt
setupTC_TC0_Timing(period0, default_clock);
}
void loop() {
// put your main code here, to run repeatedly:
}
기능은 : 여기
TC3는 UP 모드 및 동작의 TC0 UPDOWN 모드이다. TIOA0 및 TIOB0은 토글 출력을 얻는 데 사용됩니다 (즉, REG_TC0_CMR0, ACPA, BCPB가 3으로 설정 됨). 여기서 TIOB0는 토글 링되며 전체 기간 동안 하나의 밸브 (0 또는 3.3v)에 머물고 싶습니다.
의견을 보내 주셔서 감사합니다.
평소와 마찬가지로 질문이 있으시면 지금까지 시도한 코드의 예를 제시해야합니다. 하나의 코드는 백만 가지 설명 가치가 있습니다! – zmo