AVR644p Wandelt am ADC2(Pin A2) keinen Wert

Gast #1895930
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren