[elektro] Válasz: PIC18F14K50 External INT0,INT1 szívás

potyo potyo.ada at gmail.com
Sat Apr 20 18:11:30 CEST 2013


Na ez jó volt, akkor estek be a további levelek, amikor elküldtem a választ
:-))


2013. április 20. 17:58 Pávai Péter írta, <pavaipeter at gmail.com>:

> Köszi ez volt a hiba:D
>
> Jövök egy csokival:-D
>
>
> 2013/4/20 Szucs 'Nemka' Laszlo <nemka at nemka.hu>
>
> > Töröld az érintett ANSEL biteket!
> >
> > Nemka
> > (mobilról küldve)Pávai Péter <pavaipeter at gmail.com> ezt írta:Üdv
> > Mindenkinek,
> >
> > 4 órája szívok egy tárgybeli PIC tök alap Interrupt engedélyezésével.
> > Valaki belefutott már?
> > Timer1 IT-je szépen beeseik ahogy kell neki.
> > A INT0 és INT1 az istenért sem akar menni. Én bénázok el valami?
> >
> > forrás:
> > //Timer 1
> > //Timer1 Registers Prescaler= 8 - TMR1 Preset = 3110 - Freq = 20.02 Hz -
> > Period = 0.049941 seconds
> > T1CON.T1CKPS1 = 1;   // bits 5-4  Prescaler Rate Select bits
> > T1CON.T1CKPS0 = 0;   // bit 4
> > T1CON.T1OSCEN = 1;   // bit 3 Timer1 Oscillator Enable Control bit 1 = on
> > T1CON.T1SYNC = 1;    // bit 2 Timer1 External Clock Input Synchronization
> > Control bit...1 = Do not synchronize external clock input
> > T1CON.TMR1CS = 0;    // bit 1 Timer1 Clock Source Select bit...0 =
> Internal
> > clock (FOSC/4)
> > T1CON.TMR1ON = 1;    // bit 0 enables timer
> > TMR1H = 0;          // preset for timer1 MSB register
> > TMR1L = 1;          // preset for timer1 LSB register
> > // Interrupt Registers
> >   INTCON = 0;           // clear the interrpt control register
> >   INTCON.TMR0IE = 0;    // bit5 TMR0 Overflow Interrupt Enable bit...0 =
> > Disables the TMR0 interrupt
> >   PIR1.TMR1IF = 0;      // clear timer1 interupt flag TMR1IF
> >   PIE1.TMR1IE  =   1;   // enable Timer1 interrupts
> >   INTCON.TMR0IF = 0;    // bit2 clear timer 0 interrupt flag
> >   INTCON.INT0IE = 1;   // External INT0 enable
> >   INTCON3.INT1IE = 1;   // External INT1 enable
> >   INTCON2.INTEDG0 = 0;  // Él detektálás 1 felfutó él 0 lefutó él
> >   INTCON2.INTEDG1 = 0;  // Él detektálás 1 felfutó él 0 lefutó él
> >   INTCON3.INT1IF=0;     //IF bit clear
> >   INTCON.INT0IF=0;      //IF bit clear
> >   INTCON.GIE = 1;       // bit7 global interrupt enable
> >   INTCON.PEIE = 1;      // bit6 Peripheral Interrupt Enable bit...1 =
> > Enables
> >
> >
> > IT sevices
> > void interrupt(){
> > //Timer1 INT
> > if (PIR1.TMR1IF == 1) // timer 1 interrupt flag
> >   {
> >     // Timer1 Interrupt - Freq = 20.02 Hz - Period = 0.049941 seconds
> >     LED1= ~LED1;      // Toggle PORTB bit1 LED
> >     PIR1.TMR1IF = 0;           // interrupt must be cleared by software
> >     PIE1.TMR1IE  =   1;        // reenable the interrupt
> >     TMR1H = 0;             // preset for timer1 MSB register
> >     TMR1L = 1;             // preset for timer1 LSB register
> >   }
> > //INT1 INT
> > if (INTCON3.INT1IF == 1) // timer 1 interrupt flag
> >   {
> >    LED2= ~LED2;      // Toggle LED
> >    INTCON3.INT1IF=0;
> >    }
> >
> > if (INTCON.INT0IF == 1) // timer 1 interrupt flag
> >   {
> >    LED3= ~LED3;      // Toggle LED
> >    INTCON.INT0IF=0;
> >    }
> >
> > }
> >
> > Port config:
> >    ADCON1=0x0f;
> >      TRISA=0b00000000;
> >      TRISB=0b11111111;
> >      TRISC=0b00000011;
> >      LATA=0;
> >      LATB=0;
> >      LATC=0;
> >
> >
> > Valaki lát benne hibát vagy tényleg ennyire béna vagyok?
> >
> > Peppe
> >
> > Köszi
> > -----------------------------------------
> >           elektro[-flame|-etc]
> > -----------------------------------------
> >           elektro[-flame|-etc]
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list