Hallo,
1 | #include <avr/io.h>
|
2 |
|
3 | int main(void) {
|
4 | uint16_t spannung;
|
5 |
|
6 | //Zelle 1 auswählen
|
7 | VADMUX |= (1<<VADMUX0);
|
8 |
|
9 | // V-ADC Enabeln
|
10 | VADCSR |= (1<<VADEN);
|
11 | // Spannungsmessung starten
|
12 | VADCSR |= (1<<VADSC);
|
13 | loop_until_bit_is_set(VADCSR, VADCCIF); // sobald Messung abgeschlossen und werte gespeichert
|
14 | spannung = VADC; // Wert in variable Spannung schreiben
|
15 | VADCSR &= ~(1<<VADCCIF);
|
16 |
|
17 |
|
18 | while(1) {
|
19 |
|
20 | }
|
21 |
|
22 | }
|
Dieser simple Code, so jedenfalls der Plan,
soll Zelle 1 im Multiplexer auswählen, anschließend Spannungs ADC
enablen, dann die Messung starten, wenn sie vollendet ist den Wert in
der Variable speichern und danach die IstFertigFlag? wieder auf Null
setzten
Mit View - Watch beobachte ich die Variable Spannung. Direkt nach Run
geht die Variable auf 0. Nach einmal F11 (step into) dann auf 1 danach
auf 8 dann auf 12
dann klicke ich rechts bei I/O View das Kästchen von VADDCIF an damit es
weiter gehen kann.
dann springt es auf 14 dann auf 0 und endet schließlich wieder bei 12.
VADC wird bei I/O View die ganze zeit mit 0x0000 Value angezeigt.