skyline0808
03-05-2013, 05:37 PM
Mình có viết code đọc encoder bằng timer0 của pic16f887 bằng CCS, k biết sai chỗ nào mà không chạy được. Có ai biết chỉ mình với
CODE CUA MINH NHƯ SAU:
signed int32 encoder1 = 0;
void interrupt_timer0(void)
{
if ( RA5 == 0 ) // chan B encoder 2 (RB5) xuong 0
encoder1 ++;
else encoder1 --;
}
Phần khởi tạo ngắt như sau:
TRISA = 0b111111; // PORTA là ngõ vào
PORTA = 0B000000; // khai báo trạng thái bang đầu của portA
setup_timer_0 (T0_DIV_2|T0_EXT_H_TO_L); // Timer0 is Counter, ngắt cạnh xuống
enable_interrupts(int_timer0);
set_timer0(0);
enable_interrupts(GLOBAL);
CODE CUA MINH NHƯ SAU:
signed int32 encoder1 = 0;
void interrupt_timer0(void)
{
if ( RA5 == 0 ) // chan B encoder 2 (RB5) xuong 0
encoder1 ++;
else encoder1 --;
}
Phần khởi tạo ngắt như sau:
TRISA = 0b111111; // PORTA là ngõ vào
PORTA = 0B000000; // khai báo trạng thái bang đầu của portA
setup_timer_0 (T0_DIV_2|T0_EXT_H_TO_L); // Timer0 is Counter, ngắt cạnh xuống
enable_interrupts(int_timer0);
set_timer0(0);
enable_interrupts(GLOBAL);