AT90Usb ADC Kanalwahl spinnt

OP #1338881
Lesenswert?

Hallo mal wieder....
muss dieses Ding für die Diplomarbeit fit machen. ich benutze die 
Firmware von Salewski und möchte mit ADC0 und ADC1 eine Messung machen 
und über Endpoint 1 an den PC (QT4) schicken. funktioniert auch beim 
ersten mal:
Gleich nach Reset habe ich 255 bei 0,7V (ADC0) und 127 bei 0,3V bei 
2,6=1023 (ca.)(ADC1).
Wenn ich den Knopf nun ein zweites mal drücke, dann erhalte ich auf 
beiden Kanälen 124, immer... komisch.
In main() mache ich die Dummymessung und hier mal der Code vom Endpoint:
Mit einem Kanal hat noch alles wunderbar funktioniert und ich verstehe 
es mal wieder nicht.

UsbDevFillEP1FIFO(void)
{
  if UsbDevTransmitterReady()
  {
   uint8_t LB1;
   uint8_t HB1;
   ADMUX |=(0<<MUX0);
   ADCSRA |=(1<<ADSC);
   while (ADCSRA & (1<<ADSC)){}
   LB1=ADCL;
   HB1=ADCH;


   ADMUX |=(1<<MUX0);//|(0<<MUX1)|(0<<MUX2)|(0<<MUX3)|(0<<MUX4);
   uint8_t LB2;
   uint8_t HB2;
   ADCSRA |=(1<<ADSC);
   while (ADCSRA & (1<<ADSC)){}
   LB2=ADCL;
   HB2=ADCH;
   ADMUX |=(0<<MUX0);

    UsbDevClearTransmitterReady();
    UsbDevClearNAK_ResponseInBit();
    //UsbDevSelectEndpoint(1);
    UsbDevWriteByte(LB1);
    UsbDevWriteByte(HB1);
    UsbDevWriteByte(LB2);
    UsbDevWriteByte(HB2);
    UsbDevSendInData();
  }
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren