Hallo, habe ein Problem beim einlesen zweier Rechtecksignale . . . Arbeite mit: MPLAB X IDE v2.05 c 30 compiler Microstick II mit dsPIC33FJ32MC802 laut Datneblatt seite 281 ( http://ww1.microchip.com/downloads/en/DeviceDoc/70291G.pdf#M5.9.12142.Heading1.30.Memory.Organization ) scheint ja alles total einfach . . . aber leider nicht für mich . . . Bitte Euch dringent um Hilfe unten mein code könnte auch alles falsch sein . . . bin anfänger... bitte helft mir es ist sehr wichtig.... hoffe ich habe nicht nur müll "programmiert" . . . Leider weiß ich grad nicht weiter . . . LG Moraira ---------------------------------------------------------------- #include "p33FJ128MC802.h" int Signaleins[200]; void eADC(void) { AD1CON1 = 0; AD1CON2 = 0; AD1CON3 = 0; AD1CON1 = 0x8206; AD1CON2 = 0x0100; AD1CON3 = 0x0000; } int readADC(int ch) { Signaleins = ............... } int main(void) { AD1PCFGL = 0x0000; TRISA = (0x0002); eADC(); while (1) { } }
Manu ELLA schrieb: > int readADC(int ch) Diese Funktion wie nie aufgerufen. > bin anfänger Hier gibt es ein Tutorial für den PIC24, der ist ähnlich wie der dsPIC33. Du könntest aber auch den im Lieferumfang enthaltenen PIC24 in den Microstick II stecken und das Tut mit dem durcharbeiten. http://www.engscope.com/pic24-tutorial/11-adc/ Für den dsPIC33 kenn ich kein Tut. Ansonsten würde ich mal Schritt für Schritt die Checkliste mit Datenblatt (siehe Anhang) durch gehen.
Auf den ersten Blick: Also AD1PCFGL passt, wenn du nur analoge Eingänge benutzt. Aber für zwei Eingänge reicht es nicht, wenn du nur RA1 als solchen initialisierst. Max H. schrieb: > Manu ELLA schrieb: >> int readADC(int ch) > Diese Funktion wie nie aufgerufen. Das auch. Um weiter helfen zu können schlage ich vor, du schreibst mal ein paar Kommentare in deinen Code, damit man sieht was du dir dabei gedacht hast. Sonst ist es sehr zeitaufwändig, weil man jedes Bit einzeln "umdrehen" muss. Grüße, Edson
Hallo
erstma danke an euch beiden für die schnelle erstantwort.
ich werde das mal versuchen
hier nochmal der code mit Kommentaren, hoffe die sind soweit richtig bzw
sinnvoll^^
Hänge auch noch eine kleines bild der Aufgabenstellung dran. Damit ihr
wisst was ich vorhabe.
vielen dank für eure Hilfe schonmal! habe ja noch 9 Tage . . juhuu^^
LG Moraira
--------------------------------------------
#include "p33FJ128MC802.h"
/*
*
*/
int Signaleins[200]; //Varriablen
void eADC(void) // AD-Wandler
{
AD1CON1 = 0; //Register1 zurücksetzen
AD1CON2 = 0; //Register2 zurücksetzen
AD1CON3 = 0; //Register3 zurücksetzen
AD1CON1 = 0x8206; //R1 Einstellungen Output:signed integer / 10 Bit
AD1CON2 = 0x0100; //R2 Einstellungen convert CH0 und CH1
AD1CON3 = 0x0000; //R3 Einstellungen (keine ahnung einfach mal
alles0)
}
int readADC(int ch)
{
Signaleins =
}
int main(void) //Hauptprogramm
{
AD1PCFGL = 0x0000 // Analog Input
TRISA = (0x0002); // Pin 4 als Input definieren
eADC(); // Funktionsaufruf AD-Wandler
while (1) {
}
}
achso EDIT ich weiß grad nicht wie es weiter geht mit readADC !!
Das allgemeine Datenblatt für den Controller wird dich nicht viel weiterbringen. Google nach DS70183 und lade dir das "Familily Reference Manual - Section 16. ADC....." runter. Dort sind nicht nur die Register aufgelistet sondern auch Ablaufdiagramme für verschiedene ADC-Anwendungen (mit/ohne DMA usw.) beschrieben, der gesamte Wandlungsablauf mit Timingdiagrammen etc.
Hi, nunja diese pdf nutze ich ja schon, sonst wäre ich mit den "con" restigern gar nicht zu recht gekommen..... ich weiß einfach grad nicht weiter . . . Nebenbei, das Beispiel mit dem pic 24 ist ganz ok, verstehe aber auch nur die Hälfte. . . wie könnte ich den mein Programm jetzt weiter schreiben ? lg
Was soll denn mit dem Rechtecksignal gemacht werden? Willst du nur den Zustand des Rechtecksignals (0 oder 1) erhalten, oder die Form des Rechtecksignals? Woher kommt das Rechtecksignal?
Der dsPIC33 ist nicht so ganz trivial, wer er schon recht leistungsfähig ist (vergleichen mit AVR etc.). Den ADC kann man vielfältig konfigurieren und auch entsprechend viel falsch machen. Ich wage zu behaupten, dass das für einen Anfänger schwierig wird. Schau mal die Application notes durch, z.B. http://ww1.microchip.com/downloads/en/DeviceDoc/CE400_ADC_IIR_Filter_2.zip Da könntest Du Dir Code abkupfern.
oben ist ein Bild der Aufgabe in meinem post ! ich verzeifel hier einfach nur ............ falls irgendjemand weiß wiem an die aufgabe lösen kann bitte melden Wie ist EGAL ! ^.^ >> muss kein pic33 sein. so eine blöde aufgabe .... zum verzweifeln lg
Google mal nach "dspic33f adc example", da kommen ein paar Seiten mit Beschreibungen und Beispielen auf nicht-Microchip Webseiten. Vielleicht hilft dir eine davon weiter?
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.

