ok ich hab´s probiert und es geht leider nicht.
Ist der Code einfach nur falsch ... ich verstehe es nicht :
Ich habe jetzt mal den Code zusammengeschrumpft um nur den ADC10 auszulesen.
Der Code ist so minimal und Übersichtlich das ich keine Fehler entdecken kann. Das einzigste wo ich mir unsicher bin ob ich den Analogeingang auch mit Config Portf = Input konfigurieren muß.
Code:
'Diese Anweisung setzt die Fusebits automatisch korrekt (Syntax $PROG LB, FB , FBH , FBX )
$prog , 255 , &B11011001 , 'Quarz an / Teiler aus / Jtag aus
$regfile = "m2560def.dat"
$hwstack = 82 '80
$framesize = 68 ' 64
$swstack = 68 '44
$crystal = 16000000 'Quarzfrequenz
'Definition USB
Config Com4 = 38400 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Open "com4:" For Binary As #4 'USB Port
'Analogport Definition
Config Portk = Input ' Port k als Anlogeingang konfigurieren 8 Analogports '
Config Portf = Input
Enable Interrupts
Dim Getdata As Word
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Analog Digitalwander Zuweisungen
Start Adc
Do
'hab ich noch zusätzlich eingetragen und auch ohne probiert aber ob das sinn ergibt ?
Adcsrb.acme = 1
Adcsrb.aden = 1
'ergibt das sinn ende
Adcsrb.mux5 = 1 ' ADC8-15
Getdata = Getadc(10)
Print #4 , Getdata
Print #4 ,
Waitms 500
Loop
End
Der Code gibt mir auf meiner RS232 immer 1021 schwankend bis 1023 aus den wirklichen Messwert macht er nie.
Lesezeichen