![]() |
![]() |
#2 | |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Trích:
a - Mỗi lần bấm phím Chọn kênh (CK), ADC sẽ được gán lần lượt từ kênh 0-7 rồi quay lại 0. Như vậy mỗi lần chọn bấm CK bạn gọi set_adc_channel((channel++)&7); b - Sau khi chọn kênh, bấm các phím Tăng (T) Giảm (G) sẽ thay đổi tần số lấy mẫu. Tần số lấy mẫu thực chất ko phải là thông số của module ADC, đây là số lần bạn thực hiện chuyển đổi ADC. Do đó bạn có thể đặt đoạn mã thực hiện chuyển đổi ADC trong ngắt timer1, sau đó thay đổi giá trị preset và prescaler để đạt được tần số lấy mẫu mong muốn. Cách đơn giản để thực hiện điều này là lập mảng chứa sẵn tất cả giá trị preset của timer1 mà bạn cần và mỗi lần bấm phím bạn gán giá trị tương ứng trong mảng. c - Phím xác nhận sẽ bật module ADC. Timer1 được chọn vì nó là timer 16 bit do đó mềm dẻo hơn khi tạo thời gian trễ. Ngoài ra bạn còn phải xử lý chống rung phím, thiết lập IO, ADC... |
|
![]() |
![]() |
|
|