타이머 1을 표준 모드로 동작시키면서 출력 비교일치 A 인터럽트를 사용. 8개 서보모터 제어.


if(status ==0)

{

  RCPORT |= (0x01 << ServoNumber);  // PORT pin 0 High

  OCR1 += on_count[ServoNumber];  // 타이머1 표준모드 비교일치 레지스터 값 설정.


  status = 1;

}


else if(status == 1)

{

  RCPORT &= ~(0x01 << ServoNumber++);  // PORT pin 0~6 Low

  RCPORT |= (0x01 << ServoNumber);  //PORT pin 1~7 High

  OCR1 += on_count[ServoNumber];  // 타이머1 표준모드 비교일치 레지스터 값 설정


 if(ServoNumber >= 7)  status = 2;

 else status = 1;

}


else (status == 2)

{

  RCPORT &= ~(0x01 << ServoNumber);  // PORT pin 7 Low

  off_count = total_count - (on_count[0] + on_count[1] +.... +  on_count[7]);  //

  OCR1 = off_count;


  status = 0;

  if(ServoNumber >= 7) ServoNumber = 0;

}


'MCU > AVR' 카테고리의 다른 글

내부 풀업 저항 (I/O 포트)  (0) 2016.04.19
펌웨어와 임베디드  (0) 2015.05.29
[AVR] 데이터 손실  (0) 2013.12.12
[AVR] 카운트 계산법. TCNTn  (0) 2013.12.12
Datasheet 레지스터 보는 방법  (0) 2013.12.03
Posted by 나무길 :