[elektro] Válasz: PIC18F14K50 External INT0,INT1 szívás
Pávai Péter
pavaipeter at gmail.com
Sat Apr 20 17:58:06 CEST 2013
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]
More information about the Elektro
mailing list