![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 4 túi
Tham gia ngày: May 2007
Bài gửi: 81
: |
Thắc mắc về xung clock ngoài của TIMER1
Trong hầu hết các PIC, timer1 đều có 2 mode chọn nguồn xung clock (bit 1). Trong đó mode chọn xung nội (internal) thì cũng như các timer khác rồi. Còn mode chọn nguồn xung ngoài (external) thì có 2 chế độ nhỏ:
0 = Synchronize external clock input 1 = Do not synchronize external clock input Qua đọc và hiểu nôm na là đồng bộ/ bất đồng bộ với nguồn xung clock ngoài. Nhưng đồng bộ/ bất đồng bộ với cái gì và như thế nào thì... không hiểu. Bác nào đã nghiên cứu hay làm và rõ về tính năng này có thể giải thích giúp rõ hơn được không. Cảm ơn các bác trước! |
![]() |
![]() |
![]() |
#2 |
Nhập môn đệ tử
Tham gia ngày: Nov 2014
Bài gửi: 1
: |
timer cũng đang rối đây có ai giúp đỡ không
co ai cứu vớik hông?
đang cần băm xung như thến nayf mà chưa làm ra ai có cao kiếng giúp với đang định dùng 2 bộ timer mà chưa thành công timer0 ngắt sau 500ms vào ngắt sẽ set timer1 băm xung nhỏ ra khi timer0 ngắt tiếp sẽ set timer1=0 ai có cao kiến gì giúp với đang gấp |
![]() |
![]() |
![]() |
#3 |
Đệ tử 4 túi
Tham gia ngày: May 2007
Bài gửi: 81
: |
Đầu bài của bạn ko rõ ràng, nếu như bạn nói thì 2 timer sử dụng clock nội rồi. Cấu hình timer0 với chu kỳ ngắt 500ms. Cấu hình timer1 với chu kỳ ngắt nhỏ hơn. viết đại loại sẽ là (CCS):
Code:
#INT_TIMER0 void isr0() { static int1 togle; if(toggle) { toggle=0; disable_interrupt(INT_TIMER1) //read timer1 } else { togle=1; enasable_interrupt(INT_TIMER1) set_timer1(0); } } #INT_TIMER1 void isr1() { output_toggle(PIN_X); } |
![]() |
![]() |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 2
: |
Các bác cho em hỏi chút. Em dùng timer0 của pic 16f676 tạo xung 125khz tại chân C0 mà chưa được. không biết em tính toán có sai gì không. Mong các bác giúp em với. Đây là code của em:
#include <16F676.h> #device adc=8 #FUSES NOWDT //No Watch Dog Timer #FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) #FUSES NOPROTECT //Code not protected from reading #FUSES NOBROWNOUT //No brownout reset #FUSES MCLR //Master Clear pin enabled #FUSES NOCPD //No EE protection #FUSES PUT //Power Up Timer #FUSES BANDGAP_HIGH #FUSES RESERVED //Used to set the reserved FUSE bits #use delay(clock=20000000) #int_TIMER0 void TIMER0_isr(void) { output_toggle(PIN_C0); setup_timer_0(236); } void main() { setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); enable_interrupts(INT_TIMER0); enable_interrupts(GLOBAL); setup_timer_0(236); set_tris_c(0x00); while(true){ } } |
![]() |
![]() |
![]() |
#5 | |
Đệ tử 4 túi
Tham gia ngày: May 2007
Bài gửi: 81
: |
Trích:
http://www.picvietnam.com/forum/showthread.php?t=4015 |
|
![]() |
![]() |
![]() |
|
|