12F675 + ADC => "will nicht !"
Montag, 21. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  Programmiersprache Assembler  |  AD-Wandler (Assembler)  |  12F675 + ADC => "will nicht !" « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: 12F675 + ADC => "will nicht !"  (Gelesen 3018 mal)
 
xorwf
Newbie
*
Offline Offline

Beiträge: 7


Profil anzeigen
« am: März 16, 2007, 02:06:02 »

Hallo Leute,

ich poste hier zum ersten mal. Ich habe in einem anderen Forum nach Hilfe gesucht, keine gefunden. Ich habe hier (auch andere Webseiten und G...gle sind abgegrast) alle relevanten Beiträge gespeichert und offline gelesen und teilweise code probiert zu kopieren (wenn Pic-Typ und Grundidee ähnlich waren).
ABER es klappt mit dem ADC nicht.

Ich habe eine Testroutine geschrieben, welche von 0 bis 255 hochzählt (ohne ADC zu benutzen !) wenn Taster (gpio5, = sw1) gedrückt wird, und diesen Wert dann in einen Ton umwandelt und an GP5 ausgibt. Klingt wie uralt-video-spiele.

Damit wollte ich den ADRESH-Wert vom ADC "herraushöhren" wenn ich am Poti rumstelle...

Wenn ich nun per ADC den Wert "holen" will, geht nichts. Also geht mein ADC nicht. Nur das WARUM verstehe ich nicht.

Ich hänge mein geplantes / gemachtes Schema als PDF an. Ich hänge meine ASM-Datei für den PIC 12F675 an.

Ich bitte um Tipps bezüglich:
ADC-Config oder einer funktionierenden ADC-Routine.

Vielen herzlichen Dank im vorraus.

xorwf

* adc1d.asm (11.11 KB - runtergeladen 241 Mal.)
* adc-problem.pdf (38.58 KB - runtergeladen 239 Mal.)
Gespeichert
Bernd
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 3815



Profil anzeigen
« Antworten #1 am: März 16, 2007, 06:27:20 »

Warum verwendest Du nicht die von Microchip zur Verfügung gestellte .inc-Datei für die Registeradressen, Config-Bits usw.?

Code:
#include <p12F683.inc>

Die eigene Definition ist unnötig und fehleranfällig.

Zitat
Code:
;----- special functioin register files (data memory map)-------------------
; bank 0
...
cmcon      equ     h'0019'  ; <--
adresh     equ     h'001e'
adcon0     equ     h'0019'  ; <--

Die Adresse von ADCON0 ist 0x1F, nicht 0x19. Im Moment erfolgt bei der Verwendung von "adcon0" also ein Zugriff auf CMCON0.


Viele Grüße

Bernd
Gespeichert

xorwf
Newbie
*
Offline Offline

Beiträge: 7


Profil anzeigen
« Antworten #2 am: März 16, 2007, 09:57:31 »

Herzlichen DANK !

Damit ist mir soeben schnell und 100% richtig geholfen worden. Danke Bernd.

Nun geht das ADC-en...

Als Antwort zu *inc kann ich nur sagen: Ich habe nach der Lib gesucht (g...gle) aber keine zum download gefunden. Ich bin mir nicht sicher ob sie in meinem Compiler dabei sind... Aber ich denke darüber nach und werde es versuchen einzubauen.

Ich habe viele Fragen ähnlicher Natur auch im englischen Sprachraum (internet) durchsucht. Und kaum einer hat so gezielte Antworten wie du. Kompliment! Seriously!

ps: "Gelöst-Fläg setzen"....
Gespeichert
Bernd
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 3815



Profil anzeigen
« Antworten #3 am: März 16, 2007, 18:28:55 »

Zitat
Als Antwort zu *inc kann ich nur sagen: Ich habe nach der Lib gesucht (g...gle) aber keine zum download gefunden. Ich bin mir nicht sicher ob sie in meinem Compiler dabei sind... Aber ich denke darüber nach und werde es versuchen einzubauen.

Die .inc-Dateien findest Du im Installationsverzeichnis von MPLAB (Unterverzeichnis "MPASM Suite").

Zitat
Ich habe viele Fragen ähnlicher Natur auch im englischen Sprachraum (internet) durchsucht. Und kaum einer hat so gezielte Antworten wie du. Kompliment! Seriously!

Dankeschön.


Viele Grüße

Bernd
Gespeichert

Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.033 Sekunden mit 18 Zugriffen.
 
Top! Top!