- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 18

Thema: Probleme mit Tasterschaltung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Gesperrt Öfters hier
    Registriert seit
    21.05.2008
    Beiträge
    25
    Habe den ISP Adapter abgesteckt leider ohne erfolg. Habe den Code nochmal über arbeitet und bereinigt.
    Code:
    #define F_CPU 10000000UL
    #include <avr/io.h>
    #include <util/delay.h>
    
    
    void PowerOn(){
    /**********Start Powerleds*******************/
      DDRB |= 1<<PB0;      /* set PB0 to output */
      DDRB |= 1<<PB1;      /* set PB1 to output */
      PORTB |= (1 << PB0); /* LED0 on           */
      PORTB |= (1 << PB1); /* LED1 on           */
    /********************************************/ 
    }
    
    
    void setPins(){
    /**************Input*************************/
      DDRB &= ~(1 << PB2); /* set PB2 to input*/  
      DDRB &= ~(1 << PB3); /* set PB3 to input*/
    /********************************************/
      
    /**************Ouput*************************/  
      DDRD |= 1<<PD6;      /* set PB6 to output */
      DDRD |= 1<<PD7;      /* set PB7 to output */
      PORTD &= ~(1<<PD6);  /* PD6  off          */                     
      PORTD &= ~(1<<PD7);  /* PD7  off          */
    /********************************************/
    }
    
    
    void eventhandler(){
    /**********Read Input PB2 and PB3*************/ 
      if(!(PINB & (1 << PB2)) ) {
        PORTD |= 1<<PD6;               /* LED on */
      }else {
        PORTD &= ~(1<<PD6);           /* LED off */
      }
      if(!(PINB & (1 << PB3)) ){
        PORTD |= 1<<PD7;               /* LED on */
      }else{
        PORTD &= ~(1<<PD7);           /* LED off */
      }
    }
    
    
    int main(void) {
      setPins();
      PowerOn();
      while(1) {
        eventhandler();
      }
      return 0;
    }

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    54
    Beiträge
    502
    Wie ist denn das Verhalten? Das Programm sagt mir nur, wie du es gern möchtest, aber nicht, was es bei dir macht.

    雅思特史特芬
    开发及研究

  3. #3
    Gesperrt Öfters hier
    Registriert seit
    21.05.2008
    Beiträge
    25
    Eigentlich soll wenn man den Taster die jeweilige led leuchten. Nur leider passiert nichts die Pegel beim AVR liegen bei 5 volt. Habe mittlerweile die Taster im verdacht, wenn ich den Taster drücke habe ich keinen Widerstand wenn ich den Taster nicht drücke habe ich auch keinen. Hatte aus der Tüte noch nen paar über.
    Eigentlich muss ich doch nen Riesen widerstand habe wenn ich ihn nicht drücke und wenn ich ihn drücke nen Maginal kleinen ?

  4. #4
    Gesperrt Öfters hier
    Registriert seit
    21.05.2008
    Beiträge
    25
    ich habe glaube ich habs taster waren anders gepolt als beschrieben

  5. #5
    Gesperrt Öfters hier
    Registriert seit
    21.05.2008
    Beiträge
    25
    Es geht die Taster waren es unglaublich

  6. #6
    Gesperrt Öfters hier
    Registriert seit
    21.05.2008
    Beiträge
    25
    so den code habe ich auch dar wo ich ihn hin haben möchte:
    Code:
    #define F_CPU 10000000UL
    #include <avr/io.h>
    #include <util/delay.h>
    
    
    int channel0;
    int channel1;
    
    
    void PowerOn(){
    /**********Start Powerleds*******************/
      DDRB |= 1<<PB0;      /* set PB0 to output */
      DDRB |= 1<<PB1;      /* set PB1 to output */
      PORTB |= (1 << PB0); /* LED0 on           */
      PORTB |= (1 << PB1); /* LED1 on           */
    /********************************************/ 
    }
    
    
    void setPins(){
    /**************Input*************************/
      DDRB &= ~(1 << PB2); /* set PB2 to input*/  
      DDRB &= ~(1 << PB3); /* set PB3 to input*/
    /********************************************/
      
    /**************Ouput*************************/  
      DDRD |= 1<<PD6;      /* set PB6 to output */
      DDRD |= 1<<PD7;      /* set PB7 to output */
      PORTD &= ~(1<<PD6);  /* PD6  off          */                     
      PORTD &= ~(1<<PD7);  /* PD7  off          */
    /********************************************/
    }
    
    
    void eventhandler(){
    /**********Read Input PB2 and PB3*************/ 
      if((PINB & (1 << PB2)) ) {
        channel0=1;
        channel1=0;   
      }
      
      if((PINB & (1 << PB3)) ){
        channel1=1;
        channel0=0;    
      }
      
      if(channel0==1){
        PORTD |= 1<<PD6;               /* LED on */
        PORTD &= ~(1<<PD7);            /* LED off */     
      }else if(channel1==1){
        PORTD |= 1<<PD7;               /* LED on */
        PORTD &= ~(1<<PD6);            /* LED off */
      }
    }
    
    
    int main(void) {
      setPins();
      PowerOn();
      channel0=1;
      while(1) {
        eventhandler();
      }
      return 0;
    }

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    54
    Beiträge
    502
    ich würde mal sagen, nicht die Taster sind schuld, wenn sie nicht richtig angeschlossen sind.
    Aber trotzdem schön, wenn es jetzt klappt.

    Gute Nacht
    sast

    雅思特史特芬
    开发及研究

Ähnliche Themen

  1. pwm Probleme
    Von fatjoe im Forum PIC Controller
    Antworten: 0
    Letzter Beitrag: 01.05.2007, 11:35
  2. Probleme mit DSL
    Von Panzer im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 08.07.2006, 15:02
  3. I2C Probleme
    Von tristate im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 27.10.2005, 23:17
  4. Probleme mit CAN
    Von ba4_philipp im Forum Elektronik
    Antworten: 14
    Letzter Beitrag: 25.10.2005, 23:05
  5. Probleme mit den AVR´s
    Von mcmonkey im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 23.02.2005, 19:21

Berechtigungen

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

Solar Speicher und Akkus Tests