mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik QTouch Libraries


Autor: robbse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich bin gerade dabei mich in die QTouch Libraries von Atmel 
einzuarbeiten. Zur Verfügung stehen mir die neuesten SOftwarefiles sowie 
das EVK2080A mit ATmega88.

Ich möchte das Beispiel von Atmel um die Möglichkeit Daten per TWI zu 
senden ergänzen; im großen und ganzen funktioniert das auch, das einzige 
Problem ist der Rotor! Da habe ich wohl irgendwas nicht verstanden. Ich 
entnehme den Unterlagen von Atmel das ein 2 Variablen großes Array für 
die Rotor- bzw. Slider-Werte angelegt wird (je 16Bit). Aber den Rotor 
kann ich nicht abfragen, nur den Slider. Im QTouch Studio funktioniert 
alles einwandfrei, müsste also richtig konfiguriert sein. Hat da schon 
jemand Erfahrungen gemacht?

Anbei noch meine Funktion zur Hilfe:
void report_twi_data(void)
{
  uint8_t i;
  uint8_t sensor = 0;
  uint16_t value = 0;
  uint8_t qt_rotor_slider_select = 0;
  uint8_t twi_trials = 0;
  uint8_t state = *qt_measure_data.qt_touch_status.sensor_states;

  for(i=0; i<QT_NUM_CHANNELS; i++)
  {
    sensor = (sensor_config[i] & SENSOR_TYPE);
    switch(sensor)
    {
      case SENSOR_TYPE_KEY:
        value = state & DETECT;
        break;

      case SENSOR_TYPE_ROTOR:
      case SENSOR_TYPE_SLIDER:
        value = qt_measure_data.qt_touch_status.rotor_slider_values[qt_rotor_slider_select];
        qt_rotor_slider_select++;
        break;

      default: value = 0;
    }

    if(value != qt_previous_value[i])
    { 
      sensor = (sensor << 4) | i;
      qt_previous_value[i] = value;

      do
      {
        if(!report_sensor(sensor, value))
          twi_trials++;
        else 
          break;
      }while(twi_trials < TWI_TRIALS_MAX); 
    }
    state >>= 1;
  }
}

robbse

Autor: robbse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat denn noch keiner damit gearbeitet?
Ich möchte eigentlich nur mal sehen wie Ihr einen Slider und einen Rotor 
auslest...

Autor: Markus Marugg (skamper)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mal mit dem QT1106 gearbeitet. Ich kenn die Bibliothek nicht, da 
ich mit nem PIC gearbeitet habe. Ich hab mir da aber nur so'n billiges 
Progrämmchen dazu geschrieben. Was ist den genau dein Problem? Im 
zweiten Return-Byte meldet dir der Sensor ja was alles gedrückt ist, die 
7 Tasten und ob der SLider/Rotor berührt wird. Im Return-Byte 3 wird dir 
dann ja eine Absolute Position ausgegeben. (Auflösung ist ja 
einstellbar)

Ich hab dann einfach immer bei Slider-Aktivität die Position ausgelesen 
und gespeichert. Dann wieder ausgelesen und verglichen, bis eben Das 
Slider-Flag wieder low geht.

Ich weiss nicht in wiefern dir das weiter hilft. Aber schildere doch 
dein Problem mal etwas genauer, vllt kann ich ja helfen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.