PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AD Port zeigt immer 1023 an.



DanielSan
12.08.2009, 09:12
Hi,

ich weiss ich frage viel, aber ich hab auch schon viel gelernt. Dank euch!

Also ich habe an meinen AD Port ein Poti angeschlossen. Ein Pin auf VCC einen auf GND und den Schleifer auf AD0. Wenn ich die Spannung zwischen AD0 und VCC messe liegt dort 1,7V an. Von AD0 nach GND liegen 3,3V an.

Warum zeigt er Trotzdem auf jedem Kanal den Wert 1023 an? 1023 steht doch für 5V oder?

mein Code sieht so aus:

$regfile = "m644def.dat"
$baud = 19200
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 20000000

Config Pind.7 = Output
Config Pina.5 = Output
Config Pind.5 = Input

Waitms 200
Config Lcdpin = Pin , Rs = Porta.7 , E = Porta.6 , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0
Config Lcd = 16 * 2

Config Lcdbus = 4

Initlcd

Cursor Off Noblink

Pind.7 = 0 'Beleuchtung 0=an / 1=aus
Pina.5 = 0 'RW auf GND


Config Adc = Single , Prescaler = Auto
Start Adc
Dim W As Word , Channel As Byte


Channel = 0


Cls
Locate 1 , 1
Lcd "Channel "
Locate 2 , 1
Lcd "Wert"

Do
Debounce Pind.5 , 1 , Clslcd ; Sub 'mit Taster LCD löschen
W = Getadc(channel)
Locate 1 , 9
Lcd Channel
Locate 2 , 9
Lcd W

Incr Channel

If Channel > 7 Then Channel = 0
Waitms 500
Loop

End

Clslcd:
Cls
Wait 2
Return


Im Prinzip ist das der Beispielcode der Bascom Seite nur das ich ihn auf LCD angepasst habe.

Danke
MFG Daniel

Ceos
12.08.2009, 09:53
in deinem programm fehlt mir die initialisierung bezüglich spannungsreferenz und die kanalauswahl für den ADC, welchen controller verwendest du denn, welcher pin ist mit dem schleifer verbunden

DanielSan
12.08.2009, 09:57
Ich verwende einen Atmega644.
Pin40 (ADC0) ist mit dem Schleifer verbunden.

Kannst du auf "in deinem programm fehlt mir die initialisierung bezüglich spannungsreferenz und die kanalauswahl für den ADC" nochmal etwas genauer eingehen?

Danke
MFG Daniel

Ceos
12.08.2009, 10:23
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/adc_mit_getadc/

du musst auch die referenz einstellen (ich empfehle AVCC zu nehmen und an den AREF-Pin NICHTS ausser einem Kondensator nach GND anzuschliessen)und sagen von WELCHEM der ... 5(?) möglichen kanäle du den ADC wert wissen willst

DanielSan
12.08.2009, 10:44
Wunderbar!!!
Danke

Das ist ja dann etwas blöd von Bascom gemacht weil da steht


Config Adc = Single , Prescaler = Auto
und nicht

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Die Pin Belegung hab ich so wie du es auch vorgeschlagen hast. Die hab ich vom Kreativen Chaos.

MFG Daniel