PIC12F675 Problem mit AD-Wandler-Werten
Dienstag, 22. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  PIC Mikrocontroller Allgemein  |  AD-Wandler (Allgemein)  |  PIC12F675 Problem mit AD-Wandler-Werten « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: PIC12F675 Problem mit AD-Wandler-Werten  (Gelesen 1575 mal)
 
gznw
Gast
« am: September 07, 2009, 13:27:34 »

Hallo!
Also ich habe mich jetzt wieder an einem PIC12F675 versucht... Jetzt das erste mal mit dem AD-Wandler.
Ich habe ein Programm, mit dem ich definierte Werte über serielle Schnittstelle übertragen kann. Das läuft ohne Probleme
Also in der Main sieht es so aus:
Code:
movlw 'u'
call Send_RS

und dann wird das u übertragen.
Nun nöchte ich aber den Wert vom AD-Wandler übertragen.

Aber es wird in dem Fall NICHTS übertragen!
Code:
movwf ADRESL
call Send_RS

Also der AD-Wandler wurde vorher gestartet:

Code:
BSF ADCON0, 1 ; ADC starten
loop
BTFSC ADCON0, 1 ; ist der ADC fertig?
GOTO loop ; nein, weiter warten

Nun sollte ja wenigstens etwas da erscheinen, oder? Ich habe es auch mit ADRESH und ADRESL probiert (liegen doch in verschiedenen Bänken, oder?)
Aber es wird quasi ein leerzeichen gesendet. Egal welche Spannung am AD-Wandler anliegt.

Nun habe ich den Verdacht, daß die Übergabe des Wertes an das W-Register nicht so funktioniert wie ich das hier mache. Kann ich einfach statt z.B.
Code:
movfw 'u'
movfw ADRESL
schreiben? Oder muß ich da noch etwas beachten?

WÜrde mich über Eure Hilfe sehr freuen, da ich seit 3 Tagen vergbelich versuche das hinzubekommen!!

Edit:
Bitte Code-Tags benutzen.
Stampede
« Letzte Änderung: September 07, 2009, 22:44:01 von Stampede » Gespeichert
gznw
Gast
« Antworten #1 am: September 07, 2009, 13:30:53 »

sorry, war etwas verwirrt!
also zur Übergabe ich überall
movfw
verwendet!!
Bin da irgendwie jetzt durcheinander gekommen..
Aber liegt da irgendwie der Fehler??
Habe keine Idee mehr.
Gespeichert
Stampede
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 969



Profil anzeigen WWW
« Antworten #2 am: September 07, 2009, 22:40:33 »

Hallo,

Der Code
Code:
movf ADRESL, W
call Send_RS
muss funktionieren, wenn

Code:
movlw 'u'
call Send_RS
funktioniert.
Entweder führst du einfach keine korrekte AD Wandlung durch, so dass das Register wahrscheinlich den Wert null hat, oder der gesamplete Wert ist zu klein. Normale Terminalprogramme geben nur darstellbar Zeichen aus, also alles ab 0x21. Ist dein ADC Wert kleiner, wird das Terminal nur Leerzeichen ausgeben.
Zeig mal noch die ADC Routine her, wahrscheinlich ist da der Fehler zu suchen.

Gruß
Stefan
Gespeichert

gznw
Gast
« Antworten #3 am: September 08, 2009, 16:21:34 »

Ja, super!
Das lag echt nur an dem movfw, das habe ich nun überall so geändert und das Problem war hauptsächlich der Wert! Also ich habe mir mal die Ascii-Tabelle angeschaut und nun weiß ich auch was da los war  Grinsend
Danke!

Also Problem ist gelöst!!!
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.031 Sekunden mit 18 Zugriffen.
 
Top! Top!