mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC Tutorial keine Messwerte.


Autor: Daniel L. (grorkef)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bins mal wieder :) ich hab mich gerade mit dem Beispiel aus dem ADC 
Tutorial 
beschäftigt(http://www.mikrocontroller.net/articles/AVR-Tutori...), 
aber ich komm da einfach nicht weiter...

Ich hab das so angeschlossen wie auf dem Schaltbild und wenn ich starte 
dann bekomm ich nur 000 angezeigt :(
.include "m8def.inc"

.def temp1     = r16
.def temp2    = r17
.def temp3    = r18
.def temp4    = r19
.def adlow    = r20
.def adhigh    = r21
.def messungen  = r22
.def ztausend  = r23
.def tausend  = r24
.def hundert  = r25
.def zehner    = r26
.def zeichen  = r27

.equ F_CPU = 4000000
.equ BAUD = 9600

.equ UBRR_VAL  = ((F_CPU+BAUD*8)/(BAUD*16)-1)
.equ BAUD_REAL  = (F_CPU/(16*(UBRR_VAL+1)))
.equ BAUD_ERROR = ((BAUD_REAL*1000)/BAUD-1000)

.if ((BAUD_ERROR>10) || (BAUD_ERROR<-10))
  .error "Systematischer Fehler der Baudrate grösser 1 Prozent und damit zu hoch!"
.endif

; Stackpointer Initalisierung

  ldi temp1, LOW(RAMEND)
  out SPL, temp1
  ldi temp1, HIGH(RAMEND)
  out SPH, temp1

; UART Initalsierung

  ldi temp1, LOW(UBRR_VAL)
  out UBRRL, temp1
  ldi temp1, HIGH(UBRR_VAL)
  out UBRRH, temp1

  sbi UCSRB, TXEN

; ADC initialiesieren: Single Conversion, Vorteiler 128

  ldi  temp1, (1<<REFS0)
  out  ADMUX, temp1
  ldi temp1, (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0)
  out ADCSRA, temp1

Main:
  clr temp1
  clr temp2
  clr temp3
  clr temp4

  ldi messungen, 0


sample_adc:
  sbi ADCSRA, ADSC

wait_adc:
  sbic ADCSRA, ADSC
  rjmp wait_adc

  in adlow, ADCL
  in adhigh, ADCH

  add temp2, adlow
  add temp3, adhigh
  add temp4, temp1
  dec messungen
  brne sample_adc

  cpi temp2, 128
  brlo no_round

  subi temp3, low(-1)
  sbci temp4, high(-1)

no_round:
  mov  adlow, temp3
  mov adhigh, temp4

  ldi ztausend, '0'-1

Z_ztausend:
  inc ztausend
  subi adlow, low(10000)
  sbci adhigh, high(10000)
  brcc Z_ztausend

  subi adlow, low(-10000)
  sbci adhigh, high(-10000)

  ldi tausend, '0'-1

Z_tausend:
  inc tausend
  subi adlow, low(1000)
  sbci adhigh, high(1000)
  brcc Z_tausend

  subi adlow, low(-1000)
  sbci adhigh, high(-1000)

  ldi hundert, '0'-1

Z_hundert:
  inc hundert
  subi adlow, low(100)
  sbci adhigh, high(100)
  brcc Z_hundert

  subi adlow, low(-100)
  sbci adhigh, high(-100)

  ldi zehner, '0'-1

Z_zehner:
  inc zehner
  subi adlow, low(10)
  sbci adhigh, high(10)
  brcc Z_zehner

  subi adlow, low(-10)
  sbci adhigh, high(-10)

  subi adlow, -'0'

  mov  zeichen, ztausend
  rcall transmit
  mov zeichen, tausend
  rcall transmit
  mov zeichen, hundert
  rcall transmit
  mov zeichen, zehner
  rcall transmit
  ldi zeichen, 13
  rcall transmit
  ldi zeichen, 10
  rcall transmit

  rjmp Main

transmit:
  sbis UCSRA, UDRE
  rjmp transmit
  out UDR, zeichen
  ret

Ich hab leider keinen Fehler gefunden :( ich hoffe ihr könnt mir da 
weiter helfen.

MFG Daniel L.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>  add temp2, adlow
>  add temp3, adhigh
>  add temp4, temp1

ist falsch, richtig:

  add temp2, adlow
  adc temp3, adhigh
  adc temp4, temp1

MfG Spess

Autor: Daniel L. (grorkef)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Spess :) was so ein doofer kleiner Buchstabe ausmacht :( aber nun 
funktionierts ^^ bekomm bei 0V in HTerm 0000 und bei 5V 0102 :)

MFG Daniel L.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.