Danke für den Hinweis mit JTAG jetzt geht es auch am C Port.
So werd mich heute mit dem AD Wandler beschäftigen mal sehen was mich da erwartet.
Schau mal in die Fuses beim
Beschreiben Deines Controllers,
da steht was von JTAG, das kannste
normalerweise deaktivieren
Vor den Erfolg haben die Götter den Schweiß gesetzt
Danke für den Hinweis mit JTAG jetzt geht es auch am C Port.
So werd mich heute mit dem AD Wandler beschäftigen mal sehen was mich da erwartet.
Hallo,
habe mich in den letzten Tagen mit dem AD Wandler beschäftigt.
Wollte nun mal einen Test durchführen. leider sind mir noh ein par Stellen unklar.
Wie Stelle ich im Bascom die Ref Spannung ein ich möchte die 5V als Ref. nutzen mach ich das in dieser zeile mit Singel? wenn nein für was steht es dann?
Config Adc = Single , Prescaler = Auto
Prescaler hab ich verstanden für was er da ist.
Wie muss ich den AREF pin beschalten zur zeit geht er bei mir ins leere?
So sieht der Rest von meinem programm aus.
Start Adc
Dim W As Word , Channel As Byte
Channel = 1
Do
W = Getadc(channel)
Cls
Lcd ; Channel ; W
Waitms 500
Loop
End
Im Display steht
1 1023
Was so viel bedeutet PA1 = 5V aber an dem Pin liegen keine 5V
Config Adc = Single , Prescaler = 64 , Reference = Avcc
Bedeutet er nimmt die Spannung die an Pin Ref anliegt , als Referenz.
Gento
So bin wieder ein Stück weiter aber es steht schon wieder ein problem im Weg.
.
.
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim W As Word , I As Word , A As Word , Channel As Byte
Channel = 0
Do
W = Getadc(channel)
I = W / 10
A = W / 200
Cls
Lcd "Kanal " ; Channel ; " " ; A ; "V"
Locate 2 , 1
Lcd I ; "% "
Incr Channel
If Channel > 7 Then Channel = 0
Wait 1.5
Loop
End
Das ist das Programm was ich jetzt geschrieben habe. An den Ports A0-A7
hängt jeweils ein Poti dessen Position nun als % Anzeige auf dem Display erscheint.
Jetzt wollte ich aber mir noch die Spannung anzeigen lassen dafür hatte ich "A" vorgesehen.
Wollte den Analogwert durch 200 teilen was dann der Spannung am Port entspricht, leider zeigt mein Display nur die Stelle vor dem Komma.
Ich schätze mal das es mit A und der Word zuweisung zu tun hat, es ist bestimmt nicht genügent Platz um eine dezimalzahl zu Speichern?
(Word = 16Zeichen die Zahl vor dem Komma braucht ja schon 4 bleiben nur noch 12)
Stimmt meine Vermutung?
Wie kann ich es machen das er mir die Spannung anzeigt mit 2 oder 3 Kommastellen dahinter?
OK habe das word gegen Singel getauscht dann zeigt er mir die komma stellen an.
So eine Frage konnte ich mir nun doch nicht beantworten.
Mein Programm ist soweit ganz gut es macht das was ich wollte es liest die Stellung der Poties und gibt mir diese im Display an.
Habe auch die % Funktion etwas Verändert.
Ein hacken hat die ganze Geschichte noch wollte die Spannungsangabe nur mit 2 Komma stellen machen.
Habe dazu Fusing benutzt
jetzt liest er aber nicht mehr die Kanäle aus also mcht er schon noch aber nur wenn alle auf 0 Stehen sobald der 1-7 einen wert über 0 haben spinnt das Programm der 0 Kanal funzt allerdings
Kann mir einer sagen warum
Code:$regfile = "m16def.dat" $crystal = 8000000 Config Lcd = 20 * 2 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.0 , Rs = Portc.1 Config Lcdbus = 4 Config Adc = Single , Prescaler = 64 , Reference = Avcc Start Adc Dim A As Word , B As Single , C As Word , D As Word , E As Single , F As String * 5 , Channel As Byte Channel = 0 Do A = Getadc(channel) ' AD Wert wird in das A word geladen B = 100 * A ' Zwischenrechen C = B / 1023 ' Ausgabe der Prozente D = C * 5 ' Zwischenrechnen um auf Volt zu kommen E = D / 100 ' Ausgabe der Volt F = Str(e) ' Runden auf 2 Kommastellen Cls Lcd "Kanal " ; Channel ; " " ; Fusing(e , "#.##") ; "V" Locate 2 , 1 Lcd C ; "% " Incr Channel If Channel > 7 Then Channel = 0 Waitms 5 Loop End
Lesezeichen