![]() |
|
Tài trợ cho PIC Vietnam |
||||||||
| PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
|
Ðiều Chỉnh | Xếp Bài |
|
|
#5 | |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2005
Bài gửi: 117
: |
Trích:
main: - KHởi tạo cho các Port IN/OUT tương ứng - Khởi tạo Timer(chọn chế độ chạy clock) + ngắt Timer, thời gian timer chạy đến lúc ngắt chính là thời gian Led sáng. ví dụ 2ms - Khởi tạo các biến - Cho phép ngắt timer chạy - main loop: thực hiện các công việc khác theo yêu cầu lập trình Ngắt timer: - tắt Led - Gửi Data của Led kế tiếp - Cho Led sáng - Reset timer - Thoát Về cơ bản như vậy, còn đây là sample code: Code:
#int_RTCC
void RTCC_isr()
{
Num_Timer0_INT++;
// Printf("\nINT %d",Num_Timer0_INT);
if (Num_Timer0_INT == 13) // 10*13.1ms ~ 500ms. Update Led
{
disable_interrupts(INT_RTCC);
ClearLed(); // Tat Led
Send_595(led7[DispBuffer[NextLed]]); // Gui data
SelectLed(NextLed);// Cho Led sang
Num_Timer0_INT = 0;
set_timer0(0); // Reset timer
enable_interrupts(INT_RTCC);
}
}
Code:
void main()
{
// Khoi tao In/Out
delay_ms(100);
output_a(0xff);
set_tris_a(0b011110001);
set_tris_b(0x03);
output_low(PIN_B7);
// Setup Analog
setup_adc_ports(sAN0);
setup_adc(ADC_CLOCK_INTERNAL); // ADC_CLOCK_INTERNAL
// Setup Timer
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); // Timer 0, overflow 204uS @ 20MHz
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
// Cho phép ngắt
enable_interrupts(INT_RTCC);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
while (TRUE)
{
// Chương trình xử lý chính
} // End of While
}// En dof Main
__________________
CallerID, Ethernet-RS232, PICWEB, Cảnh báo BTS Giải pháp toàn diện giám sát - điều khiển từ xa qua GSM/Internet 0988006696 http://linhnc308.blogspot.com linhnc308@gmail.com |
|
|
|
|
|
|