Forum: Mikrocontroller und Digitale Elektronik AT91SAM7S256 AD-Wandler programmieren


von Philip K. (praktikant)


Lesenswert?

Hallo und Grüß Gott!

Bin seit 5 Minuten hier angemeldet. freu

Ich habe nun ein Problem. Habe bisher "immer" mit C167-Controllern von 
Infineon zu tun gehabt.
Habe nun die Aufgabe, 3 analoge Spannungen per µC einzulesen und auf 
einem Display auszugeben. Dazu habe ich mir die Platine aus dem Shop 
bestellt, welche mit dem AT91SAM7S256 bestückt ist. Jezt ist meine 
Frage, ob ich da alles genauso programmier wie "früher" auch. Ich geb' 
Registern die entsprehenden hex-Werte und kann alles wie bei enem C167 
auslesen?!
Habe mir schon den einen oder anderen Quelltext dazu einmal angesehen, 
kann das auch nachvollziehen (größtenteils), allerdings selbst schreiben 
stelle ich mir äußerst schwierig vor.....

Was gibt es beim Ansprechen des A/D-Wandlers zu beachten?!

Das Ansteuern des Displays lassen wir nun erst mal außen vor, damit 
werde ich euch sicherlich noch später nerven g

Dankeschön!

Der Praktikant

von gerhard (Gast)


Lesenswert?

hallo philip,
hats du schon mal einen blick ins datenblatt geworfen?

unter www.at91.com findest du auch eine menge examples.

gruss
gerhard

von Philip K. (praktikant)


Lesenswert?

Hallo Gerhard!

Dankeschön für die URL. Nur leider bin ich wohl zu blöd, dort 
Example-Programme zu finden?!?! Und Tante Google spuckt bereitwillig 
auch keine entsprechenden Homepages aus......

Gruß Philip

von Philip K. (praktikant)


Lesenswert?

.....also ich bin momentan so weit:

- im Register ADC_MR alle Bits auf 0 setzen
- im Register ADC_CHER und ADC_CHDR den gewünschten Kanal auswählen und 
die restlichen auf 0 setzen.
- evtl. prüfen der Kanalwahl über Register CHSR.

aber wie gebe ich jetzt genau an, dass er die entsprechenden Werte auch 
wandelt?!
Macht er das von alleine kontinuierlich oder wie?!

Und mit dem Register ADC_CDRx kann ich (anstatt dem x) die 3 gewandelten 
Werte auslesen und in einer integer-Variablen speichern?!

Vielen Dank für eure Hilfe

Gruß Philip

PS: Ihr seht, es gibt viel zu tun, aber noch habe ich nicht 
aufgegeben.....

von Martin Thomas (Gast)


Lesenswert?

Bin zwar nicht Gerhard, aber springe mal kurz ein: www.at91.com -> in 
der Auswahlleiste oben "Kit" -> AT91SAM7S-EK -> scrollen bis "Software 
Package" -> AT91SAM7S256 -> das zum verwendeten Compiler passende 
zip-Archiv herunterladen

Im Paket ist ein Projekt "...BasicADC...". Die Beispiele sind bis auf 
den startup-Code kaum compilerspezifisch und lassen sich bei Nutzung 
eines anderen Compilers/einer anderen Toolchain (z.B. gcc/GNU) ganz gut 
darauf portieren. Es empfiehlt sich, die "AT91-lib" zu verwenden (ist 
die "header-Datei" mit vielen inline-Funktionen), wie in den Beispielen 
demonstriert, spart einiges an Sucherei im Datenblatt (bei gcc: define 
__inline static inline vor #include der headerdatei).

Martin Thomas

von Philip K. (praktikant)


Lesenswert?

Das hört sich ja vielversprechend an, danke!

Nur bei mir kommt beim Link AT91SAM7S-EK der Fehler 404 im 
Browser......hm!

Bei dir hats funktioniert, oder hast du die Linkfolge "aus dem Kopf" 
aufgeschrieben!?!?

Gruß Philip

von Philip K. (praktikant)


Lesenswert?

Okay, ich bin über Umwege zu dem Donwload gekommen..........

von Philip K. (praktikant)


Lesenswert?

Habe nun ein weiteres Problem!

Ich brauche wohl für die Compilierung meines Quellcodes aus Eclipse 3.2 
ein makefile. Da steig ich aber nun mal überhaupt nicht durch.
Was muss ich dabei beachten, bzw nacheinander eingeben, damit er aus 
meinem ganzen *.c und *.h Dateien eine *.bin-Datei macht, die ich per 
SAM-BA zum µC übertragen kann?!?!

Dankeschön!

Der Praktikant

von gerhard (Gast)


Lesenswert?

hallo philip,
ich würde dir die yagarto toolchain empfehlen:
www.yagarto.de


gruss
gerhard

von Philip K. (praktikant)


Lesenswert?

Hallo Gerhard!

Habe das YAGARTO installiert.....aber das beinhaltet doch auch "nur" die 
Eclipse 3.2 Version?! Damit arbeite ich auch, habe das Tutorial von Jim 
Lynch durchgemacht, funktioniert auch soweit.

Nur will sich das makefile aus diesem Demo-Programm auf Teufel komm raus 
nicht an meine neue AD-Wandler-Dateien anpassen lassen. Das Ding 
erstellt einfach keine main.bin, die ich auf den µC spielen kann.......

Ich steh grade wie der Ochs' vor'm Berg und komm einfach nicht 
weiter....mir schient nur das Makefile zu fheln, dann sollte es schon 
fast klappen, bis auf ein paar Syntax-Fehler, die bei mir des öfteren 
mal vorkommen gg

Gruß

Der Praktikant

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.