HI... Ich arbeite mit einem PIC16F876. Leider funktioniert die Ansteuerung des ADC nicht ganz. Ich möchte das bei Vref- = 0.484V und Vref+ = 2.5 jeweils die Bitmuster 0x000 und 0x3FF einstellen. Der ADC wandelt schon etwas. Jedoch beachtet er Vref- nicht. D.h. bei 0V haben wir 0x000 und nicht bei 0.484V! Hat jemand Erfahrungen mit diesem PIC gemacht? Greets
Wie hast du ADCON1 eingestellt? Und ADCON0? An welchem Pin ist Vref+, Vref- und ADC Input? Gruß Fernando
hallo.. ich hab folgendes bitmuster: in adcon1=> 1000 1111 in adcon0=> 1100 0001 Vref+ => PIN 5 (RA3) Vref- => PIN 4 (RA2) analog In => PIN 2 (AN0) sollte meiner meinung nach eigentlich stimmen was meinst du??
Deine Konfigurationen stimmen. Ich hätte vielleicht noch vermutet das du die minimale Wandlungszeit nicht einhälst, aber du bekommst ja digitale Werte. Vielleicht liegt es an der Schaltung ? An der Initialisierung des A/D-Wandlers liegt es nicht, vielleicht bei der Abfrage der digitalen Werte? Versuch mal auf den 8-Bit Modus zu stellen. Gruß Fernando
danke erts mal für deine vorschläge.. an der schaltung sollte es eigentlich nicht liegen.. aber was meinst du genau mit auf 8bit modus schalten? meinst du vielleicht einfach im adcon1 das adfm-bit auf null schalten damit sich gleich die 8MSB in einem register (adresh) befinden? oder gibt es noch eine andere möglichkeit? andy
Also nach einigen Tests usw. habe ich rausgefunden, dass die AD Wandlung einwandfrei funktioniert! Das Problem ist nur, dass sie im Bereich von 0V-5V geht!! D.h. 0V = 0x000 und 5V = 0x3FF !! Obwohl wir Vref+ bei 2,5V haben und Vref- bei 0,484V !! Hat jemand eine Erklärung? Greets
Okay.. bin selber nochmals weiter gekommen! Durch Simulieren im MPLAB habe ich rausgefunden, dass ADCON1 nie geändert wird!! Deshalb kann ich den ADC auch nicht so konfigurieren, dass er Vref+ und Vref- miteinbezieht. der Befehl BSF ADCON0, 0 ist gleich wie BSF ADCON1, 0 !!! Keine Ahnung wieso er beides mal in ADCON0 speichert.. hat hier jemand eine Idee?
Typische PIC-Falle ADCON0 liegt in Bank0 und ADCON1 in Bank1. Dein Programm von gestern befindet sich bei der Initialisierung aber in Bank0. MfG Steffen
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.