|
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 |
24-03-2006, 10:31 AM | #11 |
Đệ tử 2 túi
Tham gia ngày: Feb 2006
Bài gửi: 31
: |
em có đoạn chương trình này!
// Period of square-wave (chu kì của một sóng vuông)
/*Variables for capture and interrupt*/ static volatile bit flag=0; static volatile unsigned int t1=0,t2=0; void capture_setup(void) { CCPR1L=0; CCPR1H=0; //Clear capture registers TMR1H=0; TMR1L=0; //Clear timer1 registers CCP1CON = 0b00000111; //Capture every 16th rising edge on CCP1(RC2) T1CON = 0b00100101; //Configure Timer1 module in timer mode with 1:4 prescale and start Timer1 CCP1IE=1; //Enable CCP interrupts TMR1IE=0; //Disable Timer1 interrupts PEIE=1; GIE=1; //Enable global interrupts } static void t1func(void) { t1=CCPR1L; t1+=(CCPR1H << 8); } static void t2func(void) { t2=CCPR1L; t2+=(CCPR1H << 8); t2-=t1; } static void interrupt isr(void) { if (CCP1IF && CCP1IE) //Clock line every 16th rising edge on CCP1IF, RC2, pin 13 on micro { CCP1IF=0; if(flag==1) //Save value to t1 on every even interrupt { t1func(); flag = 0; } else //Save value to t2 on every odd interrupt { t2func(); flag = 1; } } } Nhà mình có bác nào dảnh thì giải thích giúp em cái này cái: static volatile bit flag=0; static volatile unsigned int t1=0,t2=0; Khai báo biến kiểu này là kiểu gì thế? |
|
|
Similar Threads | ||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 26 | 07-05-2024 08:55 AM |
TUT về USART trong PIC16F877A | mafd_47a | MPASM | 11 | 04-05-2024 04:43 AM |
Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM |
Pic16f877a TỪ DỄ TỚi KhÓ | ntc | Cơ bản về vi điều khiển và PIC | 373 | 23-05-2009 10:24 PM |
CCS C for PIC16F877A | nhh | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 405 | 24-04-2008 12:00 PM |