www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR644p Wandelt am ADC2(Pin A2) keinen Wert


Autor: funkeld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe eine Sharpsensor an dem PA2 des 644p.
Bloss er wertet keine Wert aus mit meinem selbstgestrickten Bascom 
Programm.
Mit diesem Bascombefehlen klappt es:
$regfile = "M644pdef.dat"
$crystal = 16000000
$hwstack = 32
$swstack = 32
$framesize = 64
$baud = 19200

Dim Adcv As Word

Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , 
Databits = 8 , Clockpol = 0
Open "COM1:" For Binary As #1

Config Adc = Single , Prescaler = 8 , Reference = Avcc
Start Adc

Enable Interrupts

Waitms 500

Do

Waitms 300

Adcv = Getadc(2)
Print #1 , Adcv

Loop
End

aber mit meinem selbstgestrickten kommt nur "O" zum Terminal, woran 
liegt das:
$regfile = "m644pdef.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000
$baud = 19200

Declare Sub Adc_init()
Declare Sub Adc_read()

Dim A_h As Word
Dim A_l As Byte
Dim Adc_ergeb As Word
Dim W As Byte

Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , 
Databits = 8 , Clockpol = 0
Open "COM1:" For Binary As #1

Call Adc_init()

Do

 Waitms 300
 Call Adc_read()
 Print #1 , Adc_ergeb
 Waitms 100

Loop

End

Sub Adc_init
   Set Admux.refs0
   Reset Admux.refs1                       ' interne Referenzspannung 
nutzen

   Set Adcsra.adps0
   Set Adcsra.adps1
   Reset Adcsra.adps2                      ' Frequenzvorteiler

   Reset Adcsra.adate                     ' Single

   Set Adcsra.aden                        ' ADC aktivieren

   Set Adcsra.adsc
   While Adcsra.adsc = 1                  ' eine ADC-Wandlung
   Wend
End Sub

Sub Adc_read()
   Reset Admux.mux0                        ' PA2 ???
   Set Admux.mux1

   Set Adcsra.adsc
   While Adcsra.adsc = 1                  ' eine ADC-Wandlung
   Wend

   A_l = Adcl0
   A_h = Adch0 * 256
   Adc_ergeb = A_l + A_h
End Sub

: Verschoben durch Moderator
Autor: funkeld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe den Fehler eingekreist:
ADCL0 in 2 und ADCH0 in 2.

Aber trotzdem kommt bei einer Abfrage bei beiden immer die "2".

Gruss

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.