Hallo zusammen,
Ich habe ein Problem mit dem Adc vom Atmega 8.
Und zwar zeigt mir das Simulationsprogram von Bascom alles Richtig an.
Wenn ich das Programm auf den mc schiebe, zeigt er mir bei der Spannung
irgendwas mit 1.xxx und beim analogwert 4xx an obwohl noch nicht einmal
was angeschlossen ist!?
Bitte um hilfe und danke schonmal!
1 | 'Bibliothek Festlegen
|
2 | $regfile = "m8def.dat"
|
3 | '$sim
|
4 |
|
5 | 'Ports Festlegen
|
6 | Config Portd = Output 'Fuer LCD
|
7 |
|
8 |
|
9 | 'Festlegung LCD
|
10 | Config Lcd = 20 * 4
|
11 | Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , Rs = Portd.6 , E = Portd.7
|
12 | Config Lcdbus = 4
|
13 | Cursor Off
|
14 |
|
15 | 'Festlegung ADC
|
16 | Const Adc_scala = 0.0046875 ' = 5.0/1024.0
|
17 | Config Adc = Single , Prescaler = Auto , Reference = Avcc
|
18 | Start Adc
|
19 |
|
20 | 'Festlegung Variablen / Unterprogram
|
21 | Dim Analo As Word , Volt As Single , Altvolt As Single
|
22 |
|
23 | 'Declare Sub Messen
|
24 | 'Declare Sub Skalieren
|
25 | 'Declare Sub Anzeige
|
26 |
|
27 | 'Hauptprogramm
|
28 | Do
|
29 | Analo = Getadc(0) 'Liest den Analogwert ind eine Variable
|
30 | Volt = Analo * Adc_scala 'Rechnet analogwert * der Aufloesung
|
31 | If Altvolt <> Volt Then 'Wenn der Wert in der Alten Spannung anders ist als in der Spannung
|
32 | Cls
|
33 | Altvolt = Volt 'Schiebe die Aktuelle Spannung ind die Alte Spannung
|
34 | Lcd "Volt = " ; Fusing(volt , "#.###") 'Zeige in Zeile 1 des Lcd die Aktuelle Spannung und Runde diese
|
35 | Locate 4 , 1 : Lcd "Analogwert:" ; Analo 'Zeige in Zeile 4 des Lcd Den Analogwert
|
36 | End If
|
37 | Loop
|
38 | 'Unterprogramme
|
39 | End
|