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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.