logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[c] [Atmega16] Problem z przerwaniem

czeladzian 22 Sty 2010 14:57 1263 2
REKLAMA
  • #1 7573941
    czeladzian
    Poziom 11  
    Witam mam problem z przerwaniem od INT0. Chciałbym aby przy wykryciu przerwania inkrementowała się zmienna a potem wysyłana na port. Przerwanie jest generowane poprzez przycisk zwierany do masy. Kod wygląda następująco:
    
    #define F_CPU 4000000UL //wew oscylator
    #include <avr/io.h>
    #include <stdlib.h>
    #include <util/delay.h>
    #include <avr/interrupt.h>
    #include "LCD.H"
    char a;
    
    ISR(INT0_vect) 
    {
      a++;
    };
    
    void init(void)
    {
    sei();
    MCUCR = ((1<<ISC01)|(0<<ISC00));  
    GICR = (1<<INT0);  
    
    a=1;
    DDRA=0xff;
    PORTA=0x00;
    DDRD=0x00;
    PORTA=0xff;
    } 
    
    void main(void)
    {
    init();
    for(;;)
    	{             
    	PORTA=a;
    	}
    }
    


    Ktoś ma jakiś pomysł czemu to nie działa?
  • REKLAMA
  • #3 7574039
    czeladzian
    Poziom 11  
    Jestem początkujący i nie słyszałem o tym, ale dziękuje. Załatwiło to sprawę.
REKLAMA