mhh bis jetzt konnte ich nur Preise von über 300€ für den ADUC7026 finden und erhältlich ist er sogut wie nirgends.
So ich habe nun mal versucht das mit diesem 12 Bit hinzubekommen aber leider fehlen mir die Kenntnisse um es zu schaffen.
Ich habe mein normales Programm erstmal mit
do
loop until endwert = 16
ausgestatt dann hab ich erstmal eine Schleife die 16 mal zählt nur wie bekomme ich nun die Summe aus der sich in der Schleife befindlichen Meßwerte ?
Hier ist mein Quellcode :
Code:
$regfile = "m32def.dat"
$crystal = 16000000 'Quarzfrequenz
$baud = 38400
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Dim Endwert As Single
Endwert = 0
Do
Dim Volt_a As Single
Dim Volt_b As Single
Dim Volt_c As Single
Dim Volt_d As Single
Dim Volt_e As Single
Dim Volt_f As Single
Dim Volt_g As Single
Dim Volt_h As Single
Const Ref = 5 / 1023 'Für Berechnung
Dim A As Word
Dim B As Word
Dim C As Word
Dim D As Word
Dim E As Word
Dim F As Word
Dim G As Word
Dim H As Word
Config Porta = Input ' Port A als Anlogeingang konfigurieren
Start Adc '
A = Getadc(0)
B = Getadc(1)
C = Getadc(2)
D = Getadc(3)
E = Getadc(4)
F = Getadc(5)
G = Getadc(6)
H = Getadc(7)
'Bit Auflösung in Volt umrechnen
Volt_a = A * Ref
Volt_b = B * Ref
Volt_c = C * Ref
Volt_d = D * Ref
Volt_e = E * Ref
Volt_f = F * Ref
Volt_g = G * Ref
Volt_h = H * Ref
' Varible als String mit 6 Zeichen definieren
Dim Volt_a_2kommastellen As String * 5
Dim Volt_b_2kommastellen As String * 5
Dim Volt_c_2kommastellen As String * 5
Dim Volt_d_2kommastellen As String * 5
Dim Volt_e_2kommastellen As String * 5
Dim Volt_f_2kommastellen As String * 5
Dim Volt_g_2kommastellen As String * 5
Dim Volt_h_2kommastellen As String * 5
'STR() convert a numeric value into a string
Volt_a_2kommastellen = Str(volt_a)
Volt_b_2kommastellen = Str(volt_b)
Volt_c_2kommastellen = Str(volt_c)
Volt_d_2kommastellen = Str(volt_d)
Volt_e_2kommastellen = Str(volt_e)
Volt_f_2kommastellen = Str(volt_f)
Volt_g_2kommastellen = Str(volt_g)
Volt_h_2kommastellen = Str(volt_h)
' Fusing minmize to 2 decimal places
Volt_a_2kommastellen = Fusing(volt_a , "#.###")
Volt_b_2kommastellen = Fusing(volt_b , "#.###")
Volt_c_2kommastellen = Fusing(volt_c , "#.###")
Volt_d_2kommastellen = Fusing(volt_d , "#.###")
Volt_e_2kommastellen = Fusing(volt_e , "#.###")
Volt_f_2kommastellen = Fusing(volt_f , "#.###")
Volt_g_2kommastellen = Fusing(volt_g , "#.###")
Volt_h_2kommastellen = Fusing(volt_h , "#.###")
Print ";" ; Volt_a_2kommastellen ; ";" ; Volt_b_2kommastellen ; ";" ; Volt_c_2kommastellen ; ";" ; Volt_d_2kommastellen ; ";" ; Volt_e_2kommastellen ; ";" ; Volt_f_2kommastellen ; ";" ; Volt_g_2kommastellen ; ";" ; Volt_h_2kommastellen ; ";" ; "0.00" ; ";" 'Ausgabe aller 8 Analogausgänge + 1x Dummy da der letzte Wert im Excel durch den Zeilenumbruch nicht bearbeitet wird
Waitms 120 ' 120ms bis zur nächsten aktualisierung - Zu schnelle Aktualisierung -> Controller hängt sich auf
Loop Until Endwert = 16 'ende der Schleife
Das gesamte Programm macht nichts weiter als wie die ADC Werte aller 8 Ports meines ATMEGA 32 einzulesen und diese auf RS232 auszugeben und das leider nur in 8 Bit 
Gruß
Steffen
Lesezeichen