- Labornetzteil AliExpress         
Ergebnis 1 bis 9 von 9

Thema: Einfache ISR mittels GCC (Anfänger)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    07.07.2011
    Ort
    nähe Bremen
    Alter
    35
    Beiträge
    14
    Gehe ich doch noch heute Abend mit einem kleinem Erfolgserlebnis zu Bett *freu* =)

    Wenn auch einwenig kompliziert geschrieben der Code, aber er funktioniert.

    Der nächste Schritt wird sein, meinen Infrarot-Empfänger auszuwerten. Aber damit mache ich morgen weiter.

    Vielen Dank an euch drei !!!


    Ps.: Auf den Teil mit der Störungsempfindlichkeit ... darauf wäre ich ja nie gekommen.

    Code:
    #define F_CPU 20000000UL
     
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <util/delay.h>
     
    volatile  uint8_t flag;
    
    int main(){
     
     	// #### IO`s etc. konfigurieren....
    	DDRB |= (1<<PB0);				// LED Output schalten...
    
    	
    	DDRA &= ~( (1<<PA0) | (1<<PA1) | (1<<PA2) | (1<<PA3) | (1<<PA4) | (1<<PA5) | (1<<PA6) | (1<<PA7)  );
    	PORTA |= (1<<PA0) | (1<<PA1) | (1<<PA2) | (1<<PA3) | (1<<PA4) | (1<<PA5) | (1<<PA6) | (1<<PA7);
    
    	flag = 0;
    
    
    	EICRA |= (1<<ISC00) | (0<<ISC01);		// Modus: "Any edge of INT0 generates asynchronously an interrupt request"
    	EIMSK |= (1<<INT0);				
    	
    
    	PCMSK0 |= (1<<PCINT7);					// PA7 als Interrupt-Pin....
    	PCICR  |= (1<<PCIE0);			
    
    	// ISR`s freigeben...
    	sei();
     
        while(1){
    		// Endlosschleife...
    		if(flag==1){
    			_delay_ms(3000);
    			PORTB &= (0<<PB0);	// LED AUS...
    			flag=0;
    		}
        }
    
    }
     
    
    ISR( PCINT0_vect ){
    	flag = 1;
    	PORTB |= (1<<PB0);	// LED AN...
    }

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.091
    Sehr schön, wenn es funktioniert. Wenn du mehrere Pins gleichzeitig konfigurieren willst (wie bei dir DDRA bzw PORTA) kannst du die kürzere Schreibweise mit Hexadezimalzahlen verwenden.


    Wie man das anwendet findet man im Internet.

    MfG Hannes

Ähnliche Themen

  1. CRP5: meine Erweiterung (vom Anfänger für Anfänger)
    Von loewenzahn im Forum Robby CCRP5
    Antworten: 11
    Letzter Beitrag: 21.03.2007, 18:37
  2. [ERLEDIGT] LED-Steuerung mittels PIC16F627 (blutiger Anfänger)
    Von rossi_2 im Forum PIC Controller
    Antworten: 7
    Letzter Beitrag: 09.12.2005, 19:34
  3. LCD Ansteurung mittels C
    Von semicolon im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 19.10.2005, 16:58
  4. Antworten: 3
    Letzter Beitrag: 14.08.2005, 13:21
  5. Anfänger: welches modul sollte man als anfänger nehmen???
    Von patti16 im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 04.01.2005, 08:44

Stichworte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress