- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 5 von 5

Thema: "Anschubser" für 4x4 Keypadauswertung gesucht

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    74
    Beiträge
    1.175
    Blog-Einträge
    1
    Danke vorerst !
    ich werde es auch in einer Schleife machen..nur hatte ich beim ersten Versuch nur negative Aussagen, es wurden alle Tasten bestätigt obwohl keine gedrückt war. Darum habe ich das obere Listing zum Test geschrieben.
    Nun muss ich sehen das ich immer die benutzte Taste(Row/Col) indentifizieren kann, also richtig auswerten kann.. Das ist mein Code jetzt, geht immer noch nicht, LED an BIT 1+2 sowie 4+5 leuchten ständig...Die Tastenauswertung zeigt den Wasserstand Honulullu... aber nix logisches
    Code:
    /* ========================================================================== */
    /*                                                                            */
    /*  4x4 Keypad-Abfrage                                                        */
    /*                                                                            */
    /* ========================================================================== */
    
    #include<avr/io.h>
    #ifndef F_CPU
    #define F_CPU 1600000UL
    #endif
    #include<util/delay.h>
    #include <avr/io.h>
    
    
    /* ========================================================================== */
    /*     PC0...PC3  = Row1...Row4       Taste gedrückt = LOW Pegel              */
    /*                                                                            */
    /*     PC4...PC7  = Col4...Col1       über 5k6 R Schutzwiderstand             */
    /*                                                                            */
    /* ========================================================================== */
    int main(void)
    {
    //DDR PortD als Ausgabe für LED Auswertung
    DDRD  = 0xFF;
    //alles auf HI = LED OFF(STK500)
    PORTD = 0xFF;
    //INPUT/OUTPUT Einstellen  für PORTC
    DDRC  = 0b11110000; // PC0..3 Input PC4..7 Output
    PORTC = 0b00001111; // PullUpR an PC0..3
    while (1)
    { //PORTD = 0xFF; //Alles wieder OFF (LED= LOW aktiv)
    // Voreinstellungen je Col Abfrage
    //PORTC = 0b01111111 //Col 1 abfragen
    //PORTC = 0b10111111 //Col 2 abfragen
    //PORTC = 0b11011111 //Col 3 abfragen
    //PORTC = 0b11101111 //Col 4 abfragen
        
            PORTC = 0b01111111; //Col 1 abfragen  PINC 7 = LOW
            
            if (!(PINC & (1 << PC3)))  PORTD=0b11111110;
            if (!(PINC & (1 << PC2)))  PORTD=0b11111101;
            if (!(PINC & (1 << PC1)))  PORTD=0b11111011;
            if (!(PINC & (1 << PC0)))  PORTD=0b11110111;
            
            PORTC = 0b10111111; //Col 2 abfragen   PINC 6 = LOW
    
            if (bit_is_clear(PINC, 3)) PORTD=0b11110111;
            if (bit_is_clear(PINC, 2)) PORTD=0b11101111;
            if (bit_is_clear(PINC, 1)) PORTD=0b11011111;
            if (bit_is_clear(PINC, 0)) PORTD=0b10111111;
    
            PORTC = 0b11011111; //Col 3 abfragen   PINC 5 = LOW
    
            if (bit_is_clear(PINC, 3)) PORTD=0b11111110;
            if (bit_is_clear(PINC, 2)) PORTD=0b11111101;
            if (bit_is_clear(PINC, 1)) PORTD=0b11111011;
            if (bit_is_clear(PINC, 0)) PORTD=0b11110111;
    
            PORTC = 0b11101111; //Col 4 abfragen    PINC 4 = LOW
    
            if (bit_is_clear(PINC, 3)) PORTD=0b11110111;
            if (bit_is_clear(PINC, 2)) PORTD=0b11101111;
            if (bit_is_clear(PINC, 1)) PORTD=0b11011111;
            if (bit_is_clear(PINC, 0)) PORTD=0b10111111;
        }
    
        return 0;
    
    }
    Nochmals zum Verständnis, die gedrückte Taste zieht den PINC0..3 Eingang auf LOW dann soll der PIND0..7 Ausgang auf LOW.
    Es gibt 4x4 versch Auswertungen je welcher PINC4...7 auf LOW ist und welcher PINC0..3 auf LOW gezogen wird durch die Taste.

    Hat wer einen Rat..ich bin im Gedanken-Dschugel angekommen

    mfg
    Gerhard
    Geändert von oderlachs (06.06.2014 um 09:27 Uhr)
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

Ähnliche Themen

  1. "Fachbezeichnung" gesucht für 4-pol. Buchse
    Von oderlachs im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 2
    Letzter Beitrag: 14.04.2014, 14:07
  2. [ERLEDIGT] Erklärung für "Offset" gesucht
    Von HM im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 30
    Letzter Beitrag: 22.07.2011, 12:37
  3. Idee für "Teleskoparm" gesucht...
    Von Willa im Forum Mechanik
    Antworten: 8
    Letzter Beitrag: 21.07.2011, 19:54
  4. Programiersprache für "Robotorartiges Projekt" gesucht
    Von Involut im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 13
    Letzter Beitrag: 28.05.2011, 14:33
  5. Ursache für ATtiny13 "Massensterben" gesucht
    Von radbruch im Forum AVR Hardwarethemen
    Antworten: 13
    Letzter Beitrag: 20.12.2007, 00:28

Berechtigungen

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

LiFePO4 Speicher Test