Tính thời gian bằng nhau đọc để đo tần số

E

eng.7oka

Guest
Tôi đang sử dụng ADC của PIC18F452 để đọc một tín hiệu âm thanh của tần số khoảng 70 Hz. Mục tiêu của tôi là để có các bài đọc với một tỷ lệ ít nhất 10 lần và lưu trữ chúng trên một thẻ SD cho sau này sử dụng dữ liệu. Tôi đang sử dụng một OSC 20MHz. vấn đề của tôi là tôi cần phải nhận được các bài đọc với thống nhất một (và biết) lấy mẫu để có thể xử lý dữ liệu sau đó. Tôi nghĩ của việc sử dụng một bộ đếm thời gian và gián đoạn nhưng điều đó sẽ làm cho các bài đọc chậm .. bất kỳ ý tưởng làm thế nào để làm điều đó (biết chính xác thời gian giữa các bài đọc và đảm bảo nó ít nhất là 700Hz)?? Cảm ơn trước
 
Hi, Nếu bạn nhìn vào bảng dữ liệu sử dụng các 17,5 Chương của Trigger CCP2 (ít nhất là trong bản sao của tôi), bạn thấy rằng bạn có thể cho các Timer kích hoạt việc chuyển đổi trực tiếp mà không cần gọi một ngắt. Điều đó sẽ đảm bảo một thời gian ổn định (dao động ổn định như giấy phép của bạn) và tiết kiệm chi phí của cuộc gọi gián đoạn. Kể từ khi bộ xử lý không có DMA bạn vẫn phải sao chép kết quả chuyển đổi AD sau khi chuyển đổi hoàn thành. Kính trọng, Andreas
 
Tôi không chắc chắn tôi hiểu chính xác những gì bạn có ý nghĩa. làm bạn có nghĩa là tôi nên để CCP2 kích hoạt ADC mỗi khoảng thời gian được biết đến? và sẽ không lưu kết quả trước khi bắt đầu một chuyển đổi mới ảnh hưởng đến tính đồng nhất của thời gian?? Cảm ơn bạn đã trả lời của bạn
 
Vâng, đó là ý tưởng. Các bộ đếm thời gian trong CCP2 có thể cung cấp thời gian cho các mẫu cách đều nhau. Kể từ khi lấy mẫu tự được kích hoạt bởi bộ đếm thời gian bạn không có sự chậm trễ đến từ các phần mềm (để kích hoạt). Sau khi giá trị được lấy mẫu, bạn phải sao chép nó vào một vị trí khác mặc dù. Điều đó đã xảy ra trước khi chuyển đổi tiếp theo ... Tại sao việc sao chép các giá trị ảnh hưởng đến tính đồng nhất của thời gian? Nếu các mẫu ADC vào các thời điểm như 0ms, 14.2ms, 18.4ms nó không quan trọng khi bạn sao chép các giá trị Inbetween các khe thời gian. Các giá trị được lấy mẫu và sẽ không thay đổi cho đến khi lấy mẫu tiếp theo là kích hoạt.
 
Ok .. Kiểm tra logic này đơn giản cho vấn đề này: vòng lặp cho mẫu n: đặt ccp2 kích hoạt cửa hàng A / D kết quả trong một vòng lặp kết thúc mảng Bây giờ thời gian giữa các mẫu là thời gian cần thiết để điền vào timer1 hoặc 3 hoàn toàn?
 

Welcome to EDABoard.com

Sponsor

Back
Top