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();
}
}
Hallo, ADMUX |=(0<<MUX0); Darüber solltest Du mal nachddenken. Was ändert sich wohl am Inhalt von ADMUX, wenn man es mit 0 verodert? Gruß aus Berlin Michael
ok, danke... das war eigentlich ein dummer fehler. Markus
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.