Forum: Mikrocontroller und Digitale Elektronik QTouch Libraries


von robbse (Gast)


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:
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

von robbse (Gast)


Lesenswert?

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

von Markus M. (skamper)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.