Autor Thema: problem mit adc beim 12f683  (Gelesen 6231 mal)

spec

  • Gast
problem mit adc beim 12f683
« am: Dezember 23, 2005, 11:06:50 Vormittag »
hallo,
ich wollte zum test mal den adc wert über rs232 ausgeben. das funtzt auch aber ob ich nun die spannung verändere oder nicht es ist immer der selbe adc wert der ausgegeben wird.
wo kann der fehler liegen?

mfg spec

Init
;12F683 alle Comparator-/ADC-Eingänge auf Digital umschalten
; beginnt in der Bank 0

BCF STATUS,RP0          ;Bank 0
CLRF GPIO                     ;Init GPIO
MOVLW 07h                    ;Set GP<2:0> to
MOVWF CMCON0          ;digital I/O
MOVLW 01h                    ;Right, Vdd Vref, AN0
MOVWF ADCON0
BSF STATUS,RP0          ;Bank 1
MOVLW 51h                    ;Set GP<1> to
MOVWF ANSEL              ;digital I/O
MOVLW 01h                    ;Set GP<1> as output
MOVWF TRISIO            
BCF STATUS,RP0          ;Bank 0

; interner Taktgenerator
        bsf     STATUS, RP0             ; Bank 1
        movlw   B'01100101'
        movwf   OSCCON                  ; 4-MHz
        bcf     STATUS, RP0             ; Bank 0



Main

              BSF ADCON0,GO ;Start conversion
             
Next
              BTFSC ADCON0,GO ;Is conversion done?
              GOTO Next

                movfw ADRESH ; es soll z.B. der Buchstabe'A' gesendet werden
call Send_RS ; Datenwort ausgeben via RS-232
               
goto Main
;***************************************************************

;senden des Bytes, das im Register W steht

Send_RS ; Ausgabe eines Bytes seriell
movwf Byte ; Byte in w
movlw 8 ; es werden 8 Bit gesendet
movwf cycl_1
bcf GPIO,2
call Warte_s ; 1 Stopbit (1)
bsf GPIO,2
call Warte_s ; 1 Startbit (0)

Send_1 rrf Byte, f ; aktuelles Bit in das Carry-Flag schieben
btfsc STATUS, C
bcf GPIO,2 ; Lo wenn Bit = 1
btfss STATUS, C
bsf GPIO,2 ; Hi wenn Bit = 0
call Warte_s ; 1 Bit lang warten
decfsz cycl_1, f ; waren das schon 8 Bit?
goto Send_1 ; nein, es geht weiter
bcf GPIO,2 ; Byte zuende, 1 Stoppbit (1) senden
call Warte_s ;
return

;**********************************************************
;ein Bit Zeitverzoegerung mit einer Warteschleife
; Timing muß genau stimmen (5%)
;
; senden            4 MHz    10 MHz
; 2400 Bps =          69d    173d
; 9600 Bps =          16d     43d

Warte_s movlw D'16' ; 9600 Bps / 4 MHz senden
movwf cycl_2
Warte1 ; 6 Zyklen Schleife
nop
nop
nop
decfsz cycl_2, 1
goto Warte1
return

end

Offline Bernd

  • Hero Member
  • *****
  • Beiträge: 3820
    • Profil anzeigen
problem mit adc beim 12f683
« Antwort #1 am: Dezember 23, 2005, 17:00:08 Nachmittag »
Zitat
wo kann der fehler liegen?

Meines Erachtens nicht am Code. Der ist korrekt und funktioniert auch im Simulator. Ich würde noch mal die Hardware überprüfen (steht die Spannung wirklich am Pin AN0/GP0 an?).
 

Viele Grüße

Bernd

Offline MikakoNok

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
problem mit adc beim 12f683
« Antwort #2 am: Juni 11, 2016, 22:52:34 Nachmittag »
lokal tritt das Problem auf.
Online also im Internet mit vom Server zu ladenden Dateien auch? W??rde ich mal ausprobieren.
Gru?? w

 


* Recent Topics