-         

Ergebnis 1 bis 3 von 3

Thema: Problem bei Eingabeverarbeitung

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.11.2006
    Ort
    Hamburg
    Alter
    25
    Beiträge
    384

    Problem bei Eingabeverarbeitung

    Anzeige

    Hi,

    ich hänge im Moment an einem eigentlich nicht schweren Problem fest. Ich will blos, dass nachdem ein Taster gedrückt wurde eine LED angeht. Das hab ich eigentlich schon oft geschrieben, aber irgendwie ist da der Wurm drin. Wahrscheinlich ist da ein blöder Denkfehler drin den ich nicht sehe. Drum bitt ich euch einmal den Code anzuschauen. Hier der Code:
    Code:
    //---------------------------------------------------------------------------
    // Title      :Kleines Test Programm
    // Date	      :16.02.08
    // Autor      :Erik Schröder
    //---------------------------------------------------------------------------
    #define F_CPU 3686400
    #include <avr\io.h>
    #include <stdlib.h>
    
    #define ON 1
    #define OFF 0
    
    void init (void)
    {
    	DDRB |=  (1<<PB1);		// PORTB.1 als Ausgang für die LED
    	DDRC  =  0b00000000;	// PORTC als Eingang
    	PORTC =  0b00000001;	// PORTC.0 Pull Up aktivieren
    }
    
    unsigned int Taster (void)
    {
    	unsigned int x;
    	x=PINC;		 // Taster einlesen
    	if (!(x&0x00))		// wenn auf masse gezogen (= taster gedrückt)..
    	{
    		return 1;     	//... 1 zurück geben
    	}
    	
    	else if (x&0x00) 	// wenn Pegel auf High 	...
    	{
    		return 0;		//.. 0 zurück geben
    	}	
    }
    
    void LED (int param)
    {
    	if (param==1)
    	{
    		PORTB |= (1<<PB1);   // PORTB.1 einschalten
    	}
    	else
    	{
    		PORTB &= ~(1<<PB1);	// PORTB.1 ausschalten
    	}
    }
    
    int main (void)
    {
    	
      init();				// initialisieren
        
       while (true) 
       {
    	   if (Taster())	//wenn taste gedrückt
    	   {
    	   		LED (ON);  	// LED einschalten
    	   }
    	   
    	   else 			//wenn nicht
    	   {
    	   LED (OFF);		// LED ausschalten
    	   }  	 
       }
    return 0;
    }
    mfg
    Erik

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    if (!(x&0x01))

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.11.2006
    Ort
    Hamburg
    Alter
    25
    Beiträge
    384
    argh da war der blöde Denkfehler ... Danke!

    mfg
    Erik

Berechtigungen

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