- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 2 von 2

Thema: externer Interrupt

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    22.10.2007
    Beiträge
    23

    externer Interrupt

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    der Interrupt wird nicht ausgelöst, weil der Befehl sei(); das "I" Flag nicht setzt. In AVR Studio kann ich das verfolgen. Wenn ich aber


    Code:
    GICR |= (1<<INT0) | (1<<INT1);

    deaktiviere, dann wird der Befehl sei(); ausgeführt. Ich muss doch sowohl die Bits INT0 und INT1 und das "I"-Flag setzen. Aber die stören sich gegenseitig. Warum?


    Es wird der MEGA16 eingesetzt.


    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    
    
    #define F_CPU 7372800UL 			
    
    #include <util/delay.h> 
    
    
    ISR(TIMER0_OVF_vect)
    		
    	{
    	PORTA=0xdd;
    	}
    
    
    ISR(TIMER1_OVF_vect)
    
    	{ 
    	PORTA=0xaa;
    	}
    
    
    void init(void)
    
    {
     
            TCCR1B = _BV(CS11); 
    
    
    	GICR |= (1<<INT0) | (1<<INT1);		// Interrupt Enable
    
     
    	DDRD &= ~( ( 1 << PIND2 ) | ( 1<<PIND3) ); //INT0 und INT1 Eingang
    
    	
    	PORTD=_BV(INT0) | _BV(INT1); //Pullups aktibieren
    
    	sei();
    
    	DDRA = 0xff;
    
    }   
    
    
    int main(void)
    {
       
      uint8_t i = 0;
    
      init();  
      
    		for(;;)
    		{
    
        	        for(i=0;i<255;i++)
    			{
    		   	PORTA = i;		
             	_delay_ms(50); 
    			}
    
    		for(i=255;i>0;i--)
    			{
    		   	PORTA = i;		
             	_delay_ms(50); 
    			}
    		}
    		return 0;
    }

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    22.10.2007
    Beiträge
    23
    Hallo Leute,

    Kommando zurück!

    Habe beim Kopieren Codeschnipsel durcheinander geschmissen. Ich meinte
    nicht den TIMER Interrupt in der ISR, sondern den externen Interrupt.

    Also, ich checke noch mal durch.

    Und hier:

    PORTD=_BV(INT0) | _BV(INT1); //Pullups aktibier

    Klar!!!! Anfängerkrimskrams. Learning by doing. Muss man (noch) mit
    leben.



    Danke zunächst.

    Udo

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress