pic analoges signal, c Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
pic analoges signal, c Suche nach: pic (2056) |
|
|
|
|
BID = 787852
Navus Gerade angekommen
Beiträge: 2 Wohnort: Berlin
|
|
Hallo miteinander
ich bin ein regelrechter frischling was das programmieren in c und pics angeht. meine frage beschränkt sich hauptsächlich auf das programmiertechnische Vorgehen meines Projekts, daher hoffe ich, im richtigen Forum gelandet zu sein.
Mein Problem ist folgendes:
Ich hab mir eine Schaltung mit dem PIC24F08KA101 ausgebaut und möchte damit eine Lichschranke bauen. Dabei soll eine LED eine Photodiode anleuchten. Dieses Signal wird zu einem Transimpedanzwandler gesendet und dann zum PIC (Pin 15, AN12). Ich geh mal davon aus, dasds ich dies soweit richtig gehandhabt habe.
Ich möchte nun mittels des PIC herausbekommen, ob die LED die Diode anstrahlt oder nicht.
Meine Idee: Ich müsste doch eig. nur herausfinden, ob in dem Pin15 ein Signal eintrifft oder nicht. Nicht wahr?
Bei einigen Dingen bin ich mir einfach noch nicht so ganz sicher:
- muss ich den ADC zuvor irgendwie einstellen?
- wie um himmels willen kann ich prüfen, ob auf pin15 ein signal ankommt oder nicht?
Vielleicht traut sich ja jemand mein problem mit mir weiter zu erörtern.
vielen dank schonmal ^^
Hier das Datenblatt:
http://ww1.microchip.com/downloads/e...eet_39927b.pdf |
|
BID = 787856
Ltof Inventar
Beiträge: 9333 Wohnort: Hommingberg
|
|
Zitat :
Navus hat am 23 Sep 2011 11:12 geschrieben :
|
... Dabei soll eine LED eine Photodiode anleuchten. Dieses Signal wird zu einem Transimpedanzwandler gesendet und dann zum PIC (Pin 15, AN12). Ich geh mal davon aus, dasds ich dies soweit richtig gehandhabt habe. ...
|
Kommt darauf an, welchen Abstand LED und Photodiode zueinander haben. Bei kurzen Abständen geht das. Ab einer gewissen Distanz funkt das Umgebungslicht dazwischen.
Zur PIC-Programmierung in C kann ich nichts beitragen. Ich kann nur Assembler.
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor) |
|
BID = 787864
Navus Gerade angekommen
Beiträge: 2 Wohnort: Berlin
|
Jap, das Problem ist bedacht und schon gelöst, trotzdem danke =)
Mir geht es hauptsächlich um die Programmierung.
Wär schon, wenn sich auch jemand meldet, der in C programmieren kann
|
BID = 787874
Ltof Inventar
Beiträge: 9333 Wohnort: Hommingberg
|
Kann vielleicht trotzdem noch dazu beitragen:
Unabhängig von der Sprache muss dem µC selbstverständlich gesagt werden, was er mit welcher Peripherie machen soll. Initialisierung nennt man das. Gerade PICs sind in dieser Hinsicht anspruchsvoll. Manche Peripherie muss explizit deaktiviert werden, sonst macht er alles mögliche, aber nicht, was er soll.
Am besten Du schaust Dich hier mal um:
http://www.holger-klabunde.de/
Nimm die Programmbeispiele und sieh Dir mal jeweils "initpic.c" an.
Ich würde Dir als Einsteiger auch empfehlen, einen kleineren PIC zum Üben zu nehmen und vielleicht sogar in die Assembler-Programmierung reinzuschnüffeln. Dadurch wird Dir manches vielleicht klarer.
http://www.sprut.de/electronic/pic/index.htm
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|
BID = 787893
QuirinO Schreibmaschine
Beiträge: 2205 Wohnort: Behringersdorf
|
Prinzipiell sollte es möglich sein, die Lichtschranke mit einem Digitalen Eingangs-Pin abzufragen, wenn der Transimpedanzwandler so dimensioniert wird, dass die Ausgangsspannung bei beleuchtung durch den Laser über der Schwellenspannung für "logisch 1" steht.
Eine weitere Frage die man sich stellen sollte ist Folgende:
Muss der Pic nebenbei noch etwas anderes tun, oder wird nur auf eine Zustandsänderung der Lichtschranke reagiert, ein kurzer Programmteil abgefragt und dann nur "gewartet" (z.B. die Ereignisse gezählt)
Es gibt prinzipiell 3 Möglichkeiten die Lichtschranke auszuwerten:
1) Man kann sie ständig abfragen, den Controller dabei in einer Schleife im Kreis laufen lassen und nur auf eine Änderung des Pins reagieren. (sogenanntes Polling)
-Programmtechnisch am einfachsten
2) Man kann dem Controller irgendwelche anderen schönen Aufgaben zuweisen und mittels Interrupt nur eine Zählroutine oder einen anderen Programmteil aufrufen, wenn sich der Zustand der Lichtschranke ändert. Das klappt nur an bestimmten IO Pins, siehe Datenblatt "Interrupt"
-Programmtechnisch am schwierigsten
3) Man kann den Controller mittels Sleep schlafen legen, er braucht dann kaum Energie - sobald sich der zustand des IO Pins der Lichtschranke ändert wird er durch einen Interrupt geweckt, arbeitet sein Programm ab und legt sich wieder schlafen. (auch nur an bestimmten Interrupt Pins möglch - siehe Datenblatt)
-Programmtechnisch irgendwo in der mitte.
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag heute wurden bisher 12 Beiträge verfasst © x sparkkelsputz Besucher : 182399256 Heute : 6454 Gestern : 7548 Online : 630 25.11.2024 20:25 5 Besucher in den letzten 60 Sekunden alle 12.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0699989795685
|