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