Forum: Mikrocontroller und Digitale Elektronik Pic16f876 ADC anfängerfrage


von Anfänger (Gast)


Lesenswert?

hallo zusammen,

ich hab absolut noch keinen plan von pic-programmierung, ich möchte 
gerne 2 analoge werte, von sensoren, über pic-eingänge digitalisieren 
und dann in meinem programm verarbeiten und ausgeben.
die eigentliche berechnung und ausgabe habe ich so hinbekommen, aber das 
einlesen der werte bekomm ich nicht hin.
am liebsten würde ich die werde mit nem 8bit wandler wandeln, aber wenn 
ich das richtig verstanden habe hat der pic16f876 einen 10 bit adc.

eigentlich hätte ich gerne mal eine beispiel-programmierung, wie man an 
2 eingängen gleichzeitig 2 signale wandeln kann.
es wäre sehr nett wenn ihr mir da weiterhelfen könntet.

von Meister E. (edson)


Lesenswert?

Hallo Anfänger,

>die eigentliche berechnung und ausgabe habe ich so hinbekommen, aber das
>einlesen der werte bekomm ich nicht hin.

Die Berechnung (von was auch immer) und die Ausgabe haben ja mit dem 
Wandler zunächst nichts zu tun.

>am liebsten würde ich die werde mit nem 8bit wandler wandeln, aber wenn

Das kannst du ohne Probleme machen.

>ich das richtig verstanden habe hat der pic16f876 einen 10 bit adc.

Na, und? Wenn dich eh nur die höherwertigen 8Bit interessieren...

>eigentlich hätte ich gerne mal eine beispiel-programmierung, wie man an
>2 eingängen gleichzeitig 2 signale wandeln kann.

Gleichzeitig geht bei (diesem) uC schon mal gar nichts, schnell 
hintereinander ist die Lösung.

>es wäre sehr nett wenn ihr mir da weiterhelfen könntet.

Versuchen kann man es ja mal.

Gruss,
Edson

von Mark (Gast)


Lesenswert?

Ich geb dir mal einen ganz heißen Tip:

sprut.de

Die Seite ist wirklich perfekt für Anfänger. Da werde diese Sachen 
haargenau erklärt - und zwar auf deutsch.

Hier mal ein Beispiel zum ADC:
http://sprut.de/electronic/pic/grund/adc.htm

Als Anfänger sollte man in Assembler sowieso mal bei 8-Bit Variablen 
bleiben.
Oder programmierst du mit C?


Aber wenn du schon schreibst, dass du keine Ahnung von PICs hast, dann 
ist deine Aufgabenstellung schon etwas hoch gegriffen. Beschäftige dich 
doch erstmal mit den Grundlagen. Wird auf der sprut Seite übrigends 
alles gut erklärt.

von Anfänger (Gast)


Lesenswert?

ich möchte am RA0 und RA1 die analogen werte einlesen.

"setup_adc_ports(RA0_RA1_Analog)"
um die beiden pins als analog zu deklarieren
und dann muß ich vor der eigentlichen abfrage mit
"set_adc_channel(xyz)" den jeweiligen channel auswählen, den ich 
auslesen will!

dann wäre es ja am sinnvollsten beide pins in gesonderten funktionen 
auszulesen, sehe ich das richtig?

reichen die beiden befehle zum zuweisen des pins aus?

zum eigentlichen auslesen muß dann sowas wie "read_adc()" benutzt 
werden!?!

von Anfänger (Gast)


Lesenswert?

danke mark

von Anfänger (Gast)


Lesenswert?

so, hab mich mal durch die hilfen gearbeitet...

kann mir evtl. mal jemand den "SETUP_COMPARATOR( )" Befehl erklären?
da blick ich nicht durch

von Mark (Gast)


Lesenswert?

Darf man fragen, welchen Compiler du benutzt?

von Anfänger (Gast)


Lesenswert?

PCW C Compiler IDE

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
Noch kein Account? Hier anmelden.