QTouch Libraries

Gast #1365700
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:
1
void report_twi_data(void)
2
{
3
  uint8_t i;
4
  uint8_t sensor = 0;
5
  uint16_t value = 0;
6
  uint8_t qt_rotor_slider_select = 0;
7
  uint8_t twi_trials = 0;
8
  uint8_t state = *qt_measure_data.qt_touch_status.sensor_states;
9

10
  for(i=0; i<QT_NUM_CHANNELS; i++)
11
  {
12
    sensor = (sensor_config[i] & SENSOR_TYPE);
13
    switch(sensor)
14
    {
15
      case SENSOR_TYPE_KEY:
16
        value = state & DETECT;
17
        break;
18

19
      case SENSOR_TYPE_ROTOR:
20
      case SENSOR_TYPE_SLIDER:
21
        value = qt_measure_data.qt_touch_status.rotor_slider_values[qt_rotor_slider_select];
22
        qt_rotor_slider_select++;
23
        break;
24

25
      default: value = 0;
26
    }
27

28
    if(value != qt_previous_value[i])
29
    { 
30
      sensor = (sensor << 4) | i;
31
      qt_previous_value[i] = value;
32

33
      do
34
      {
35
        if(!report_sensor(sensor, value))
36
          twi_trials++;
37
        else 
38
          break;
39
      }while(twi_trials < TWI_TRIALS_MAX); 
40
    }
41
    state >>= 1;
42
  }
43
}

robbse
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.