Solange es von MCS kein Update gibt, gibts nur ein Workaround, nämlich den GetAdc selber proggen.
Hier nochmal warum es mit dem Workaround MUX5 setzen auch nicht mehr geht (in ASM):
Code:
'W = Getadc(10)
+000000AA: 9100007C LDS R16,0x007C ADMUX
+000000AC: 7E00 ANDI R16,0xE0 Bits 0-4 löschen
+000000AD: 9110007B LDS R17,0x007B ADCSRB
+000000AF: 7F17 ANDI R17,0xF7 MUX5 löschen
+000000B0: 600A ORI R16,0x0A Kanalnr. !!
+000000B1: 9310007B STS 0x007B,R17 ADCSRB
+000000B3: 9300007C STS 0x007C,R16 ADMUX
+000000B5: 940E00C8 CALL 0x000000C8 GETADC aufrufen
....
' GetADC
+000000C8: 9170007A LDS R23,0x007A ADCSRA
+000000CA: 6470 ORI R23,0x40 ADSC setzen
+000000CB: 9370007A STS 0x007A,R23 ADCSRA
+000000CD: 9000007A LDS R0,0x007A ADCSRA
+000000CF: FC06 SBRC R0,6 Skip if bit ADSC in register cleared
+000000D0: CFFC RJMP PC-0x0003 Relative jump
+000000D1: 9170007A LDS R23,0x007A ADCSRA
+000000D3: 6470 ORI R23,0x40 ADSC setzen
+000000D4: 9370007A STS 0x007A,R23 ADCSRA
+000000D6: 9000007A LDS R0,0x007A ADCSRA
+000000D8: FC06 SBRC R0,6 Skip if bit ADSC in register cleared
+000000D9: CFFC RJMP PC-0x0003 Relative jump
+000000DA: 91800078 LDS R24,0x0078 ADCL
+000000DC: 91900079 LDS R25,0x0079 ADCH
+000000DE: 9508 RET Subroutine return
Bei jedem GetADC wird MUX5 gelöscht, und immer noch die falsche KanalNr bei > 7 mitgegeben !
Lesezeichen