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