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

Thema: RN-Control: Tasten abfragen per Interrupt

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #5
    Benutzer Stammmitglied
    Registriert seit
    15.11.2010
    Ort
    Oberbayern
    Alter
    40
    Beiträge
    38
    Zitat Zitat von Richard Beitrag anzeigen
    Du könntest deine Funktion GetButton() in einem Timer IRQ z.B. alle 50 ms aufrufen aber nur
    Code:
    Function GetButton() As Byte
        Local Ws As Word
    
        GetButton = 0
    
        Start Adc
        Ws = Getadc(7)
        Print Ws
    und
    Code:
    If Ws < 1023 Then
          Select Case Ws
             Case 390 To 400
                GetButton = 1
             Case 320 To 330
                GetButton = 2
             Case 250 To 260
                GetButton = 3
             Case 175 To 185
                GetButton = 4
             Case 95 To 105
                GetButton = 5
          End Select
        End If
    in der Hauptschleife auswerten. Noch besser den ADC beim Programmstart initialisieren/freigeben und im IRQ nur Ws = Getadc(7) aufrufen.Dann ws aber als Global deklarieren!

    Gruß Richard
    Hmm, interessant. Klingt zunächst wie die einfachere Möglichkeit. Allerdings wartet meine Hauptschleife auf eine Eingabe von der Konsole (UART). Somit würde die Auswertung von Ws dann unter Umständen aufgrund einer wartenden Input-Funktion nicht ausgeführt werden. Wäre die Auswertung in der ISR zu lang?

    Zur Info: Ich warte in der Hauptschleife auf Textinput aus der Konsole, um diesen Text dann mittels I2C-Bus über einen Portexpander PCF8574 an ein LCD-Display zu senden.



    Zitat Zitat von Searcher Beitrag anzeigen
    Hallo,
    der ADC kann über INT0 automatisch getriggert werden.

    Ich würd also folgendes versuchen: PA7 mit PD2 (INT0) mit einem Draht verbinden. Vorsicht beide Pins als INPUT konfigurieren, damit kein hoher Stom über die Portpins fließen kann.

    INT0 auf falling und rising edge konfigurieren.

    Interrupt Enable für ADC - damit bei Ende der Messung ein ADC Interrupt ausgelöst wird.

    ON ADC ISR_hole_ergebnis_ab

    in der ISR_hole_ergebnis_ab die ADCL und ADCH Register "manuell" (nicht mit GETADC) auslesen.

    Ob wegen des Spannungsteilers immer sicher bei allen Tasten ein INT0 ausgelöst wird müßte man ausprobieren.


    Gruß
    Searcher

    Ui, das klingt kompliziert. Was meinst Du mit "ADCL und ADCH Register manuell (nicht mit GETADC) auslesen"? Warum nicht mit GetAdc auslesen und wie funktioniert dieses manuelle Auslesen? Wäre für ein Beispiel dankbar.



    Danke Euch vielmals.
    Geändert von dariegel (25.06.2011 um 16:59 Uhr)

Ähnliche Themen

  1. Dreh-Encoder und Tasten gleichzeitig abfragen
    Von DerSchatten im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 13.05.2011, 20:16
  2. PWM Frage und Interrupt mit Tasten?
    Von Enterprise im Forum C - Programmierung (GCC u.a.)
    Antworten: 24
    Letzter Beitrag: 31.03.2008, 17:16
  3. Pin change Interrupt und Tasten entprellen
    Von Razer im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 16.05.2006, 10:35
  4. Tasten bei RN-control abfragen
    Von christian87 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 26.01.2005, 22:09
  5. Tasten am Rn-Control wie abfragen
    Von FHarry im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 1
    Letzter Beitrag: 30.12.2004, 09:17

Berechtigungen

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

LiFePO4 Speicher Test