Viết PWM chỉ với 8 bit? (Hẹn giờ 2)


7

Tôi có một vấn đề với thư viện Servo.

Tôi cần đọc tín hiệu PPM và tạo tín hiệu PWM của từng kênh. Vấn đề là PPM có độ phân giải cao hơn so với PWM nên tôi muốn sử dụng Timer1 16 bit để đọc PPM. Tuy nhiên, thư viện Servo ghi tín hiệu PWM cũng sử dụng Timer1.

Có thể tạo tín hiệu PWM với 8 bit / Timer2 không? Và có ai đó đã làm một ví dụ, hoặc một lời giải thích về, làm thế nào để làm điều đó?


1
Vâng, có ví dụ trong Hướng dẫn
putu

Có thể sử dụng thư viện servo như hiện tại và thực hiện đếm PPM với timer2 với một số xử lý tràn.
Dave X

Câu trả lời:


1

Có thể tạo tín hiệu PWM với 8 bit / Timer2 không?

Đúng. Tôi đã thực hiện nhiều cách tiếp cận, một số trên avrs và một số về các bức ảnh nhưng các nguyên tắc cơ bản là như nhau: https://dannyelectronics.wordpress.com/2017/02/18/dishing-mult Môn-sosos-off-a-pic-timer2- kéo dài /

bài đăng đó cung cấp một danh sách các liên kết đến các triển khai khác - một trong số đó tắt bộ đếm thời gian 2 trên avr.


1

Đây là một ví dụ đơn giản từ trang của tôi về bộ định thời sử dụng Timer 2 để tạo ra sóng vuông 50 kHz:

const byte LED = 3;  // Timer 2 "B" output: OC2B

const long frequency = 50000L;  // Hz

void setup() 
 {
  pinMode (LED, OUTPUT);

  TCCR2A = bit (WGM20) | bit (WGM21) | bit (COM2B1); // fast PWM, clear OC2B on compare
  TCCR2B = bit (WGM22) | bit (CS21);         // fast PWM, prescaler of 8
  OCR2A =  ((F_CPU / 8) / frequency) - 1;    // zero relative  
  OCR2B = ((OCR2A + 1) / 2) - 1;             // 50% duty cycle
  }  // end of setup

void loop()
  {
  // do other stuff here
  }

1

Có, thư viện Arduino Servo sử dụng Timer1 (và các loại khác, tùy thuộc vào bo mạch Arduino ) để quản lý FastPWM thông qua các ngắt phần mềm. Timer2 được sử dụng bởi chức năng tone (): hãy cẩn thận nếu bạn đang sử dụng chức năng đó.

Một ví dụ điển hình sử dụng Timer2 để tạo ra PWM là thư viện từ xa Hồng ngoại cho Arduino . Nếu IR_USE_TIMER2 được xác định, nó sẽ sử dụng Timer2. Mã khóa nằm ở IRremote.cpp nơi ISR ​​được quản lý.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.