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