Hallo Ich bin noch ziemlich neu auf dem Gebiet der µC. Bisher habe ich nur mit digitalen I/O gearbeitet. Jetzt bin ich aber so weit, dass ich mich mit dem ADC befassen will. Ich habe vor mit einem Poti, jenachdem wie viel es aufgedreht ist verschieden viele LED's leuchten zu lassen. Bisher ist leider noch nichts brauchbares heraus gekommen. Deshalb hoffe ich, dass ihr mir vielleicht helfen könntet, dass es klappt. Ich habe den dsPIC33FJ256MC710A, den CCS PCD Compiler, MPLAB X IDE und das dsPICDEM MCLV Board. mfg
Neben dem allgemeinen DataSheet für den dsPIC33FJ256MC710A solltest du dir unbedingt das Dokument DS70183 bei MICROCHIP oder hier http://www.ee.up.ac.za/main/_media/en/undergrad/subjects/esp300/ad_70183c.pdf runterladen. Beschreibt den ADC des dsPIC33F inklusive diverser Beispiel in C. Umsetzen auf deinen C-Compiler musst du diese schon selbst - falls es beim Compiler keine Beispiel für 16-Bit-PIC gibt.
Martin schrieb: > Ich habe vor mit einem Poti, jenachdem wie viel es aufgedreht ist > verschieden viele LED's leuchten zu lassen. Das kann jeder 8-Bitter mit internem ADC. Z.B. der ATtiny13 hat einen 10Bit-ADC, damit kannst Du bis zu 1023 LEDs auflösen. Da er keine 1023 Outputs hat, muß man eine entsprechende Anzahl 74HC595 kaskadieren.
ich bemühe mal meine Glaskugel, da Du nichts darüber schreibst, wo das Problem ist oder wie Deine Schaltung aussieht. Trotzdem vermute ich, dass es schon an der Anschaltung des Poti scheitert. Der ADC kann nur eine Spannung aber keinen Widerstand messen. Also musst Du dem Controller abhängig von der Stellung des Potis eine andere Spannung zuführen. Dazu brauchst Du wiederum im einfachsten Fall einen Spannungsteiler. Hast Du den?
Es ist mir klar, dass es sicher Methoden gibt die Einfacher sind. Mir geht es aber darum zu lernen wie man den ADC vom dsPIC33FJ anwendet.
Ich verwende das dsPICDEM MCLV Developmetn Board. Daher glaube ich nicht, dass das Poti falsch angeschlossen ist.
Hallo, das ist doch eine einfach Übungsaufgabe. Du hängst das Poti zwischen VCC und GND und den mittleren Pin an deinen ADC Eingang. Wenn dein Wandler mit z.B. 8 bit läuft kannst du den Messwert direkt auf einen Port mit 8 LEDs ausgeben, fertig. Wenn du Lust hast kannst du das dann auch mit 16 bit usw. machen. Grüße aus Berlin
1. ADC-Wert auslesen 2. Eingangswerte in Ausgangswerte umrechnen 3. Ausgabe 4. goto 1 wo hakt's?
Und was hast Du jetzt am ADC nicht verstanden ? Beim ADC ist das analog zu den digitalen Ports, d.h. für jede Stellung des Potis erscheint ein Bitmuster im Register das den aktuellen Spannungswert darstellt. Stelle Dir einfach vor Du hast Schalter an einem digitalen Port und je nachdem welche davon geschaltet sind bekommst Du Deinen Wert. Oder haperts an grundlegenderen Dingen ?
A. S. schrieb: > wo hakt's? Vielleicht hat der CCS-Compiler keine dsPIC33 Libs welche eine "komfortable" ADC-Handhabung a la .... OpenADC(configuration-pipapo); adc_wert = ReadADC(1); //lies Kanal AN1 ein .... .... und daher die ganze Konfigaration verteilt auf 5 SFR mit ein paar Dutzend Bits "händisch" zu machen ist. Darum der Link auf DS70183 - da gibt es auch Beispiele dafür.
Martin schrieb: > Mir > geht es aber darum zu lernen wie man den ADC vom dsPIC33FJ anwendet. In dem Fall würde ich einfach mal das Datenblatt lesen, Abschnitt: 22.0 10-BIT/12-BIT ANALOG-TO-DIGITAL CONVERTER (ADC) Und wenn das nicht reicht, dem Link darin folgen zum “dsPIC33F/PIC24H Family Reference Manual”. Ist natürlich erheblich mehr Lese- und Lernstoff als beim popeligen ATtiny13.
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.