CCS - preruseni
Milos Sula
sula na rps.cz
Úterý Duben 30 13:15:59 CEST 2013
Tak vyřešeno,
na konci #INT_RB musí být
clear_interrupt(INT_RB5);
clear_interrupt(INT_RB4);
jinak se zacykluje
Miloš
Dne 30.4.2013 11:12, Milos Sula napsal(a):
> Zdravím,
> mám následující kousek kódu, bohužel se mi volá přerušení
> encoder_int() neustále dokola ikdyž se stav RB4 aRB5 nemění. Zjistil
> jsem, že se přerušení volá p při změně RB0, který je připojená na
> AD9850, přitom mám ale enable_interrupts(INT_RB5|INT_RB4)... ?
> Nevíte kde může být zrada ?
>
> #include <16F1847.h>
> #fuses NOWDT, INTRC_IO, NOPROTECT,NOBROWNOUT,NOMCLR,NODEBUG
> #use delay(clock=32M)
>
> #use fast_io(a)
> #use fast_io(b)
>
> #INT_RB
> void encoder_int(){
> .....
> }
>
> void main (){
> SET_TRIS_B(0b11111000); //RB0-RB2 AD9850
> SET_TRIS_A(0b11111110); //RA0 Buzzer
> port_b_pullups(TRUE);
> setup_oscillator(OSC_8MHZ | OSC_NORMAL | OSC_PLL_ON);//32MHz 4x8MHz
> setup_adc_ports( NO_ANALOGS );
> setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);
> ad9850_init();
> enable_interrupts(INT_RB5|INT_RB4);
> enable_interrupts(global);
> }
>
> díky
> Miloš
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
Další informace o konferenci Hw-list